如何查看有关我的 AMI 或快照的加密信息?

上次更新时间:2020 年 12 月 14 日

如何确定我的 Amazon Machine Image (AMI) 或快照是否已加密,以及如果已加密,是使用 AWS 托管的 AWS KMS 密钥(KMS 密钥)还是用户管理的加密的?

简短描述

您可以使用控制台或使用 AWS 命令行界面 (AWS CLI) 来查看快照或 AMI 的加密信息。

解决方法

备注:

使用 AWS CLI 命令查看加密信息

1.     使用BlockDeviceMappings查询筛选条件运行describe-images命令,以查看与 AMI 关联的快照。在以下示例中,将image-ids区域替换为 AMI 的 ID 和区域。

# 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(是)。

2.    使用describe-images命令的输出中列出的快照的snapshot-id运行describe-snapshots命令:

# 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

3.    运行 describe-key 命令,以确定该密钥是 AWS 托管密钥还是用户管理的密钥。在以下命令中,将 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 托管密钥,“KeyManager”参数为“AWS”。

使用控制台查看加密信息

1.    打开Amazon EC2 console(Amazon EC2 控制台),然后选择 AMI。

2.    复制您需要其详细信息的 AMI 的 ID。

3.    在Elastic Block Store(弹性数据库存储)项下,选择Snapshots(快照)。

4.    将 AMI ID 粘贴到搜索框中,然后按ENTER(回车)键。

5.    选择快照,然后在Description(描述)选项卡上,验证Encryption (加密)已设置为Encrypted(已加密)还是Not Encrypted(未加密)。如果快照已加密,请记下KMS 密钥 IDKMS 密钥 ARN

6.    打开AWS Key Management Service (AWS KMS) 控制台

7.    选择AWS managed keys(AWS 托管密钥),然后将KMS Key ID(KMS 密钥 ID)粘贴到筛选条件框中。如果未显示任何结果,请选择Customer managed keys(用户管理的密钥),然后将KMS Key ID(KMS 密钥 ID)粘贴到筛选条件框中。

注意:您无法共享使用 AWS 托管密钥加密的 AMI。有关详细信息,请参阅共享快照 — 注意事项


这篇文章对您有帮助吗?


您是否需要账单或技术支持?