Amazon Relational Database Service
用户指南 (API 版本 2014-10-31)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

将 IAM 角色与 Amazon Aurora MySQL 数据库集群关联

要允许 Amazon Aurora 数据库集群中的数据库用户访问其他 AWS 服务,您可以将在创建 IAM 角色以允许 Amazon Aurora 访问 AWS 服务中创建的角色与该数据库集群关联。

要将 IAM 角色与数据库集群关联,您可以执行两个操作:

  • 使用 RDS 控制台、add-role-to-db-cluster AWS CLI 命令或 AddRoleToDBCluster RDS API 操作,将角色添加到数据库集群的关联角色列表中。

    每个 Aurora 数据库集群最多可以添加 5 个 IAM 角色。

  • 将相关 AWS 服务的集群级别参数设置为关联的 IAM 角色的 ARN。

    下表介绍了用于访问其他 AWS 服务的 IAM 角色的集群级别的参数名称。

    集群级别的参数 描述

    aws_default_lambda_role

    在从您的数据库集群调用 Lambda 函数时使用。

    aws_default_logs_role

    在将审核日志数据从数据库集群导出到 Amazon CloudWatch Logs 时使用。

    aws_default_s3_role

    从数据库集群调用 LOAD DATA FROM S3LOAD XML FROM S3SELECT INTO OUTFILE S3 语句时使用。

    对于 Aurora 版本 1.13 或更高版本,在该参数中指定的 IAM 角色仅在没有为相应语句的 aurora_load_from_s3_roleaurora_select_into_s3_role 指定 IAM 角色时使用。

    对于 Aurora 的早期版本,始终使用为该参数指定的 IAM 角色。

    aurora_load_from_s3_role

    对于 Aurora 版本 1.13 或更高版本,在从数据库集群调用 LOAD DATA FROM S3LOAD XML FROM S3 语句时使用。如果没有为该参数指定 IAM 角色,则使用在 aws_default_s3_role 中指定的 IAM 角色。

    对于 Aurora 的早期版本,该参数不可用。

    aurora_select_into_s3_role

    对于 Aurora 版本 1.13 或更高版本,在从数据库集群调用 SELECT INTO OUTFILE S3 语句时使用。如果没有为该参数指定 IAM 角色,则使用在 aws_default_s3_role 中指定的 IAM 角色。

    对于 Aurora 的早期版本,该参数不可用。

要关联 IAM 角色以允许您的 Amazon RDS 集群代表您与其他 AWS 服务通信,请执行以下步骤。

使用控制台将 IAM 角色与 Aurora 数据库集群关联

  1. 打开 https://console.amazonaws.cn/rds/ 中的 RDS 控制台。

  2. 选择 Clusters

  3. 选择要与 IAM 角色关联的 Aurora 数据库集群,然后选择集群操作中的管理 IAM 角色

  4. 管理 IAM 角色中,从向此集群添加 IAM 角色中选择要与您的数据库集群关联的角色。

     将 IAM 角色与数据库集群关联
  5. 选择添加角色

  6. (可选) 要停止将 IAM 角色与数据库集群关联并删除相关的权限,请选择该角色对应的 Delete

  7. 选择完成

  8. 在 RDS 控制台中,选择导航窗格中的参数组

  9. 如果您已在使用自定义数据库参数组,您可以选择使用该组而不是创建新的数据库集群参数组。如果您正在使用默认数据库集群参数组,请创建一个新的数据库集群参数组,如下列步骤中所述:

    1. 选择 Create Parameter Group

    2. 对于参数组系列,请选择 aurora5.6 (对于与 Aurora MySQL 5.6 兼容的数据库集群) 或 aurora-mysql5.7 (对于与 Aurora MySQL 5.7 兼容的数据库集群)。

    3. 对于类型,选择数据库集群参数组

    4. 对于组名,键入您的新数据库集群参数组的名称。

    5. 对于 Description,键入您的新数据库集群参数组的描述。

       创建数据库集群参数组
    6. 选择 Create

  10. 参数组页面上,选择您的数据库集群参数组,并从参数组操作中选择编辑

  11. 选择编辑参数

  12. 将适当的集群级别参数设置为相关的 IAM 角色 ARN 值。例如,可以只将 aws_default_s3_role 参数设置为 arn:aws-cn:iam::123456789012:role/AllowAuroraS3Role

  13. 选择 Save changes

  14. 选择 Instances,然后为您的 Aurora 数据库集群选择主实例。

  15. 选择实例操作,然后选择修改

  16. 滚动到数据库选项,然后将数据库集群参数组设置为您已创建的新数据库集群参数组。选择继续

  17. 验证您的更改,然后选择立即应用

  18. 选择修改数据库实例

  19. 数据库集群主实例在实例列表中仍将处于选定状态。选择实例操作,然后选择重启

    在重新启动实例后,您的 IAM 角色将与数据库集群关联。

    有关集群参数组的更多信息,请参阅 Amazon Aurora MySQL 参数

使用 AWS CLI 将 IAM 角色与数据库集群关联

  1. 通过 AWS CLI 调用 add-role-to-db-cluster 命令,可将 IAM 角色的 ARN 添加到数据库集群,如下所示。

    PROMPT> aws rds add-role-to-db-cluster --db-cluster-identifier my-cluster --role-arn arn:aws-cn:iam::123456789012:role/AllowAuroraS3Role PROMPT> aws rds add-role-to-db-cluster --db-cluster-identifier my-cluster --role-arn arn:aws-cn:iam::123456789012:role/AllowAuroraLambdaRole
  2. 如果您正在使用默认数据库集群参数组,请创建一个新的数据库集群参数组。如果您已在使用自定义数据库参数组,您可以使用该组而不是创建新的数据库集群参数组。

    要创建新的数据库集群参数组,请从 AWS CLI 调用 create-db-cluster-parameter-group 命令,如下所示。

    PROMPT> aws rds create-db-cluster-parameter-group --db-cluster-parameter-group-name AllowAWSAccess \ --db-parameter-group-family aurora5.6 --description "Allow access to Amazon S3 and AWS Lambda"

    对于与 Aurora MySQL 5.7 兼容的数据库集群,请为 --db-parameter-group-family 指定 aurora-mysql5.7

  3. 在数据库集群参数组中设置适当的集群级别参数以及相关 IAM 角色 ARN 值,如下所示。

    PROMPT> aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name AllowAWSAccess \ --parameters "name=aws_default_s3_role,value=arn:aws-cn:iam::123456789012:role/AllowAuroraS3Role,method=pending-reboot" \ --parameters "name=aws_default_lambda_role,value=arn:aws-cn:iam::123456789012:role/AllowAuroraLambdaRole,method=pending-reboot"
  4. 修改数据库集群以使用新的数据库集群参数组,然后重新启动集群,如下所示。

    PROMPT> aws rds modify-db-cluster --db-cluster-identifier my-cluster --db-cluster-parameter-group-name AllowAWSAccess PROMPT> aws rds reboot-db-instance --db-instance-identifier my-cluster-primary

    在重新启动实例后,您的 IAM 角色将与数据库集群关联。

    有关集群参数组的更多信息,请参阅 Amazon Aurora MySQL 参数