将 IAM 角色与 Amazon Aurora MySQL 数据库集群关联 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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

注意

您无法将 IAM 角色与 Aurora Serverless v1 数据库集群关联。有关更多信息,请参阅使用 Amazon Aurora Serverless v1

您可以将 IAM 角色与 Aurora Serverless v2 数据库集群关联。

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

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

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

  2. 将相关的Amazon服务的集群级参数设置为关联的 IAM 角色的 ARN。

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

    集群级参数 描述

    aws_default_lambda_role

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

    aws_default_logs_role

    将您的日志数据从数据库集群导出至 Amazon CloudWatch Logs 时,不再需要此参数。Aurora MySQL 现在使用服务相关角色提供所需权限。有关服务相关角色的更多信息,请参阅将服务相关角色用于 Amazon Aurora

    aws_default_s3_role

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

    在 Aurora MySQL 版本 2 中,如果没有为相应语句的 aurora_load_from_s3_roleaurora_select_into_s3_role 指定 IAM 角色,则使用在该参数中指定的 IAM 角色。

    在 Aurora MySQL 版本 3 中,始终使用为该参数指定的 IAM 角色。

    aurora_load_from_s3_role

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

    在 Aurora MySQL 版本 3 中,此参数不可用。

    aurora_select_into_s3_role

    从数据库集群中调用 SELECT INTO OUTFILE S3 语句时使用。如果没有为该参数指定 IAM 角色,则使用在 aws_default_s3_role 中指定的 IAM 角色。

    在 Aurora MySQL 版本 3 中,此参数不可用。

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

使用控制台将 IAM 角色与 Aurora 数据库集群关联
  1. 打开 RDS 控制台:https://console.aws.amazon.com/rds/

  2. 选择数据库

  3. 选择要与 IAM 角色关联以显示其详细信息的 Aurora 数据库集群的名称。

  4. Connectivity & security(连接和安全)选项卡的 Manage IAM roles(管理 IAM 角色)部分中,执行以下操作之一:

    • Select IAM roles to add to this cluster(选择要添加到此集群的 IAM 角色)(原定设置)

    • Select a service to connect to this cluster(选择一项服务连接到此集群)

    
                                        将 IAM 角色与数据库集群关联
  5. 要使用现有 IAM 角色,请从菜单中选择该角色,然后选择 Add role(添加角色)。

    如果成功添加了角色,则其状态显示为 Pending,然后变为 Available

  6. 要直接连接服务,请执行以下操作:

    1. 选择 Select a service to connect to this cluster(选择一项服务连接到此集群)。

    2. 从菜单中选择服务,然后选择 Connect service(连接服务)。

    3. Connect cluster to Service Name(将集群连接到 Service Name)中,输入用于连接服务的 Amazon 资源名称(ARN),然后选择 Connect service(连接服务)。

    Amazon 创建用于连接服务的新 IAM 角色。其状态显示为 Pending,然后变为 Available

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

为关联的 IAM 角色设置集群级参数
  1. 在 RDS 控制台中,选择导航窗格中的参数组

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

    1. 选择创建参数组

    2. 对于参数组系列,请为 Aurora MySQL 8.0 兼容数据库集群选择 aurora-mysql8.0,或者为 Aurora MySQL 5.7 兼容数据库集群选择 aurora-mysql5.7

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

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

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

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

  3. Parameter groups (参数组) 页面上,选择您的数据库集群参数组,并为 Parameter group actions (参数组操作) 选择 Edit (编辑)

  4. 将适当的集群级参数设置为相关的 IAM 角色 ARN 值。

    例如,可以只将 aws_default_s3_role 参数设置为 arn:aws:iam::123456789012:role/AllowS3Access

  5. 选择保存更改

  6. 要更改您的数据库集群的数据库集群参数组,请完成以下步骤:

    1. 选择 Databases (数据库),然后选择 Aurora 数据库集群。

    2. 选择 Modify (修改)

    3. 滚动到 Database options (数据库选项),然后将 DB cluster parameter group (数据库集群参数组) 设置为数据库集群参数组。

    4. 选择 Continue (继续)

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

    6. 选择修改集群

    7. 选择 Databases (数据库),然后为您的数据库集群选择主实例。

    8. 对于操作,选择重启

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

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

使用 Amazon CLI 将 IAM 角色与数据库集群关联
  1. add-role-to-db-cluster 中调用 Amazon CLI 命令,以将 IAM 角色的 ARN 添加到数据库集群中,如下所示。

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

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

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

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

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

    PROMPT> aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name AllowAWSAccess \ --parameters "ParameterName=aws_default_s3_role,ParameterValue=arn:aws:iam::123456789012:role/AllowAuroraS3Role,method=pending-reboot" \ --parameters "ParameterName=aws_default_lambda_role,ParameterValue=arn:aws: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 角色将与数据库集群关联。

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