本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
安全性 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 资源和数据库 (DB) 的访问权限。用于管理访问权限的方法取决于您需要使用以下命令执行的复制任务 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,或使用其他 VPC 来匹配此级别的访问控制。使用的每个 Amazon VPC 必须与安全组关联,该安全组应具有规则,允许所有端口上的所有流量离开(传出)VPC。使用此方法,只要这些终端节点上启用了正确的传入,就允许从复制实例与您的源和目标数据库终端节点通信。
有关可用网络配置的更多信息 AWS DMS,请参阅为复制实例设置网络。有关在 VPC 中创建数据库实例或实例集群的更多信息,请参阅 AWS 文档中的 Amazon 数据库安全和集群管理文档。有关 AWS DMS 支持的网络配置的更多信息,请参阅 为复制实例设置网络。
-
要查看数据库迁移日志,您需要对所使用的 IAM 角色拥有相应的 Amazon L CloudWatch ogs 权限。有关 AWS DMS日志记录的更多信息,请参阅 使用 Amazon 监控复制任务 CloudWatch。
主题
- 中的数据保护 AWS Database Migration Service
- 的身份和访问管理 AWS Database Migration Service
- AWS Database Migration Service 的合规性验证
- AWS Database Migration Service 中的故障恢复能力
- AWS Database Migration Service中的基础设施安全性
- 使用资源名称和标签进行精细访问控制
- 设置加密密钥并指定 AWS KMS 权限
- 的网络安全 AWS Database Migration Service
- 将 SSL 与 AWS Database Migration Service
- 更改数据库密码
设置加密密钥并指定 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 密钥,您只需要将 kms:ListAliases
和 kms:DescribeKey
权限授予用于迁移的 IAM 用户账户。有关使用默认 KMS 密钥的更多信息,请参阅 IAM使用所需的权限 AWS DMS。
要使用自定义 KMS 密钥,请使用以下选项之一为自定义 KMS 密钥分配权限:
-
将用于迁移的 IAM 用户账户添加为 AWS KMS 自定义密钥的密钥管理员或密钥用户。这样做可确保将必需的 AWS KMS 权限授予 IAM 用户账户。除了向 IAM 用户账户授予使用 AWS DMS的 IAM 权限之外,还需执行此操作。有关向密钥用户授予权限的更多信息,请参阅《AWS Key Management Service 开发人员指南》中的允许密钥用户使用 KMS 密钥。
-
如果您不希望添加 IAM 用户账户作为自定义 KMS 密钥的密钥管理员或密钥用户,则除了必须向 IAM 用户账户授予使用 AWS DMS的 IAM 权限以外,还需授予以下附加权限。
{ "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
-
登录 AWS Management Console 并打开 AWS Key Management Service (AWS KMS) 控制台,网址为 https://console.aws.amazon.com/kms
。 -
要更改 AWS 区域,请使用页面右上角的区域选择器。
-
选择以下选项之一来使用 AWS KMS 按键:
-
要查看您的账户中为您 AWS 创建和管理的密钥,请在导航窗格中选择AWS 托管密钥。
-
要查看您账户中自己所创建和管理的密钥,请在导航窗格中选择 Customer managed keys (客户托管密钥)。
-
AWS KMS 支持 AWS CloudTrail,因此您可以审核密钥使用情况,以验证密钥的使用是否正确。您的 AWS KMS 密钥可以与亚马逊 RDS、Amazon S3、Amazon Redshift AWS DMS 和亚马逊 EBS 等支持的 AWS 服务结合使用。
您还可以创建专门用于加密以下 AWS DMS 终端节点的目标数据的自定义 AWS KMS 密钥:
-
Amazon Redshift – 有关更多信息,请参阅 创建 AWS KMS 密钥并使用该密钥对 Amazon Redshift 目标数据进行加密。
-
Amazon S3 – 有关更多信息,请参阅 创建用于加密 Amazon S3 目标对象的 AWS KMS 密钥。
使用 KMS 密钥创建 AWS DMS 资源后,您无法更改这些资源的加密密钥。在创建 AWS DMS 资源之前,请务必确定您的加密密钥要求。
的网络安全 AWS Database Migration Service
您在使用时创建的网络的安全要求 AWS Database Migration Service 取决于您的网络配置方式。网络安全的一般规则 AWS DMS 如下:
-
复制实例必须具有对源和目标终端节点的访问权限。复制实例的安全组必须具有网络 ACL 或规则来允许从实例数据库端口上传出到数据库终端节点。
-
数据库终端节点必须包括网络 ACL 和安全组规则,允许来自复制实例的传入访问。根据配置,您可以使用复制实例的安全组、私有 IP 地址、公有 IP 地址或 NAT 网关的公有地址来实现这一点。
-
如果您的网络使用 VPN 隧道,则充当 NAT 网关的 Amazon EC2 实例必须使用具有规则的安全组,该规则允许复制实例通过它发送流量。
默认情况下, AWS DMS 复制实例使用的 VPC 安全组的规则允许所有端口的出口 0.0.0.0/0。如果您修改此安全组或者使用自己的安全组,则必须至少允许传出到相应数据库端口上的源和目标终端节点。
您可用于数据库迁移的网络配置均要求有特定安全注意事项:
-
将所有数据库迁移组件合而为一的配置 VPC – 端点使用的安全组必须允许从复制实例向数据库端口上的传入。确保由复制实例使用的安全组已传入到终端节点,或者您可以在由终端节点使用的安全组中创建规则,允许访问复制实例的私有 IP 地址。
-
具有多个的配置 VPCs – 复制实例使用的安全组规则必须具有针对数据库上的 VPC 范围和数据库端口的规则。
-
为用户VPC配置网络 AWS Direct Connect 或者 VPN – VPN 隧道,允许流量从 VPC 通过隧道流向本地 VPN。在此配置中,VPC 包含路由规则,会将以特定 IP 地址或范围为目标的流量发送到主机,该主机可以桥接从 VPC 到本地 VPN 的流量。如果是这种情况,NAT 主机包括自己的安全组设置,必须允许从复制实例私有 IP 地址或安全组到 NAT 实例的流量。
-
VPC使用互联网连接网络的配置 – VPC 安全组必须包括路由规则,将并非以 VPC 为目标的流量发送到互联网网关。在此配置中,与终端节点的连接显示为来自复制实例上的公有 IP 地址。
-
使用不在RDS数据库实例中的配置VPC到VPC正在使用的数据库实例 ClassicLink— 当源或目标 Amazon RDS 数据库实例不在 VPC 中,并且不与复制实例所在的 VPC 共享安全组时,您可以设置代理服务器并使用代理服务器 ClassicLink 来连接源数据库和目标数据库。
-
源端点位于复制实例所使用的 VPC 的外部并使用 NAT 网关 – 您可以使用绑定到单个弹性网络接口的单个弹性 IP 地址来配置网络地址转换(NAT)网关。之后,该弹性网络接口会收到一个 NAT 标识符 (nat-#####)。如果 VPC 包含到 NAT 网关而不是 Internet 网关的默认路由,复制实例将改为显示使用 Internet 网关的公有 IP 地址连接数据库终端节点。在这种情况下,对 VPC 外部的数据库终端节点的传入需要允许从 NAT 地址的传入,而不是复制实例的公有 IP 地址。
-
适用于非 RDBMS 引擎的 VPC 端点 – AWS DMS 不支持适用于非 RDBMS 引擎的 VPC 端点。
更改数据库密码
在大多数情况下,更改源或目标终端节点的数据库密码非常直接。如果您需要更改当前在迁移或复制任务中使用的终端节点的数据库密码,则该过程需要额外的几个步骤。以下过程演示了如何完成此操作。
更改迁移或复制任务中的终端节点的数据库密码
-
登录 AWS Management Console 并打开 AWS DMS 控制台,网址为 https://console.aws.amazon.com/dms/v2/
。 如果以 IAM 用户身份登录,请确保具有适当的 AWS DMS访问权限。有关所需权限的更多信息,请参阅IAM使用所需的权限 AWS DMS。
-
在导航窗格中,选择数据库迁移任务。
-
选择使用要更改数据库密码的终端节点的任务,然后选择停止。
-
任务停止时,您可以使用数据库中的本机工具来更改终端节点的数据库密码。
-
返回到 DMS 管理控制台,然后从导航窗格中选择终端节点。
-
选择已更改密码的数据库的终端节点,然后选择修改。
-
在密码框中键入新密码,然后选择保存。
-
从导航窗格中选择数据库迁移任务。
-
选择之前停止的任务,然后选择重新启动/恢复。
-
根据您希望如何继续执行该任务,选择重新启动或恢复,然后选择启动任务。