AWS S3:使用 CLI 获取服务器端加密设置

AWS S3: Get Server-side encryption settings using CLI

我可以使用 Amazon S3 Web GUI 控制台,单击 S3 上的文件,然后查看服务器端加密设置,包括使用哪个 AWS KMS 密钥。

如何使用 CLI 获取相同的信息?我检查了每一个明显的命令,但我什么也没发现。

这显示了存储桶级别信息,我想要文件级别信息:

aws s3api get-bucket-encryption

这不显示 KMS/SSE 信息:

aws s3api get-object-acl

这只是下载文件,不会获取有关文件的属性:

aws s3api get-object

TLDR:您可能想要使用 aws s3api head-object

This just downloads the file, it doesn't get properties about the file: aws s3api get-object

我不知道您使用的是哪个版本的 AWS CLI,但是如果您 运行 get-object 像这样使用最新版本:

aws s3api get-object --bucket <bucket-name> --key <keyname> <outfile>

它会下载文件,但也会显示如下内容:

{
    "AcceptRanges": "bytes",
    "LastModified": "2022-01-20T21:24:21+00:00",
    "ContentLength": 17851,
    "ETag": "\"4a57f3ee4dd576e295c8ff0c9ad86063\"",
    "ContentType": "image/jpeg",
    "ServerSideEncryption": "aws:kms",
    "Metadata": {},
    "SSEKMSKeyId": "arn:aws:kms:us-east-1:069700690668:key/b2ae18e5-13ce-466a-82aa-641eb817d063"
}

这应该包含加密类型 (ServerSideEncryption) 和使用的 KMS 密钥的 ARN SSEKMSKeyId。您可以查看 get-object.

所有输出的文档

当然,在某些情况下可能不需要下载对象。如果您不想下载该对象,您可能需要使用 head-object:

aws s3api head-object --bucket <bucket-name> --key <keyname>

输出与 get-object.

的情况相同