【小ネタ】 AWS CLI を使用して既存 S3 オブジェクトの暗号化方式を SSE-S3 から SSE-KMS に変更してみた

【小ネタ】 AWS CLI を使用して既存 S3 オブジェクトの暗号化方式を SSE-S3 から SSE-KMS に変更してみた

Clock Icon2025.04.03

はじめに

テクニカルサポートの 片方 です。
Amazon S3 マネージドキーを使用したサーバー側の暗号化 (SSE-S3) を利用していた S3 バケットを、AWS Key Management Service キーを使用したサーバー側の暗号化 (SSE-KMS) に変更するといった要件が発生することがあります。
S3 バケットのデフォルト暗号化設定を SSE-KMS に変更しても、既存のオブジェクトの暗号化方式は自動的に変更されません。この設定変更は、変更後にアップロードされる新しいオブジェクトにのみ適用されます。
既存のオブジェクトも SSE-KMS 暗号化に変更するためには、追加の作業が必要です。いくつか手段があるものの、本ブログでは AWS CLI コマンドを使用して既存のオブジェクトを同じ場所に 「コピー」 することで、新しい暗号化方式を適用する方法をご紹介します。

01

02

やってみた

Amazon Web Services ブログを参考にやってみました。
https://aws.amazon.com/jp/blogs/news/encrypting-existing-amazon-s3-objects-with-the-aws-cli/

既に、S3 バケットのデフォルト暗号化設定を SSE-KMS に変更済みの状況からやってみます。
また、既存のオブジェクトが SSE-KMS に変更されていないことも確認します。

03

04

  • 対象の KMS キー ID をメモします。
  • 対象 S3 バケットの S3 URI 形式をメモします。
単一オブジェクトの暗号化変更
$ aws s3 cp s3://your-bucket/your-object s3://your-bucket/your-object \
--sse-kms-key-id YOUR-KMS-KEY-ID \
--sse aws:kms
バケット内のすべてのオブジェクトを暗号化
$ aws s3 cp s3://your-bucket/ s3://your-bucket/ \
--recursive \
--sse-kms-key-id YOUR-KMS-KEY-ID \
--sse aws:kms

これで以上です。非常に簡単ですね。

05

06

注意点

cp コマンドではオブジェクト ACL は保持しません。そのため、コピー時に --acl パラメータを指定する必要があります。
具体的には --acl パラメータでは Canned ACL と呼ばれる形式で ACL を指定する必要があります。
例えば bucket-owner-full-control の Canned ACL を設定する場合、下記のような AWS CLI コマンドです。

コマンド例
aws s3 cp s3://your-bucket/your-object s3://your-bucket/your-object \
--acl bucket-owner-full-control \
--sse aws:kms \
--sse-kms-key-id YOUR-KMS-KEY-ID

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/cp.html

--acl (string) Sets the ACL for the object when the command is performed. If you use this parameter you must have the “s3:PutObjectAcl” permission included in the list of actions for your IAM policy. Only accepts values of private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control and log-delivery-write. See Canned ACL for details

https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl

まとめ

本ブログが誰かの参考になれば幸いです。

参考資料

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.