• AWS
  •  

Amazon S3暗号化の仕様について確認してみた

S3の暗号化の手段として、SSE-KMSSSE-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 の項目が表示されません。

参考

関連記事

  1. AWS LambdaのPython用Layerは有志の提供物を使えば自…

  2. Amazon Linux 2でのEBSボリュームサイズのオンライン拡張…

  3. WordPressのサイトURLをDBから確認、変更する

  4. IAMポリシーでIP制限をかける方法

  5. プライベートサブネットのRedshiftにLambdaから接続する

  6. Amazon Redshiftでユーザを作成する方法