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