

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

# 实施
<a name="implementation"></a>

在此策略中，*架构*是指您的加密标准的技术实现。本节包含有关如何 AWS 服务帮助您根据策略和标准实施 data-at-rest加密策略的信息 [AWS CloudHSM](https://docs.aws.amazon.com/cloudhsm/latest/userguide/introduction.html)，例如 [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) 和。

AWS KMS 是一项托管服务，可帮助您创建和控制用于保护数据的加密密钥。KMS 密钥永远不会使服务处于未加密状态。要使用或管理您的 KMS 密钥，您需要与之交互 AWS KMS，许多密钥 AWS 服务 都与之集成 AWS KMS。

AWS CloudHSM 是一项加密服务，用于在您的 AWS 环境中创建和维护*硬件安全模块* (HSMs)。 HSMs 是处理加密操作并为加密密钥提供安全存储的计算设备。如果你的标准要求你使用经过 FIPS 140-2 3 级验证的硬件，或者如果你的标准要求使用行业标准，例如 PKCS \#11 APIs、Java 密码学扩展 (JCE) 和微软 Cryptong (CNG)，那么你可以考虑使用。 AWS CloudHSM

您可以将配置 AWS CloudHSM 为的自定义密钥存储库 AWS KMS。该解决方案将便利性和服务集成 AWS KMS 与在您的集群中使用 AWS CloudHSM 集群所带来的额外控制和合规性优势相结合 AWS 账户。有关更多信息，请参阅[自定义密钥库](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)（AWS KMS 文档）。

本文档从较高层次上讨论了 AWS KMS 功能，并解释了 AWS KMS 如何满足您的政策和标准。

## 成本、便利性和控制力
<a name="cost-convenience-control"></a>

AWS KMS 提供不同类型的钥匙。有些由客户拥有或管理 AWS，而另一些则由客户创建和管理。您可以根据要对关键和成本考虑因素的控制级别在这些选项之间进行选择：
+ **AWS 拥有的密钥** — AWS 拥有并管理这些密钥，它们用于多个密钥 AWS 账户。有些 AWS 服务 支持 AWS 自有密钥。您可以免费使用这些钥匙。这种密钥类型使您免于管理密钥生命周期和访问密钥所产生的成本和管理开销。有关此类密钥的更多信息，请参阅[AWS 自有密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)（AWS KMS 文档）。
+ **AWS 托管密钥** — 如果与集成 AWS KMS， AWS 服务 则它可以代表您创建、管理和使用此类密钥，以保护您在该服务中的资源。这些密钥是在您的中创建的 AWS 账户，并且 AWS 服务 只能使用。 AWS 托管密钥不收取月费。超出免费套餐的使用可能会收取费用，但有些会为您 AWS 服务 支付这些费用。您可以使用身份策略来控制这些密钥的查看和审核访问权限，但可以 AWS 管理密钥的生命周期。有关此类密钥的更多信息，请参阅[AWS 托管密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)（AWS KMS 文档）。有关与之集成的完整列表 AWS 服务 AWS KMS，请参阅[AWS 服务 集成](https://aws.amazon.com/kms/features/#AWS_Service_Integration)（AWS 营销）。
+ **客户管理的密钥** — 您可以创建、拥有和管理此类密钥，并且可以完全控制密钥的生命周期。为了实现职责分离，您可以使用基于身份和资源的策略来控制对密钥的访问权限。您还可以设置自动[密钥轮换](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)。客户管理的密钥需要支付月费，如果您超过免费套餐，则还会产生使用费。有关此类密钥的更多信息，请参阅[客户托管密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)（AWS KMS 文档）。

有关密钥存储和使用的更多信息，请参阅[AWS Key Management Service 定价](https://aws.amazon.com/kms/pricing/)（AWS 营销）。

## 性能和加密类型
<a name="performance"></a>

根据标准中选定的加密类型，您可以使用两种类型的 KMS 密钥。
+ **对称** — 所有 AWS KMS key 类型都支持对称加密。加密客户管理的密钥时，您可以使用 AES-256-GCM 使用单强度密钥进行加密和解密。
+ **非对称** — 客户管理的密钥支持非对称加密。您可以根据自己的预期用途，在不同的密钥优势和算法之间进行选择。非对称密钥可以使用 RSA 进行加密和解密，也可以使用 RSA 或 ECC 对操作进行签名和验证。非对称密钥算法本质上提供了角色分离并简化了密钥管理。使用非对称加密时 AWS KMS，不支持某些操作，例如轮换密钥和导入外部密钥材料。

有关对称和非对称密钥支持的 AWS KMS 操作的更多信息，请参阅密[钥类型参考](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-compare.html)（AWS KMS 文档）。

### 信封加密
<a name="envelope-encryption"></a>

内置了信封加密 AWS KMS。在中 AWS KMS，您可以生成纯文本或加密格式的数据密钥。加密的数据密钥使用 KMS 密钥进行加密。您可以将 KMS 密钥存储在 AWS CloudHSM 集群中的自定义密钥存储中。有关信封加密优势的更多信息，请参阅[关于信封加密](about-data-encryption.md#about-envelope-encryption)。

## 密钥存储位置
<a name="storage"></a>

您可以使用策略来管理对 AWS KMS 资源的访问权限。*策略*描述了谁可以访问哪些资源。附加到 AWS Identity and Access Management (IAM) 委托人的策略称为*基于身份的策略或 *IAM* 策略*。附加到其他类型资源的策略称为*资源策略*。 AWS KMS 的资源策略 AWS KMS keys 称为*密钥策略*。每个 KMS 密钥都有密钥策略。

密钥策略提供了灵活性，可以将加密密钥存储在中心位置或以分布式方式存储在离数据更近的地方。在决定将 KMS 密钥存储在何处时，请考虑以下 AWS KMS 功能 AWS 账户：
+ **单区域基础设施支持**-默认情况下，KMS 密钥是特定于区域的，它们永远不会处于未加密状态。 AWS KMS 如果您的标准对控制特定地理位置的密钥有严格要求，请使用单区域密钥进行探索。
+ **多区域基础设施支持** — AWS KMS 还支持称为*多*区域密钥的特殊用途密钥类型。将数据存储成多个 AWS 区域 是灾难恢复的常见配置。通过使用多区域密钥，您无需重新加密即可在区域之间传输数据，并且可以像在每个区域中使用相同的密钥一样管理数据。如果您的标准要求您的加密基础设施在主动-主动配置中跨越多个区域，则此功能非常有用。有关更多信息，请参阅[多区域密钥](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html)（AWS KMS 文档）。
+ **集中管理** — 如果您的标准要求将密钥存储在集中位置，则可以使用 AWS KMS 将所有加密密钥存储在单个位置 AWS 账户。您可以使用密钥策略向其他应用程序授予访问权限，这些应用程序可以位于同一地区的不同账户中。集中式密钥管理可以减少管理密钥生命周期和密钥访问控制的管理开销。
+ **外部密钥材料**-您可以将 AWS KMS外部生成的密钥材料导入。Support 适用于单区域对称密钥和多区域对称密钥。由于对称密钥的材料是在外部生成的，因此您有责任保护生成的密钥材料。有关更多信息，请参阅[导入的密钥材料](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html)（AWS KMS 文档）。

## 访问控制
<a name="controlling-access"></a>

[在中 AWS KMS，您可以使用以下策略机制实施精细级别的访问控制：[密钥策略、[IAM 策略](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html)](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)和授权。](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)使用这些控件，您可以根据角色设置职责分工，例如管理员、可以加密数据的密钥用户、可以解密数据的密钥用户以及可以加密和解密数据的密钥用户。有关更多信息，请参阅[身份验证和访问控制](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html)（AWS KMS 文档）。

## 审计和日志
<a name="auditing-and-logging"></a>

AWS KMS 与 AWS CloudTrail 和 Amazon 集成， EventBridge 用于记录和监控目的。所有 AWS KMS API 操作都记录在 CloudTrail 日志中并可进行审计。您可以使用 Amazon CloudWatch EventBridge、和 AWS Lambda 来设置自定义监控解决方案，以配置通知和自动补救。有关更多信息，请参阅[日志和监控](https://docs.aws.amazon.com/kms/latest/developerguide/security-logging-monitoring.html)（AWS KMS 文档）。