Amazon Relational Database Service
用户指南 (API Version 2014-10-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

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

要允许 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 数据库群集,然后选择 Manage IAM Roles

     管理数据库群集的 IAM 角色
  4. Manage IAM Roles 中,从 Available roles 中选择要与您的数据库群集关联的角色。

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

  6. 选择完成

  7. 在 RDS 控制台中,选择导航窗格中的 Parameter Groups

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

    1. 选择 Create Parameter Group

       创建数据库群集参数组

      对于 Parameter Group Family,选择 aurora5.6

    2. 对于 类型,选择 DB cluster parameter group

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

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

    5. 选择 Create

  9. 选择数据库群集参数组,然后选择 Edit Parameters

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

  11. 选择 Save Changes

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

  13. 选择 Instance Actions,然后选择 Modify

  14. DB Cluster Parameter Group 设置为您创建的新数据库群集参数组。选择 Apply Immediately。选择 Continue

  15. 验证您的更改,然后选择 Modify DB Instance

  16. 数据库群集主实例在实例列表中仍将处于选定状态。选择 Instance Actions,然后选择 Reboot

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

    有关群集参数组的更多信息,请参阅 数据库群集和数据库实例参数

使用 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"
  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 角色将与数据库群集关联。

    有关群集参数组的更多信息,请参阅 数据库群集和数据库实例参数