为认证准备 Amazon KMS - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

为认证准备 Amazon KMS

注意

如果您要认证第三方服务,则必须构建自己的自定义机制来接收、解析和验证认证文档。有关更多信息,请参阅 验证 NitroTPM 认证文档

创建可认证的 AMI 后,您应该拥有可用于验证来自 Amazon EC2 实例请求的参考测量值。Amazon KMS 提供对使用 NitroTPM 认证的内置支持。

对用于加密机密数据的 Amazon KMS 密钥,添加一个密钥策略:仅在 API 请求包含的认证文档的 PCR4 或 PCR7 测量值与您在可认证 AMI 创建过程中生成的参考测量值匹配时才允许访问密钥。这可确保只有使用可认证的 AMI 启动的实例发出的请求才能使用 Amazon KMS 密钥执行加密操作。

Amazon KMS 提供 kms:RecipientAttestation:PCR4kms:RecipientAttestation:PCR7 条件键,使您能够为 KMS 密钥策略创建基于认证的条件。有关更多信息,请参阅 Amazon KMS condition keys for Amazon Nitro Enclaves and NitroTPM

例如,以下 Amazon KMS 密钥策略仅当请求源自附加 MyEC2InstanceRole 实例配置文件的实例,且请求包含具有特定 PCR 4 和 PCR 7 值的认证文档时,才允许访问密钥。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow requests from instances with attested AMI only", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyEC2InstanceRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateRandom" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "kms:RecipientAttestation:PCR4":"EXAMPLE6b9b3d89a53b13f5dfd14a1049ec0b80a9ae4b159adde479e9f7f512f33e835a0b9023ca51ada02160EXAMPLE", "kms:RecipientAttestation:PCR7":"EXAMPLE34a884328944cd806127c7784677ab60a154249fd21546a217299ccfa1ebfe4fa96a163bf41d3bcfaeEXAMPLE" } } } ] }

有关更多信息,请参阅 Amazon KMS condition keys for NitroTPM