View a markdown version of this page

满足使用 DMS 架构转换的先决条件 - Amazon Database Migration Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

满足使用 DMS 架构转换的先决条件

在创建实例配置文件、添加数据提供者和创建迁移项目之前,请完成以下必备任务。这些任务配置 DMS 架构转换所需的 Amazon 资源,例如 VPC、Amazon S3 存储桶、 Amazon Secrets Manager 密钥和具有权限策略的 IAM 角色。

控制台自动创建资源

当您使用 Amazon 管理控制台创建迁移项目时, Amazon DMS 可以自动代表您创建所需的 IAM 角色和 Amazon S3 存储桶。如果您希望手动创建这些资源,或者如果您使用 Amazon CLI 或 API,请完成以下步骤。有关创建迁移项目的更多信息,请参阅 创建迁移项目。

配置 VPC、Amazon S3 和密钥管理器

在创建 IAM 角色和策略之前,您需要为迁移项目提供以下 Amazon 资源。

Amazon Virtual Private Cloud

您需要一个 VPC,该VPC 可以从至少两个可用区的子网连接到您的源数据库和目标数据库。您可以使用符合这些要求的现有 VPC,也可以创建一个新的 VPC,例如名为sc-vpc。有关网络配置的更多信息,请参阅为 DMS 架构转换设置网络。

Amazon S3

您需要一个启用了版本控制的 Amazon S3 存储桶来存储评估报告、转换后的 SQL 代码和数据库架构元数据。在与您的迁移项目相同的区域创建 Amazon S3 存储桶,例如命名amzn-s3-demo-bucket,或者使用符合这些要求的现有存储桶。DMS 架构转换支持使用 Amazon S3 托管密钥进行 Server-Side 加密 (SSE-S3) 或使用 Amazon KMS 密钥 Server-Side 加密 () 的 Amazon S3 存储桶。SSE-KMS这包括客户管理的密钥。如果您的存储桶 SSE-KMS 与客户管理的密钥一起使用,请确保对该密钥sc-s3-role具有所需的权限(请参阅创建 IAM 角色和策略)。DMS 架构转换不支持 SSE-C 或 Client-Side 加密。有关创建存储桶的说明,请参阅 Amazon S3 用户指南中的创建存储桶。

Amazon Secrets Manager

在其中创建 JSON 密钥 Amazon Secrets Manager ,其中包含username源数据库和目标数据库的password键值对,例如命名sc-source-secret和。sc-target-secret您的密钥必须与迁移项目 Amazon Web Services 区域 相同。如果您已经拥有满足这些要求的密钥,则可以重复使用它们。有关创建密钥的说明,请参阅《Amazon Secrets Manager 用户指南》中的创建 Amazon Secrets Manager 密钥。

创建 IAM 角色和策略

要使用 DMS 架构转换,请创建以下五个 IAM 角色。每个角色都必须使用允许 Amazon DMS 服务代入角色的信任策略。

角色名称 权限策略
sc-s3-role

允许 DMS 架构转换将评估报告、转换后的 SQL 代码和元数据存储在 Amazon S3 存储桶中:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation", "s3:GetBucketVersioning" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" } } }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" } } } ] }
SSE-KMS 客户管理的密钥的权限

如果您的 Amazon S3 存储桶 SSE-KMS 与客户管理的密钥一起使用,则该sc-s3-role角色需要权限才能使用该密钥。使用以下方法之一。

将以下语句添加到sc-s3-role身份策略中。当 KMS 密钥策略向 IAM 委托访问权限时,这种方法起作用,默认密钥策略就是这样:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-ID", "Condition": { "StringEquals": { "kms:ViaService": "s3.us-east-1.amazonaws.com" } } } ] }

或者在 KMS 密钥策略中添加一条声明。sc-s3-role当密钥策略未向 IAM 委托访问权限时,请使用此方法。密钥政策声明采用Principal并适用于密钥本身:

{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowScS3RoleToUseTheKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/sc-s3-role" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "s3.us-east-1.amazonaws.com" } } } ] }

如果您的存储桶使用 SSE-S3,则不需要额外的权限。

sc-source-secret-role

允许 DMS 架构转换检索您的源数据库凭据:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:sc-source-secret*" } ] }
sc-target-secret-role

允许 DMS 架构转换检索您的目标数据库凭据:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:sc-target-secret*" } ] }
dms-vpc-role

AmazonDMSVPCManagementRole(Amazon 管理策略)。请参阅创建与之配合使用的 IAM 角色 Amazon DMS。

dms-cloudwatch-logs-role

AmazonDMSCloudWatchLogsRole(Amazon 管理策略)。请参阅创建与之配合使用的 IAM 角色 Amazon DMS。

每个角色都需要以下信任策略:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

要创建这些资源,请先创建策略,然后创建角色并附加相应的策略。有关说明,请参阅 IAM 用户指南中的创建 IAM 策略和为 Amazon 服务创建角色。