【小ネタ】 AWS CLI を使用して既存 S3 オブジェクトの暗号化方式を SSE-S3 から SSE-KMS に変更してみた
はじめに
テクニカルサポートの 片方 です。
Amazon S3 マネージドキーを使用したサーバー側の暗号化 (SSE-S3) を利用していた S3 バケットを、AWS Key Management Service キーを使用したサーバー側の暗号化 (SSE-KMS) に変更するといった要件が発生することがあります。
S3 バケットのデフォルト暗号化設定を SSE-KMS に変更しても、既存のオブジェクトの暗号化方式は自動的に変更されません。この設定変更は、変更後にアップロードされる新しいオブジェクトにのみ適用されます。
既存のオブジェクトも SSE-KMS 暗号化に変更するためには、追加の作業が必要です。いくつか手段があるものの、本ブログでは AWS CLI コマンドを使用して既存のオブジェクトを同じ場所に 「コピー」 することで、新しい暗号化方式を適用する方法をご紹介します。
やってみた
Amazon Web Services ブログを参考にやってみました。
既に、S3 バケットのデフォルト暗号化設定を SSE-KMS に変更済みの状況からやってみます。
また、既存のオブジェクトが SSE-KMS に変更されていないことも確認します。
- 対象の 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
これで以上です。非常に簡単ですね。
注意点
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
--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
まとめ
本ブログが誰かの参考になれば幸いです。
参考資料
- AWS CLI を使用した既存の Amazon S3 オブジェクトの暗号化 | Amazon Web Services ブログ
- cp — AWS CLI 2.25.6 Command Reference
- Access control list (ACL) overview - Amazon Simple Storage Service
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。