S3の暗号化の手段として、SSE-KMS
とSSE-S3
の2種類があります。
それぞれの実装上の仕様について、サポートに確認したのでメモします。
(暗号化したオブジェクトはダウンロードした時点で復号されているため、「復号(ダウンロード)」と記載します)
コンテンツ
解説
必要な権限
SSE-KMS
暗号化 | 復号(ダウンロード) | |
---|---|---|
権限 | 不要 | kms:decrypt |
aws s3 cp
コマンドでのオプション(--sse
,--sse-kms-key-id
)は付けなくても暗号化されます。
SSE-S3
暗号化 | 復号(ダウンロード) | |
---|---|---|
権限 | 不要 | 不要 |
オブジェクトの暗号化確認方法
以下のようなコマンドで確認できます。
$ aws s3api head-object --bucket <BUCKET_NAME> --key <OBJECT_NAME> --profile <PROFILE>
e.g.
$ aws s3api head-object --bucket sample-bucket --key dummy.txt
{
"AcceptRanges": "bytes",
"LastModified": "2021-02-24T02:59:10+00:00",
"ContentLength": 8790,
"ETag": "\"a1faea4e2e459214f7e68e104bfb88de\"",
"ContentType": "text/plain",
"ServerSideEncryption": "aws:kms",
"Metadata": {},
"SSEKMSKeyId": "arn:aws:kms:ap-northeast-1:xxxxxxxxxx:key/xxxxxxxxxxxx"
}
- 暗号化されている場合は、ServerSideEncryption の項目が下記のように表示されます。
- SSE-S3 で暗号化した場合:
"ServerSideEncryption": "AES256"
- SE-KMS で暗号化した場合:
"ServerSideEncryption": "aws:kms"
- 暗号化していない場合は、ServerSideEncryption の項目が表示されません。
- SSE-S3 で暗号化した場合: