Amazon Database Migration Service 中的安全性 - Amazon Database Migration Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon Database Migration Service 中的安全性

Amazon 的云安全性具有优先级最高。作为 Amazon 客户,您将从专为满足大多数安全敏感型组织的要求而打造的数据中心和网络架构中受益。

安全性是 Amazon 和您的共同责任。责任共担模式将其描述为云安全性和云的安全性:

  • 云的安全性 – Amazon负责保护在Amazon云中运行Amazon服务的基础设施。Amazon还向您提供可安全使用的服务。作为 Amazon 合规性计划的一部分,第三方审核人员将定期测试和验证安全性的有效性。要了解适用于 Amazon DMS 的合规性计划,请参阅合规性计划范围内的 Amazon 服务

  • 云中的安全性 - 您的责任由您使用的 Amazon 服务决定。您还需要对其他因素负责,包括您的数据的敏感性、您组织的要求以及适用的法律法规。

此文档将帮助您了解如何在使用 Amazon DMS 时应用责任共担模式。以下主题说明如何配置 Amazon DMS 以实现您的安全性和合规性目标。您还将了解如何使用其他 Amazon 服务来帮助您监控和保护 Amazon DMS 资源。

您可以管理对 Amazon DMS 资源和数据库 (DB) 的访问。用来管理访问的方法取决于您需要对 Amazon DMS 执行的复制任务:

  • 使用Amazon Identity and Access Management (IAM) 策略分配决定谁可以管理Amazon DMS资源的权限。 Amazon DMS如果您以 IAM 用户身份登录,则需要您拥有相应的权限。例如,您可以使用 IAM 确定可以创建、描述、修改和删除数据库实例集群、为资源添加标签或修改安全组的人员。有关 IAM 及其搭配使用的更多信息Amazon DMS,请参阅适用于 Amazon Database Migration Service 的 Identity and Access Management

  • Amazon DMS 使用带传输层安全性 (TLS) 的安全套接字层 (SSL) 进行终端节点连接。有关将 SSL/TLS 与 Amazon DMS 一起使用的更多信息,请参阅将 SSL 与 Amazon Database Migration Service 配合使用

  • Amazon DMS使用Amazon Key Management Service (Amazon KMS) 加密密钥加密您的复制实例使用的存储及其端点连接信息。 Amazon DMS还使用Amazon KMS加密密钥保护 Amazon S3 和 Amazon Redshift 目标终端节点的静态目标数据。有关更多信息,请参阅设置加密密钥和指定 Amazon KMS 权限

  • Amazon DMS始终在基于 Amazon VPC 服务的 Virtual Private Cloud (VPC) 中创建复制实例以获得可能最大的网络访问控制。对于数据库实例和实例集群,请使用与复制实例相同的 VPC,或使用其他 VPC 来匹配此级别的访问控制。您使用的每个 Amazon VPC 都必须与一个安全组相关联,该安全组的规则允许所有端口上的所有流量离开(出口)VPC。使用此方法,只要这些终端节点上启用了正确的传入,就允许从复制实例与您的源和目标数据库终端节点通信。

    有关 Amazon DMS 的可用网络配置的更多信息,请参阅 为复制实例设置网络。有关在 VPC 中创建数据库实例或实例集群的更多信息,请参阅文档中的 Amazon 数据库的安全和集群管理Amazon文档。有关 Amazon DMS 支持的网络配置的更多信息,请参阅 为复制实例设置网络

  • 要查看数据库迁移日志,您需要对所使用的 IAM 角色具有相应的 Amazon L CloudWatch ogs 权限。有关 Amazon DMS 日志记录的更多信息,请参阅 使用 Amazon 监控复制任务 CloudWatch

设置加密密钥和指定 Amazon KMS 权限

Amazon DMS 加密复制实例使用的存储以及终端节点连接信息。要加密复制实例使用的存储,请Amazon DMS使用您的Amazon账户独有的Amazon Key Management Service (Amazon KMS) 密钥。您可以使用 Amazon KMS 查看和管理此密钥。您可以使用您账户 (aws/dms) 中的默认 KMS 密钥,也可以创建自定义 KMS 密钥。如果您有现有的 KMS 密钥,也可以使用该密钥加密。

注意

用作加密密钥的任何自定义或现有 Amazon KMS 密钥都必须是对称密钥。Amazon DMS 不支持使用非对称加密密钥。有关对称和非对称加密密钥的更多信息https://docs.amazonaws.cn/kms/latest/developerguide/symmetric-asymmetric.html,请参阅Amazon Key Management Service开发者指南

如果您尚未从 “创建复制实例” 页面的 “高级” 部分选择自定义 KMS 密钥,则默认 KMS 密钥 (aws/dms) 是在您首次启动复制实例时创建的。如果您使用默认的 KMS 密钥,您只需要将 kms:ListAliaseskms:DescribeKey 权限授予用于迁移的 IAM 用户账户。有关使用默认 KMS 密钥的更多信息,请参阅 使用 Amazon DMS 所需的 IAM 权限

要使用自定义 KMS 密钥,请使用以下选项之一为自定义 KMS 密钥分配权限:

  • 以 Amazon KMS 自定义密钥的密钥管理员或密钥用户的身份添加用于迁移的 IAM 用户账户。这样做可确保将必需的 Amazon KMS 权限授予 IAM 用户账户。除了向 IAM 用户账户授予使用 Amazon DMS 的 IAM 权限之外,还需执行此操作。有关向密钥用户授予权限的更多信息,请参阅Amazon Key Management Service开发者指南中的允许密钥用户使用 KMS 密钥。

  • 如果您不希望添加 IAM 用户账户作为自定义 KMS 密钥的密钥管理员或密钥用户,则除了必须向 IAM 用户账户授予使用 Amazon DMS 的 IAM 权限以外,还需授予以下附加权限。

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

Amazon DMS 也适用于 KMS 密钥别名。有关创建自己的Amazon KMS密钥和授予用户访问 KMS 密钥的更多信息,请参阅Amazon KMS开发者指南

如果没有指定 KMS 密钥标识符,则将Amazon DMS使用您的默认加密密钥。 Amazon KMSAmazon DMS为您的Amazon账户创建默认加密密钥。您的Amazon账户在每个Amazon区域都有一个不同的默认加密密钥。

要管理用于加密 Amazon DMS 资源的 Amazon KMS 密钥,您可以使用 Amazon Key Management Service。Amazon KMS 将安全、高度可用的硬件和软件结合起来,提供可扩展到云的密钥管理系统。通过使用 Amazon KMS,您可创建加密密钥并定义控制这些密钥的使用方式的策略。

你可以Amazon KMS在Amazon Web Services Management Console
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Key Management Service (Amazon KMS) 控制台:https://console.aws.amazon.com/kms

  2. 要更改 Amazon Web Services 区域,请使用页面右上角的区域选择器。

  3. 选择以下选项之一来使用Amazon KMS按键:

    • 要查看您账户中 Amazon 为您所创建和管理的密钥,请在导航窗格中选择 Amazon managed keys(Amazon 托管式密钥)。

    • 要查看您账户中自己所创建和管理的密钥,请在导航窗格中选择 Customer managed keys (客户托管密钥)

Amazon KMS 支持 Amazon CloudTrail,因此,您可审核密钥使用情况以验证密钥是否使用得当。您的Amazon KMS密钥可以与 Amazon RDS、Amazon S3Amazon DMS、Amazon S3、Amazon Redshift、和 Amazon EBS 等Amazon服务组合使用。

您也可以专门创建自定义 Amazon KMS 密钥来加密以下 Amazon DMS 终端节点的目标数据:

在创建 Amazon DMS 资源以及 KMS 密钥后,无法更改这些资源的加密密钥。请确保先确定加密密钥要求,然后再创建 Amazon DMS 资源。

Amazon Database Migration Service 网络安全

在使用 Amazon Database Migration Service 时为网络创建的安全要求取决于配置网络的方式。Amazon DMS 网络安全的一般规则如下:

  • 复制实例必须具有对源和目标终端节点的访问权限。复制实例的安全组必须具有网络 ACL 或规则来允许从实例数据库端口上传出到数据库终端节点。

  • 数据库终端节点必须包括网络 ACL 和安全组规则,允许来自复制实例的传入访问。根据配置,您可以使用复制实例的安全组、私有 IP 地址、公有 IP 地址或 NAT 网关的公有地址来实现这一点。

  • 如果您的网络使用 VPN 隧道,则充当 NAT 网关的 Amazon EC2 实例必须使用具有允许复制实例通过其发送流量的规则的安全组。

默认情况下,Amazon DMS 复制实例使用的 VPC 安全组具有允许传出到所有端口上的 0.0.0.0/0 的规则。如果您修改此安全组或者使用自己的安全组,则必须至少允许传出到相应数据库端口上的源和目标终端节点。

您可用于数据库迁移的网络配置均要求有特定安全注意事项:

  • 一个 VPC 中具有所有数据库迁移组件的配置— 端点使用的安全组必须允许从复制实例进入数据库端口。确保由复制实例使用的安全组已传入到终端节点,或者您可以在由终端节点使用的安全组中创建规则,允许访问复制实例的私有 IP 地址。

  • 使用多个 VPC 进行配置— 复制实例使用的安全组必须具有针对 VPC 范围和数据库端口的规则。

  • 使用 Amazon Direct Connect 或 VPN 连接到 VPC 的网络的配置— 一个 VPN 隧道,允许流量从 VPC 通过隧道进入本地 VPN。在此配置中,VPC 包含路由规则,会将以特定 IP 地址或范围为目标的流量发送到主机,该主机可以桥接从 VPC 到本地 VPN 的流量。如果是这种情况,NAT 主机包括自己的安全组设置,必须允许从复制实例私有 IP 地址或安全组到 NAT 实例的流量。

  • 使用 Internet 连接 VPC 的网络配置— VPC 安全组必须包含将不发往 VPC 的流量发送到互联网网关的路由规则。在此配置中,与终端节点的连接显示为来自复制实例上的公有 IP 地址。

  • 使用不在 VPC 中的 RDS 数据库实例配置为 VPC 中的数据库实例 ClassicLink— 当源或目标 Amazon RDS 数据库实例不在 VPC 中且不与复制实例所在的 VPC 共享安全组时,您可以设置代理服务器 ClassicLink 并用于连接源和目标数据库。

  • 源终端节点位于复制实例使用的 VPC 之外,使用 NAT 网关 — 您可以使用绑定到单个弹性网络接口的单个弹性 IP 地址配置网络地址转换 (NAT) 网关。之后,该弹性网络接口会收到一个 NAT 标识符 (nat-#####)。如果 VPC 包含到 NAT 网关而不是 Internet 网关的默认路由,复制实例将改为显示使用 Internet 网关的公有 IP 地址连接数据库终端节点。在这种情况下,对 VPC 外部的数据库终端节点的传入需要允许从 NAT 地址的传入,而不是复制实例的公有 IP 地址。

  • 非 RDBMS 引擎的 VPC 终端节点 —Amazon DMS 不支持非 RDBMS 引擎的 VPC 终端节点。

更改数据库密码

在大多数情况下,更改源或目标终端节点的数据库密码非常直接。如果您需要更改当前在迁移或复制任务中使用的终端节点的数据库密码,过程会略微复杂。以下过程演示了如何完成此操作。

更改迁移或复制任务中的终端节点的数据库密码
  1. 登录Amazon Web Services Management Console并打开Amazon DMS主机,网址为 https://console.aws.amazon.com/dms/v2/

    如果您以 IAM 用户身份登录,请确保您具备相应的访问权限Amazon DMS。有关所需权限的更多信息,请参阅使用 Amazon DMS 所需的 IAM 权限

  2. 在导航窗格中,选择任务

  3. 选择使用要更改数据库密码的终端节点的任务,然后选择停止

  4. 任务停止时,您可以使用数据库中的本机工具来更改终端节点的数据库密码。

  5. 返回到 DMS 管理控制台,然后从导航窗格中选择终端节点

  6. 选择已更改密码的数据库的终端节点,然后选择修改

  7. 密码框中键入新密码,然后选择修改

  8. 从导航窗格中选择任务

  9. 选择以前停止的任务,然后选择启动/恢复

  10. 根据您希望如何继续执行该任务,选择启动恢复,然后选择启动任务