将 IAM 角色与 Amazon Aurora MySQL 数据库集群关联
要允许 Amazon Aurora 数据库集群中的数据库用户访问其他Amazon服务,您可以将在 创建 IAM 角色以允许 Amazon Aurora 访问Amazon服务 中创建的角色与该数据库集群关联。
您无法将 IAM 角色与 Aurora Serverless 数据库集群关联。有关更多信息,请参阅“使用 Amazon Aurora Serverless v1”。
要将 IAM 角色与数据库集群关联,您可以执行两个操作:
-
通过使用 RDS 控制台、add-role-to-db-cluster Amazon CLI 命令或 AddRoleToDBCluster RDS API 操作,将角色添加到数据库集群的关联角色列表中。
每个 Aurora 数据库集群最多可以添加 5 个 IAM 角色。
-
将相关的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 S3
、LOAD XML FROM S3
或SELECT INTO OUTFILE S3
语句时使用。只有在没有为相应语句的
aurora_load_from_s3_role
或aurora_select_into_s3_role
指定 IAM 角色时,才会使用在该参数中指定的 IAM 角色。对于 Aurora 的早期版本,始终使用为该参数指定的 IAM 角色。
aurora_load_from_s3_role
从数据库集群中调用
LOAD DATA FROM S3
或LOAD XML FROM S3
语句时使用。如果没有为该参数指定 IAM 角色,则使用在aws_default_s3_role
中指定的 IAM 角色。对于 Aurora 的早期版本,该参数不可用。
aurora_select_into_s3_role
从数据库集群中调用
SELECT INTO OUTFILE S3
语句时使用。如果没有为该参数指定 IAM 角色,则使用在aws_default_s3_role
中指定的 IAM 角色。对于 Aurora 的早期版本,该参数不可用。
要关联 IAM 角色以允许您的 Amazon RDS 集群代表您与其他Amazon服务通信,请执行以下步骤。
使用控制台将 IAM 角色与 Aurora 数据库集群关联
-
打开 RDS 控制台:https://console.aws.amazon.com/rds/
。 -
选择数据库。
-
选择要与 IAM 角色关联以显示其详细信息的 Aurora 数据库集群的名称。
-
在 Connectivity & security (连接性和安全性) 选项卡上的 Manage IAM roles (管理 IAM 角色) 部分中,在 Add IAM roles to this cluster (向此集群添加 IAM 角色) 下选择要添加的角色。
选择 Add role (添加角色)。
-
(可选)要停止将 IAM 角色与数据库集群关联并删除相关的权限,请选择该角色并选择 Delete (删除)。
-
在 RDS 控制台中,选择导航窗格中的参数组。
-
如果您已在使用自定义数据库参数组,您可以选择使用该组而不是创建新的数据库集群参数组。如果您正在使用默认数据库集群参数组,请创建一个新的数据库集群参数组,如下列步骤中所述:
-
选择创建参数组。
-
对于参数组系列,请为兼容 Aurora MySQL 8.0 的数据库集群选择
aurora-mysql8.0
,为兼容 Aurora MySQL 5.7 的数据库集群选择aurora-mysql5.7
,或者为兼容 Aurora MySQL 5.6 的数据库集群选择aurora5.6
。 -
对于类型,请选择数据库集群参数组。
-
对于组名,键入您的新数据库集群参数组的名称。
-
对于 Description,键入您的新数据库集群参数组的描述。
-
选择创建。
-
-
在 Parameter groups (参数组) 页面上,选择您的数据库集群参数组,并为 Parameter group actions (参数组操作) 选择 Edit (编辑)。
-
将适当的集群级参数设置为相关的 IAM 角色 ARN 值。例如,可以只将
aws_default_s3_role
参数设置为arn:aws:iam::123456789012:role/AllowAuroraS3Role
。 -
选择保存更改。
-
要更改您的数据库集群的数据库集群参数组,请完成以下步骤:
-
选择 Databases (数据库),然后选择 Aurora 数据库集群。
-
选择 Modify (修改)。
-
滚动到 Database options (数据库选项),然后将 DB cluster parameter group (数据库集群参数组) 设置为数据库集群参数组。
-
选择 Continue (继续)。
-
验证您的更改,然后选择立即应用。
-
选择修改集群。
-
选择 Databases (数据库),然后为您的数据库集群选择主实例。
-
对于操作,选择重启。
在重新启动实例后,您的 IAM 角色将与数据库集群关联。
有关集群参数组的更多信息,请参阅 Aurora MySQL 配置参数。
-
使用 Amazon CLI 将 IAM 角色与数据库集群关联
-
从
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
-
如果您正在使用默认数据库集群参数组,请创建一个新的数据库集群参数组。如果您已在使用自定义数据库参数组,您可以使用该组而不是创建新的数据库集群参数组。
要创建新的数据库集群参数组,请从
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.6 --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
。 -
在数据库集群参数组中设置相应的集群级参数以及相关的 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"
-
修改数据库集群以使用新的数据库集群参数组,然后重新启动集群,如下所示。
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 配置参数。