将 IAM 角色与 Amazon Aurora MySQL 数据库集群关联
要允许 Amazon Aurora 数据库集群中的数据库用户访问其他 AWS 服务,您可以将在创建 IAM 角色以允许 Amazon Aurora 访问AWS服务中创建的 IAM 角色与该数据库集群关联。您还可以通过直接关联此服务让 AWS 创建新的 IAM 角色。
要将 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 配置参数。