S3バケットの暗号化設定をSSE-KMSからSSE-S3に変更する方法
はじめに
かつまたです。
SSE-KMSを利用してバケット暗号化を設定しているが、コスト面やそれほど高度なセキュリティが必要ないなどの状況から、SSE-S3への暗号化変更を検討したことはありませんか?
今回はSSE-KMSの暗号化が行われているS3バケットの暗号化設定をSSE-S3に変更し、既存オブジェクトの暗号化もSSE-S3に変更する際の手順と考慮点について記載しました。
やってみた
前提条件として、SSE-KMSでのデフォルト暗号化設定がされた既存オブジェクトが存在するS3バケットに対して操作を実施していきます。
-
対象S3バケットの「プロパティ」からデフォルトの暗号化を編集します。
-
SSE-KMSからSSE-S3にデフォルト暗号化を変更します。
-
デフォルト暗号化を変更しても、既存のオブジェクトに関しては、以前の暗号化方式のまま保存されています。
デフォルト暗号化は設定以降にアップロードされたオブジェクトに対して適用されます。
SSE-KMSからSSE-S3に変更後、既存オブジェクトをSSE-S3で再暗号化することで、バケット内すべてのオブジェクトをSSE-S3での暗号化に変更することができます。
以下のコマンドにより、バケット内の全てのオブジェクトを再暗号化します。
aws s3 cp s3://バケット名/ s3://バケット名/ --recursive --sse AES256
また、以下のコマンドにより、任意のオブジェクトに対して、暗号化設定が変更されているか、確認可能です。
aws s3api head-object --bucket バケット名 --key "オブジェクト名"
参考情報として、大量オブジェクトの一括コピー方法として、S3 Batch Operationを利用した方法も存在します。
考慮事項
-
再暗号化を実施するコマンドによるCOPYアクションではリクエスト料金が課金されます。(標準ストレージタイプの場合、1000リクエスト毎に0.005 USD)
-
再暗号化を実施するコマンドではバケット内の全てのオブジェクトに対してCOPYアクションを実施しています。
そのため、オブジェクト数が膨大な場合、スロットリングが発生する可能性が考えられます。(1秒あたり3500件のCOPYリクエストのクォータ)
もしスロットリングが発生した場合は、AWS CLIの最大再試行回数を増やして、再度お試しください。
おわりに
ご覧いただきありがとうございました。
バケットのデフォルト暗号化を変更する際の考慮事項やエラー時の対応について確認したい時にご活用いただけると幸いです。
参考資料
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。