(可选)配置 AWS KMS keys - AWS Control Tower

(可选)配置 AWS KMS keys

如果您想使用 AWS KMS 加密密钥对资源进行加密和解密,请选中对应的复选框。如果您已有密钥,则可以从下拉菜单中显示的标识符中选择它们。您可以通过选择创建密钥来生成新密钥。您可以在更新登录区时随时添加或更改 KMS 密钥。

当您选择设置登录区时,AWS Control Tower 会执行预检查以验证您的 KMS 密钥。密钥还必须满足以下要求:

  • 已启用

  • 对称

  • 不是多区域密钥

  • 已将正确的权限添加到策略中。

  • 密钥在管理账户中

如果密钥不符合这些要求,您可能会看到一个错误横幅。在这种情况下,请选择其他密钥或生成密钥。请务必编辑密钥的权限策略,如下一部分所述。

更新 AWS KMS 密钥策略

您必须先创建 KMS 密钥,然后才能更新 KMS 密钥策略。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的创建密钥策略

要在 AWS Control Tower 中使用 KMS 密钥,您必须通过添加 AWS Config 和 AWS CloudTrail 所需的最低权限来更新默认的 KMS 密钥策略。作为最佳实践,我们建议您在所有策略中包含所需的最低权限。更新 KMS 密钥策略时,您可以将权限作为一组添加到单个 JSON 语句中或逐行添加权限。

该过程介绍如何通过添加允许 AWS Config 和 CloudTrail 将 AWS KMS 用于加密的策略语句,在 AWS KMS 控制台中更新默认的 KMS 密钥策略。策略语句要求您包含以下信息:

  • YOUR-MANAGEMENT-ACCOUNT-ID:将在其中设置 AWS Control Tower 的管理账户的 ID。

  • YOUR-HOME-REGION:您在设置 AWS Control Tower 时将选择的主区域。

  • YOUR-KMS-KEY-ID:将与策略一起使用的 KMS 密钥 ID。

更新 AWS KMS 密钥策略
  1. https://console.aws.amazon.com/kms 打开 AWS KMS 控制台

  2. 在导航窗格上,选择客户托管密钥

  3. 在表格中,选择要编辑的密钥。

  4. 密钥策略选项卡中,确保您可以查看密钥策略。如果您无法查看密钥策略,请选择切换到策略视图

  5. 选择编辑,然后通过为 AWS Config 和 CloudTrail 添加以下策略语句来更新默认的 KMS 密钥策略。

    AWS Config 策略语句

    { "Sid": "Allow Config to use KMS for encryption", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:key/YOUR-KMS-KEY-ID" }

    CloudTrail 策略语句

    { "Sid": "Allow CloudTrail to use KMS for encryption", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "arn:aws:kms:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:key/YOUR-KMS-KEY-ID", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:trail/aws-controltower-BaselineCloudTrail" }, "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:YOUR-MANAGEMENT-ACCOUNT-ID:trail/*" } } }
  6. 选择保存更改

KMS 密钥策略示例

以下示例策略显示了在您添加授予 AWS Config 和 CloudTrail 最低所需权限的策略语句后,您的 KMS 密钥策略会是什么样子的。示例策略不包括您的默认 KMS 密钥策略。

{ "Version": "2012-10-17", "Id": "CustomKMSPolicy", "Statement": [ { ... YOUR-EXISTING-POLICIES ... }, { "Sid": "Allow Config to use KMS for encryption", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:key/YOUR-KMS-KEY-ID" }, { "Sid": "Allow CloudTrail to use KMS for encryption", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "arn:aws:kms:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:key/YOUR-KMS-KEY-ID", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:YOUR-HOME-REGION:YOUR-MANAGEMENT-ACCOUNT-ID:trail/aws-controltower-BaselineCloudTrail" }, "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:YOUR-MANAGEMENT-ACCOUNT-ID:trail/*" } } } ] }

要查看其他示例策略,请参阅以下页面:

防范攻击者

通过在策略中添加某些条件,您可以帮助防止某种特定类型的攻击,即混淆代理攻击,当某个实体迫使更有权限的实体执行某个操作(例如跨服务模拟)时,就会发生此类攻击。有关策略条件的一般信息,请参阅在策略中指定条件

AWS Key Management Service(AWS KMS)允许您创建多区域 KMS 密钥和非对称密钥;但是,AWS Control Tower 不支持多区域密钥或非对称密钥。AWS Control Tower 会对您的现有密钥进行预检查。如果您选择多区域密钥或非对称密钥,则可能会看到一条错误消息。在这种情况下,请生成另一个密钥以用于 AWS Control Tower 资源。

有关 AWS KMS 的更多信息,请参阅《AWS KMS 开发人员指南》。

请注意,默认情况下,AWS Control Tower 中的客户数据使用 SSE-S3 静态加密。