我想知道我的亚马逊机器映像 (AMI) 或快照是否已加密。如果已加密,我想知道使用的是 AWS Key Management Service (AWS KMS) 托管密钥还是客户托管密钥。
解决方法
注意:
- 如果在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请确保您使用的是最新版本的 AWS CLI。
- JSON 是 AWS CLI 的默认输出格式。您可以使用默认格式,或在命令中附加 --output json,以接收与以下示例输出类似的输出结果。有关更多信息,请参阅选择输出格式。
使用 AWS CLI 命令查看加密信息
- 要查看与 AMI 关联的快照,请使用 BlockDeviceMappings 查询过滤器运行 describe-images 命令。将以下示例中的 image-ids 和 region 替换为您的 AMI 的 ID 和 AWS 区域。
# aws ec2 describe - images--image - ids ami - xxxxxxxxx--region eu - west - 1--query "Images[*].BlockDeviceMappings" [
[{
"DeviceName": "/dev/xvda",
"Ebs": {
"DeleteOnTermination": true,
"SnapshotId": "snap-xxxxxxxxx",
"VolumeSize": 8,
"VolumeType": "gp2",
"Encrypted": true
}
}]
]
上述示例输出结果显示了与 AMI 关联的快照。快照的 Encrypted 参数设置为 ** true**。
- 运行 describe-snapshots 命令。使用 describe-images 命令输出结果中列出的快照的 snapshot-id:
# aws ec2 describe - snapshots--snapshot - ids snap - xxxxxxxxx--region eu - west - 1 {
"Snapshots": [{
"Description": "Copied for DestinationAmi ami-xxxxxxxxx from SourceAmi ami-xxxxxxxxx for SourceSnapshot snap-xxxxxxxxx. Task created on 1,579,611,950,318.",
"Encrypted": true,
"KmsKeyId": "arn:aws:kms:eu-west-1:9208xxxxxxxxx:key/dcd4d062-xxxxxxxxx-xxxxxxxxxx",
"OwnerId": "111122223333",
"Progress": "100%",
"SnapshotId": "snap-xxxxxxxxx",
"StartTime": "2020-01-21T13:05:53.887Z",
"State": "completed",
"VolumeId": "vol-ffffffff",
"VolumeSize": 8
}]
}
记下命令输出结果中的 KMSKeyId。
- 要确定密钥是 AWS KMS 密钥还是客户托管密钥,请运行 describe-key 命令。将以下命令中的 key-id 替换为 describe-snapshot 命令中列出的 KMSKeyId。将 Region 替换为快照的区域。
# aws kms describe - key--key - id dcd4d062 - xxxxxxxxx - xxxxxxxxx--region eu - west - 1 {
"KeyMetadata": {
"AWSAccountId": "92xxxxxxxxx",
"KeyId": "dcd4d062-xxxxxxxxx-xxxxxxxx",
"Arn": "arn:aws:kms:eu-west-1:92xxxxxxxxx:key/dcd4d062-xxxxxxxxx-xxxxxxx",
"CreationDate": 1579611763.538,
"Enabled": true,
"Description": "02-example-CMK",
"KeyUsage": "ENCRYPT_DECRYPT",
"KeyState": "Enabled",
"Origin": "AWS_KMS",
"KeyManager": "CUSTOMER",
"CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
"EncryptionAlgorithms": ["SYMMETRIC_DEFAULT"]
}
}
在上述示例输出结果中,KeyManager 参数为 Customer。这表示密钥是客户托管的密钥。对于 AWS KMS 密钥,KeyManager 参数为 AWS。
使用控制台查看加密信息
- 打开 Amazon Elastic Compute Cloud (Amazon EC2) 控制台,然后选择 AMI。
- 复制您想要获取详细信息的 AMI 的 ID。
- 在 Elastic Block Store 下,选择快照。
- 输入 AMI ID,然后按回车键。
- 选择快照,然后在描述选项卡上,验证加密是设置为加密还是未加密。如果快照已加密,请记下 KMS 密钥 ID 和 KMS 密钥 ARN。
- 打开 AWS KMS 控制台。
- 选择 AWS 托管式密钥,然后输入 KMS 密钥 ID。如果未显示任何结果,请选择客户托管密钥,然后输入 KMS 密钥 ID。
**注意:**您无法共享使用 AWS 托管式密钥加密的 AMI。有关更多信息,请参阅共享快照之前的注意事项。
相关信息
AWS KMS 概念