AWS Database Migration Service
用户指南 (版本 API Version 2016-01-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 AWS DMS 所需的 IAM 权限

您需要使用特定 IAM 权限和 IAM 角色才能使用 AWS DMS。如果以 IAM 用户的身份登录并希望使用 AWS DMS,账户管理员必须附加本节中讨论的策略到 IAM 用户、组或运行 AWS DMS 所用的角色。有关 IAM 权限的更多信息,请参阅 IAM 用户指南

下面的一组权限提供对 AWS DMS 的访问权限,以及其他 Amazon 服务(如 AWS KMS、IAM、Amazon Elastic Compute Cloud (Amazon EC2) 和 Amazon CloudWatch)的特定操作所需的权限。CloudWatch 实时监控 AWS DMS 迁移并收集和跟踪指示迁移进度的指标。您可以使用 CloudWatch 日志来调试任务中的问题。

注意

您可以使用标记进一步限制对 AWS DMS 资源的访问。有关使用标记限制对 AWS DMS 资源的访问的更多信息,请参阅使用资源名称和标签进行精细访问控制

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:ModifyNetworkInterfaceAttribute", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudwatch:Get*", "cloudwatch:List*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "redshift:Describe*", "redshift:ModifyClusterIamRoles" ], "Resource": "*" } ] }

细分这些权限可以帮助您更好地了解需要每个权限的原因。

需要使用该部分以允许用户调用 AWS DMS API 操作。

{ "Effect": "Allow", "Action": "dms:*", "Resource": "*" }

需要使用该部分以允许用户列出可用的 KMS 密钥和别名,以便在控制台中显示。如果 KMS 密钥 ARN 已知以及在仅使用 CLI 时,不需要使用该条目。

{ "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "*" }

对于需要在终端节点中传入角色 ARN 的某些终端节点类型,需要使用该部分。此外,如果没有提前创建所需的 AWS DMS 角色,则 AWS DMS 控制台可以创建该角色。如果提前配置了所有角色,这是 iam:GetRole 和 iam:PassRole 中所需的所有角色。有关 角色的更多信息,请参阅创建 IAM 角色以用于 AWS CLI 和 AWS DMS API

{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "*" }

需要使用该部分,因为 AWS DMS 需要创建 EC2 实例并为创建的复制实例配置网络。这些资源位于客户的账户中,因此,需要能够代表客户执行这些操作。

{ "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:ModifyNetworkInterfaceAttribute", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface" ], "Resource": "*" }

需要使用该部分,以允许用户查看复制实例指标。

{ "Effect": "Allow", "Action": [ "cloudwatch:Get*", "cloudwatch:List*" ], "Resource": "*" }

需要使用该部分,以允许用户查看复制日志。

{ "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "*" }

在将 Redshift 作为目标时,需要使用该部分。它允许 AWS DMS 验证是否为 AWS DMS 正确设置 Redshift 群集。

{ "Effect": "Allow", "Action": [ "redshift:Describe*", "redshift:ModifyClusterIamRoles" ], "Resource": "*" }

AWS DMS 控制台创建多个角色,在您使用 AWS DMS 控制台时可自动附加到您的 AWS 账户。如果将 AWS Command Line Interface (AWS CLI) 或 AWS DMS API 用于迁移,则需要将这些角色添加到您的账户。有关添加这些角色的更多信息,请参阅 创建 IAM 角色以用于 AWS CLI 和 AWS DMS API