

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

# 的加密最佳实践 AWS Secrets Manager
<a name="secrets-manager"></a>

[AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) 有助于您通过对 Secrets Manager 的 API 调用来替换代码中的硬编码凭证（包括密码），以编程方式检索密钥。Secrets Manager 与 AWS KMS 集成，使用受保护的唯一数据密钥对每个密钥值的每个版本进行加密 AWS KMS key。这种集成使用永远不会保持 AWS KMS 未加密状态的加密密钥来保护存储的机密。您还可以对 KMS 密钥定义自定义权限，以审计生成、加密和解密用于保护存储密钥的数据密钥的操作。有关更多信息，请参阅 [Secret encryption and decryption in AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html)。

考虑下面针对该服务的加密最佳实践：
+ 在大多数情况下，我们建议使用`aws/secretsmanager` AWS 托管密钥来加密机密。使用它不产生任何费用。
+ 为了能够从其他账户访问密钥或将密钥策略应用于加密密钥，请使用客户自主管理型密钥对密钥进行加密。
  + 在密钥策略中，为 k [m `secretsmanager.<region>.amazonaws.com` s: ViaService](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-via-service) 条件密钥分配值。这会将密钥的使用限制为仅限来自 Secrets Manager 的请求。
  + 为了进一步将密钥的使用限制为仅来自 Secrets Manager 且具有正确上下文的请求，请通过创建以下项将 [Secrets Manager 加密上下文](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html#security-encryption-encryption-context)中的键或值用作使用 KMS 密钥的条件：
    + IAM 策略或密钥策略中的[字符串条件运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)
    + 在授权中创建[授权约束](https://docs.aws.amazon.com/kms/latest/APIReference/API_GrantConstraints.html)