安全性 AWS Database Migration Service - AWS 数据库迁移服务

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

安全性 AWS Database Migration Service

云安全 AWS 是重中之重。作为 AWS 客户,您可以从专为满足大多数安全敏感型组织的要求而构建的数据中心和网络架构中受益。

安全是双方共同承担 AWS 的责任。责任共担模式将其描述为云 安全性和云 的安全性:

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

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

本文档可帮助您了解在使用时如何应用分担责任模型 AWS DMS。以下主题向您介绍如何进行配置 AWS DMS 以满足您的安全和合规性目标。您还将学习如何使用其他 AWS 服务来帮助您监控和保护您的 AWS DMS 资源。

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

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

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

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

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

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

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

设置加密密钥并指定 AWS KMS 权限

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

注意

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

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

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

  • 将用于迁移的IAM用户帐户添加为密钥管理员或 AWS KMS 自定义密钥的密钥用户。这样做可以确保向IAM用户帐户授予必要的 AWS KMS 权限。此操作是您向IAM用户帐户授予的使用IAM权限的补充 AWS DMS。有关向密钥用户授予权限的更多信息,请参阅《AWS Key Management Service 开发人员指南》中的允许KMS密钥用户使用密钥。

  • 如果您不想将IAM用户帐户添加为自定义密钥的密钥管理员或KMS密钥用户,请将以下附加权限添加到必须授予该IAM用户帐户才能使用的IAM权限中 AWS DMS。

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

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

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

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

你可以在 AWS KMS 里面找到 AWS Management Console
  1. 登录 AWS Management Console 并在 https://console.aws.amazon.com/km s 处打开 AWS Key Management Service (AWS KMS) 控制台。

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

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

    • 要查看您的账户中为您 AWS 创建和管理的密钥,请在导航窗格中选择AWS 托管密钥

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

AWS KMS 支持 AWS CloudTrail,因此您可以审核密钥使用情况,以验证密钥的使用是否正确。您的 AWS KMS 密钥可以与亚马逊、亚马逊 S3 RDS、Amazon Redshift AWS DMS 和亚马逊等支持的 AWS 服务结合使用。EBS

您还可以创建专门用于加密以下 AWS DMS 终端节点的目标数据的自定义 AWS KMS 密钥:

使用KMS密钥创建 AWS DMS 资源后,您无法更改这些资源的加密密钥。在创建 AWS DMS 资源之前,请务必确定您的加密密钥要求。

网络安全 AWS Database Migration Service

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

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

  • 数据库端点必须包含允许从复制实例进行传入访问的网络ACLs和安全组规则。您可以使用复制实例的安全组、私有 IP 地址、公有 IP 地址或NAT网关的公有地址来实现此目的,具体取决于您的配置。

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

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

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

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

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

  • 使用 AWS Direct Connect 或 VPN 配置到 VPC 的网络— VPN 一条允许交通从隧道VPC进入内部的隧道VPN。在此配置中,VPC包括一条路由规则,该规则将发往特定 IP 地址或范围的流量发送到主机,该主机可以桥接从VPC到本地的流量VPN。在这种情况下,NAT主机将包括自己的安全组设置,这些设置必须允许从复制实例的私有 IP 地址或安全组进入该NAT实例的流量。

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

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

  • 源终端节点位于复制实例VPC使用的范围之外并使用NAT网关 — 您可以使用绑定到单个弹性网络接口的单个弹性 IP 地址来配置网络地址转换 (NAT) 网关。然后,此弹性网络接口会收到一个NAT标识符 (nat-#####)。如果VPC包含指向该NAT网关而不是 Internet 网关的默认路由,则复制实例似乎使用互联网网关的公有 IP 地址联系数据库终端节点。在这种情况下,数据库终端节点之外的入口VPC需要允许从该NAT地址而不是复制实例的公有 IP 地址进入。

  • VPC非RDBMS引擎的端点 — AWS DMS 不支持非RDBMS引擎的VPC端点。

更改数据库密码

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

更改迁移或复制任务中的终端节点的数据库密码
  1. 登录 AWS Management Console 并在 https://console.aws.amazon.com/dms/v2/上打开 AWS DMS 控制台。

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

  2. 在导航窗格中,选择数据库迁移任务

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

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

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

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

  7. 密码框中键入新密码,然后选择保存

  8. 从导航窗格中选择数据库迁移任务

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

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