为 Amazon DMS 配置 VPC 端点
Amazon DMS 支持将 Amazon 虚拟私有云(VPC)端点作为源和目标。Amazon DMS 可通过 Amazon VPC 端点连接到任何 Amazon 源或目标数据库,只要在 Amazon DMS VPC 中明确定义了到这些源和目标数据库的路由。
通过支持 Amazon VPC 端点,Amazon DMS 可以更轻松地维护所有复制任务的端到端网络安全,而无需额外的联网配置和设置。为所有源端点和目标端点使用 VPC 端点,可确保您的所有流量保持在 VPC 内并处于您的控制之下。
对于在私有子网或 Amazon DMS 无服务器复制中创建的 Amazon DMS 复制实例,要连接到 Amazon 托管数据库,必须设置 Amazon VPC 端点:
-
Amazon S3
-
Amazon DynamoDB
-
Amazon Kinesis
-
Amazon Redshift
-
Amazon OpenSearch Service
如果您使用 Amazon Secrets Manager 存储连接凭证供 DMS 使用,则还需要设置 VPC 端点。
从 Amazon DMS 版本 3.4.7 开始,当使用私有网络时,需要使用 VPC 端点才能在 DMS 复制实例或无服务器复制与上述 Amazon 服务之间建立连接。
常用 Amazon DMS 先决条件
配置 VPC 端点之前,您必须满足以下先决条件:
-
找到或创建用于 Amazon DMS 复制实例或 Amazon DMS 无服务器复制的 VPC。如果您不提供此信息,DMS 会尝试使用其设置所在区域的默认 VPC。
-
确保您具有创建 VPC 端点的 IAM 权限。要连接到 Amazon S3 和 Amazon DynamoDB,您可以创建网关 VPC 端点,以提供可靠连接,而无需为您的 VPC 提供互联网网关或 NAT 设备。与其他类型的 VPC 端点不同,网关端点不使用 Amazon PrivateLink。有关更多信息,请参阅《Amazon PrivateLink 用户指南》中的网关端点。
-
配置可使用 DMS 的 IAM 权限:
-
配置
dms-vpc-role角色。有关更多信息,请参阅 Amazon 托管式策略:AmazonDMSVPCManagementRole。 -
配置
dms-cloudwatch-logs-role角色。有关更多信息,请参阅 Amazon 托管式策略:AmazonDMSCloudWatchLogsRole。 -
Amazon DMS Serverless 需要您的账户中存在服务相关角色(SLR)。Amazon DMS 管理此角色的创建和使用。有关确保您拥有所需 SLR 的更多信息,请参阅 Amazon DMS Serverless 的服务相关角色。创建复制时,Amazon DMS Serverless 会以编程方式创建 Serverless 服务相关角色。您可以在 IAM 控制台中查看此角色。
-
使用 Amazon Secrets Manager 设置 Amazon VPC 端点
您可以为 Amazon Secrets Manager 设置 Amazon VPC 端点以使用 Amazon DMS。通过创建此端点,您可以启用私有子网中的 Amazon DMS 复制实例或无服务器复制配置,以安全地访问存储在 Secrets Manager 中的数据库凭证,而无需访问公共互联网。
先决条件
在 Amazon DMS 中用 Amazon Secrets Manager 配置 VPC 端点之前,您必须满足以下先决条件:
-
确保您配置了所有的 常用 Amazon DMS 先决条件。
-
使用用于访问源数据库和目标数据库的凭证在 Amazon Secrets Manager 中创建密钥。密钥必须与 Amazon DMS 复制实例或 Amazon DMS 无服务器复制位于同一区域。根据数据库类型,密钥的架构可能会有所不同。有关更多信息,请参阅使用 Amazon DMS 端点。
重要
Amazon DMS 复制实例和 Amazon DMS 无服务器复制不适用于由 Amazon RDS 管理的密钥。这些凭证不包括 Amazon DMS 为建立连接所需的主机和端口信息。
-
某些数据库需要配置 IAM 权限来管理 DMS 端点:Amazon S3、Amazon Kinesis、Amazon DynamoDB、Amazon Redshift、Amazon OpenSearch Service、Amazon Neptune 和 Amazon Timestream。有关更多信息,请参阅使用 Amazon DMS 端点。
为 Amazon Secrets Manager 创建 VPC 端点
登录到 Amazon Web Services 管理控制台并打开 Amazon VPC 控制台,网址:https://console.aws.amazon.com/vpc/。
-
在 VPC 控制台菜单栏上,选择与您的 Amazon DMS 复制实例相同的 Amazon Web Services 区域。
-
在 VPC 导航窗格中,选择端点。
-
在端点下,选择创建端点。
-
按照下面的方式配置 VPC 端点:
-
选择类型为Amazon服务。
-
在服务名称文本框中,搜索
secretsmanager并选择 com.amazonaws.[region].secretsmanager。确保所选服务的类型为接口。 -
在网络设置下,选择与您的 DMS 复制实例在同一区域运行或您创建无服务器复制所在区域运行的 VPC。
-
在子网部分,选择您希望 DMS 运行所在的所需子网。确保只选择私有子网。您可以使用子网 ID 标识私有子网。例如:
vpc-xxxxxx-subnet-private1-us-west-2a。如果您的 DMS 复制实例是在没有公共访问权限的情况下创建的,则必须选择与您的复制实例所在的私有子网关联的路由表。
注意
请务必记下私有子网,因为在创建 DMS 复制子网组时需要提供这些子网。要使用 VPC 端点将 DMS 与 Amazon Secrets Manager 连接,为 VPC 端点指定的子网必须与 DMS 复制子网组中的子网相同。
-
选择所需的安全组。安全组规则将控制从 VPC 中的资源发送到端点网络接口的通信。如果您未指定安全组,将选择默认安全组。
-
-
在策略下选择完全访问权限。如果要使用自定义策略来指定自己的访问控制,请选择自定义。您可以使用符合 JSON 策略文档
dms-vpc-role的信任策略。有关更多信息,请参阅创建 IAM 角色以用于 Amazon DMS。 -
选择创建端点。
您必须等待,直到状态变成
Available。您的 VPC 端点现在有一个以vpce-xxxx开头的 ID。
现在,您已成功创建了 VPC 端点。您必须配置 Amazon DMS 端点、DMS 子网组。根据您选择的迁移选项,配置 DMS 复制实例或无服务器复制。
使用 Amazon S3 设置 Amazon VPC 端点
您可以为 Amazon S3 设置 Amazon VPC 端点以使用 Amazon DMS。通过创建此端点,您可以启用私有子网中的 Amazon DMS 复制实例或无服务器复制配置,以安全地访问存储在 S3 存储桶中的数据库凭证,而无需访问公共互联网。
先决条件
在 Amazon DMS 中用 Amazon S3 配置 VPC 端点之前,您必须满足以下先决条件:
-
确保您配置了所有的 常用 Amazon DMS 先决条件。
-
通过 Amazon DMS 创建 Amazon S3 存储桶以用作源数据库或目标数据库。不要为 S3 启用版本控制。如果您需要 S3 版本控制,请使用生命周期策略主动删除旧版本。否则,您可能会遇到由于 S3 list-object 调用超时而导致端点测试连接失败的情况。
-
配置 IAM 权限以管理 DMS Amazon S3 端点。如果您使用的是 Amazon DMS 控制台,而且有权创建 IAM 角色,则可以创建具有必要权限的 IAM 角色。
为 Amazon S3 创建 VPC 端点
登录到 Amazon Web Services 管理控制台并打开 Amazon VPC 控制台,网址:https://console.aws.amazon.com/vpc/。
-
在 VPC 控制台菜单栏上,选择与您的 Amazon DMS 复制实例相同的 Amazon Web Services 区域。
-
在 VPC 导航窗格中,选择端点。
-
在端点下,选择创建端点。
-
按照下面的方式配置 VPC 端点:
-
选择类型为Amazon服务。
-
在服务名称文本框中,搜索
s3并选择 com.amazonaws.[region].s3。确保所选服务的类型为网关。在连接到 Amazon S3 和 DynamoDB 时,您可以创建网关 VPC 端点。与其他类型的 VPC 端点不同,网关端点不使用 Amazon PrivateLink。 -
在网络设置下,选择与您的 DMS 复制实例在同一区域运行或您创建无服务器复制所在区域运行的 VPC。
-
在子网部分,选择您希望 DMS 运行所在的所需子网。确保只选择私有子网。您可以使用子网 ID 标识私有子网。例如:
vpc-xxxxxx-subnet-private1-us-west-2a。注意
如果您创建的 DMS 复制实例没有公共访问权限,则必须选择与私有子网关联的路由表,这些子网与您的 DMS 实例位于同一区域。请务必记下私有子网,因为在创建 DMS 复制子网组时需要提供这些子网。要使用 VPC 端点将 DMS 与 Amazon S3 连接,为 VPC 端点指定的子网必须与 DMS 复制子网组中的子网相同。
-
-
在策略下选择完全访问权限。如果要使用自定义策略来指定自己的访问控制,请选择自定义。您可以使用符合 JSON 策略文档
dms-vpc-role的信任策略。有关更多信息,请参阅创建 IAM 角色以用于 Amazon DMS。 -
选择创建端点。
您必须等待,直到状态变成
Available。您的 VPC 端点现在有一个以vpce-xxxx开头的 ID。
现在,您已成功创建了 VPC 端点。您必须配置 Amazon DMS 端点、DMS 子网组。根据您选择的迁移选项,配置 DMS 复制实例或无服务器复制。
设置适用于 Amazon DynamoDB 的 Amazon VPC 端点
在私有子网或 Amazon DMS 无服务器复制中使用 Amazon DMS 复制实例时,必须创建 VPC 端点才能与 Amazon DynamoDB 建立安全连接。如果没有 VPC 端点配置,Amazon DMS 会遇到连接错误。
创建 VPC 端点时,必须在 DMS 控制台中选择端点类型作为网关或接口。有关更多信息,请参阅:
为 Amazon Kinesis 设置 Amazon VPC 端点
在私有子网或 Amazon DMS 无服务器复制中使用 Amazon DMS 复制实例时,必须创建 VPC 端点才能与 Amazon Kinesis 建立安全连接。如果没有 VPC 端点配置,Amazon DMS 会遇到连接错误。有关更多信息,请参阅:
为 Amazon Redshift 设置 Amazon VPC 端点
在私有子网或 Amazon DMS 无服务器复制中使用 Amazon DMS 复制实例时,必须创建 VPC 端点才能与 Amazon Redshift 建立安全连接。如果没有 VPC 端点配置,Amazon DMS 会遇到连接错误。有关更多信息,请参阅:
为 Amazon OpenSearch Service 设置 Amazon VPC 端点
在私有子网或 Amazon DMS 无服务器复制中使用 Amazon DMS 复制实例时,必须创建 VPC 端点才能与 Amazon OpenSearch Service 建立安全连接。如果没有 VPC 端点配置,Amazon DMS 会遇到连接错误。有关更多信息,请参阅:
设置复制实例、DMS 子网组和 DMS 端点
创建 VPC 端点后,必须配置 Amazon DMS 复制资源。您可以设置用于网络隔离的复制子网组、用于处理的复制实例或无服务器复制,以及用于连接到源数据库和目标数据库的端点,以便在您的 VPC 内实现安全的数据库迁移。
设置 Amazon DMS 复制实例
要配置 Amazon DMS 预配置的复制实例,必须设置 DMS 复制子网组。
创建 DMS 复制子网组
-
登录 Amazon Web Services 管理控制台 并打开 DMS 控制台。
-
从左侧导航窗格中,找到子网组,然后选择创建子网组。
-
输入名称和描述。
-
从 VPC 下拉菜单中,选择在您要创建 DMS 复制实例的同一区域中运行的 VPC。
-
从添加子网下拉菜单中,添加您在创建 VPC 端点时指定的私有子网。您可以使用子网 ID 标识私有子网。例如:
vpc-xxxxxx-subnet-private1-us-west-2a。 -
单击创建子网组。
创建 DMS 复制实例(已预配置)
-
导航到 Amazon Web Services 管理控制台 以创建复制实例。有关更多信息,请参阅创建复制实例。要了解更多选择、大小调整和配置复制实例,请参阅使用 Amazon DMS 复制实例。
-
在连接和安全部分,从 IPv4 的虚拟私有云(VPC)或双栈模式中选择要在其中创建 Amazon DMS 复制实例的 VPC。有关更多信息,请参阅为复制实例设置网络。
-
从复制子网组下拉菜单中,选择您为复制实例创建的子网组。
注意
确保为 VPC 端点指定的子网与 DMS 复制实例子网组中的子网相同。您必须从子网组中移除与 VPC 端点无关的所有子网。
-
取消选中可公开访问复选框以禁用公共访问。
-
在高级设置部分的 VPC 安全组下拉菜单中,选择与您的复制实例关联的所有 VPC 子网组。这些组必须包含子网组,该子网组包含您在创建 VPC 端点时指定的子网。
如果您未指定子网组,则 DMS 会选择默认的复制子网组,如果不存在则创建该子网组。有关更多信息,请参阅 Amazon DMS 的安全组配置。
-
完成复制实例配置,然后选择创建复制实例。
您必须等待,直到状态变成
Available。
创建 Amazon DMS 源和目标端点
设置 Amazon DMS 无服务器复制
要配置 Amazon DMS 无服务器复制,必须设置 DMS 复制子网组。
创建 Amazon DMS 源和目标端点
-
登录 DMS 控制台。
-
导航到 Amazon DMS 端点并选择创建端点。
-
在 DMS 控制台中,您可以选择现有的 IAM 角色或创建新的 IAM 角色来访问 Amazon Secrets Manager 中存储的数据库凭证。
注意
对于 Amazon DMS 无服务器复制,您无法测试 DMS 端点的连接或使用
TestConnectionAPI。连接测试在 DMS 实例和您的源/目标数据库之间的无服务器复制启动期间执行。有关更多信息,请参阅 Amazon DMS Serverless 组件。 -
选择创建端点。
创建 DMS 复制子网组
-
登录 Amazon Web Services 管理控制台 并打开 DMS 控制台。
-
从左侧导航窗格中,找到子网组,然后选择创建子网组。
-
输入名称和描述。
-
从 VPC 下拉菜单中,选择与您的 DMS 无服务器实例在同一区域运行的 VPC。
-
从添加子网下拉菜单中,添加您在创建 VPC 端点时指定的私有子网。您可以使用子网 ID 标识私有子网。例如:
vpc-xxxxxx-subnet-private1-us-west-2a。 -
单击创建子网组。
创建 DMS 无服务器复制
-
导航到 DMS 控制台以创建无服务器实例。有关更多信息,请参阅创建无服务器复制。要了解更多选择、大小调整和配置无服务器实例,请参阅使用 Amazon DMS Serverless。
-
在连接和安全部分,从虚拟私有云(VPC)下拉菜单中选择要在其中创建 Amazon DMS 无服务器实例的 VPC。有关更多信息,请参阅为复制实例设置网络。
-
从子网组下拉菜单中,选择您为无服务器实例创建的子网组。
注意
确保为 VPC 端点指定的子网与 DMS 无服务器实例子网组中的子网相同。您必须从子网组中移除所有与您的无服务器实例无关联的子网。
-
选择可用区。
-
从最大 DMS 容量单位(DCU)下拉菜单中,选择所需的 DCU 容量。
-
选择创建任务。这将创建一个 DMS 无服务器复制配置,该配置以
Start required状态显示在任务列表中。 -
要启动无服务器复制,请选择您的任务,然后从操作菜单中选择启动。
迁移到 Amazon DMS 版本 3.4.7 及更高版本时,谁会受到影响?
如果您在使用先前列出的一个或多个 Amazon DMS 端点,并且这些端点不可公开路由,或者它们没有与之关联的 VPC 端点,则您会受到影响。
迁移到 Amazon DMS 版本 3.4.7 及更高版本时,谁不会受到影响?
在以下情况下,您不会受到影响:
您没有使用前面列出的一个或多个 Amazon DMS 端点。
您在使用前面列出的任何端点,并且它们可以公开路由。
您在使用前面列出的任何端点,并且它们具有与之关联的 VPC 端点。
准备迁移到 Amazon DMS 3.4.7 及更高版本
当您在使用前面描述的任何端点时,为了防止 Amazon DMS 任务失败,请在将 Amazon DMS 升级到版本 3.4.7 或更高版本之前执行以下步骤之一:
-
使受影响的 Amazon DMS 端点可公开路由。例如,向 Amazon DMS 复制实例已使用的任何 VPC 添加互联网网关(IGW)路由,使其所有源端点和目标端点均可公开路由。
-
创建 VPC 端点以访问 Amazon DMS 使用的所有源端点和目标端点,如下所述。
对于您用于 Amazon DMS 源端点和目标端点的任何现有 VPC 端点,请确保它们使用的信任策略符合 XML 策略文档 dms-vpc-role。有关此 XML 策略文档的更多信息,请参阅创建 IAM 角色以用于 Amazon DMS。
否则,请将 VPC 端点添加到包含您的复制实例的 VPC 端点,以将复制实例配置为 VPC 端点。如果您配置的复制实例没有公有端点,请向包含您的复制实例的 VPC 添加可公开访问的 VPC 端点,这样就可以让这些端点可公开访问。您无需执行其他任何操作,即可专门将您的复制实例与 VPC 端点关联。
注意
不同的服务可能具有唯一的 VPC 端点配置。例如,在使用 Amazon Secrets Manager 时,您通常不需要调整路由表。务必检查每项服务的具体要求。
有关为 Amazon DMS 复制实例配置 VPC 端点的更多信息,请参阅数据库迁移的网络配置。有关创建用于访问 Amazon 服务的接口 VPC 端点的更多信息,请参阅《Amazon PrivateLink 指南》中的使用接口 VPC 端点访问 Amazon 服务。有关 VPC 端点的 Amazon DMS 区域可用性的信息,请参阅 Amazon 区域表