跳到主要内容

阿里云 AK/SK 最小权限要求

CloudCanal 在新增和同步阿里云数据源时需要填入 AK/SK,涉及到阿里云 RAM 账号的一些权限。本文档主要介绍 CloudCanal 同步 RDS for MySQL 包含增量同步所需要的 RAM 最小权限。

以阿里云方式添加

采用阿里云方式新增RDS for MySQL 可以参考新增阿里云数据源, 阿里云 RAM 权限配置可由主账号到 RAM 权限配置 进行配置。

所需 RAM 权限如下表所示:

名称描述
rds:DescribeDBInstances查询实例列表
rds:DescribeDBInstanceNetInfo查询连接地址
rds:DescribeDBInstanceAttribute查询实例详情
rds:DescribeDBInstanceIPArrayList查询RDS实例IP白名单
rds:ModifySecurityIps修改IP白名单
rds:AllocateInstancePublicConnection为实例申请公网连接地址
rds:DescribeDatabases查看实例下的数据库信息
rds:DescribeAccounts查询账号信息
rds:CreateDatabase创建数据库
rds:CreateAccount创建账号
rds:GrantAccountPrivilege授权账号访问数据库
rds:DescribeBinlogFiles查看Binlog日志
rds:DescribeBackupPolicy查询备份设置
rds:ModifyBackupPolicy修改备份策略设置

以自建数据库方式添加并改为阿里云数据库

为了追求更小的使用权限,有些用户会将以自建的方式添加阿里云 RDS for MySQL,再切回到阿里云的部署类型。

该方式下所需 RAM 权限如下表所示:

名称描述
rds:DescribeDBInstanceIPArrayList查询RDS实例IP白名单
rds:ModifySecurityIps修改IP白名单
rds:DescribeBinlogFiles查看Binlog日志
rds:DescribeBackupPolicy查询备份设置
rds:ModifyBackupPolicy修改备份策略设置

上述权限为任务运行的最小权限,如任务有特殊需求,如新建数据库等需求,可另行添加权限或手动自建数据库。

操作方式

1. 配置阿里云 OpenAPI 调用使用的 AccessKey 和 SecretKey

  • 点击控制台右上角的用户设置,选择 阿里云访问权限 然后输入有数据源 OpenAPI 调用权限的 AccessKey 和 SecretKey。 如果用户不希望 CloudCanal 保存 AccessKey 和 SecretKey,用户在修改完毕数据源以后可以再次打开该窗口, 解除授权访问来避免 CloudCanal 存储该授权信息。

2.修改数据库内容

  1. 获取实例ID信息。

  2. 获取公网IP端口号信息。

  3. 获取数据源ID信息。

  4. 获取邮箱和手机号信息。

  5. 获取阿里云 AK SK信息。

    执行sql获取加密后的阿里云AK和SK:

    select aliyun_ak, aliyun_sk 
    from console.console_user
    where
    phone = [手机号码]
    and email = [邮箱];

    -- 结果如下

    -----------------------
    | aliyun_ak | aliyun_sk |
    -----------------------
    | AK信息 | SK信息 |
    -----------------------
  6. 执行 sql 完成修改。

    UPDATE console.data_source
    SET deploy_type = "ALIBABA_CLOUD_HOSTED",
    host_type = "PUBLIC",
    public_security_type = "USER_PASSWD",
    HOST = [公网IP:端口号],
    public_host = [公网IP:端口号],
    instance_id = [实例ID名称],
    access_key = [AK],
    secret_key = [SK]
    WHERE
    id = [数据源id];