バッチオペレーションジョブを作成してオブジェクトの暗号化を更新する - Amazon Simple Storage Service

バッチオペレーションジョブを作成してオブジェクトの暗号化を更新する

1 回のリクエストで複数の Amazon S3 オブジェクトのサーバー側の暗号化タイプを更新するには、S3 バッチオペレーションを使用できます。S3 バッチオペレーションは、Amazon S3 コンソール、AWS Command Line Interface (AWS CLI)、AWS SDK、または Amazon S3 REST API を通じて使用できます。

次のコマンドを実行するには、AWS CLI をインストールして設定する必要があります。AWS CLI をまだインストールしていない場合は、「AWS Command Line Interface ユーザーガイド」の「AWS CLI の最新バージョンのインストールまたは更新」を参照してください。

別の方法として、AWS CloudShell を使用してコンソールから AWS CLI コマンドを実行することもできます。AWS CloudShell は、AWS マネジメントコンソールから直接起動できる、ブラウザベースの事前認証済みシェルです。詳細については、「AWS CloudShell ユーザーガイド」の「CloudShell とは」と「AWS CloudShell の使用開始」を参照してください。

例 1 – 暗号化されたオブジェクトをある AWS KMS key から別の KMS キーに更新するバッチオペレーションジョブを作成する

次の例は、汎用バケット内の複数のオブジェクトの暗号化設定を更新する S3 バッチオペレーションジョブを作成する方法を示しています。このコマンドは、1 つの AWS Key Management Service (AWS KMS) キーで暗号化されたオブジェクトを別の KMS キーを使用するように変更するジョブを作成します。このジョブは、影響を受けるオブジェクトのマニフェストも生成して保存し、結果のレポートも作成します。このコマンドを使用するには、user input placeholders をユーザー自身の情報に置き換えます。

aws s3control create-job --account-id account-id \ --no-confirmation-required \ --operation '{"S3UpdateObjectEncryption": { "ObjectEncryption": { "SSEKMS": { "KMSKeyArn": "KMS-key-ARN-to-apply", "BucketKeyEnabled": false } } } }' \ --report '{ "Enabled": true, "Bucket": "report-bucket-ARN", "Format": "Report_CSV_20180820", "Prefix": "report", "ReportScope": "AllTasks" }' \ --manifest-generator '{ "S3JobManifestGenerator": { "ExpectedBucketOwner": "account-id", "SourceBucket": "source-bucket-ARN", "EnableManifestOutput": true, "ManifestOutputLocation": { "Bucket": "manifest-bucket-ARN", "ManifestFormat": "S3InventoryReport_CSV_20211130", "ManifestPrefix": "manifest-prefix" }, "Filter": { "MatchAnyObjectEncryption": [{ "SSEKMS": { "KmsKeyArn": "kms-key-ARN-to-match" } }] } } }' \ --priority 1 \ --role-arn batch-operations-role-ARN

最高のパフォーマンスを得るには、KmsKeyArn フィルターを、MatchAnyPrefixCreatedAfterMatchAnyStorageClass などの他のオブジェクトメタデータフィルターと組み合わせて使用することをお勧めします。

例 2 – SSE-S3 で暗号化されたオブジェクトを SSE-KMS に更新するバッチオペレーションジョブを作成する

次の例は、汎用バケット内の複数のオブジェクトの暗号化設定を更新する S3 バッチオペレーションジョブを作成する方法を示しています。このコマンドは、Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3) を使用して暗号化されたオブジェクトを変更し、代わりに AWS Key Management Service (AWS KMS) キーによるサーバー側の暗号化 (SSE-KMS) を使用するジョブを作成します。このジョブは、影響を受けるオブジェクトのマニフェストも生成して保存し、結果のレポートも作成します。このコマンドを使用するには、user input placeholders をユーザー自身の情報に置き換えます。

aws s3control create-job --account-id account-id \ --no-confirmation-required \ --operation '{"S3UpdateObjectEncryption": { "ObjectEncryption": { "SSEKMS": { "KMSKeyArn": "KMS-key-ARN-to-apply", "BucketKeyEnabled": false } } } }' \ --report '{ "Enabled": true, "Bucket": "report-bucket-ARN", "Format": "Report_CSV_20180820", "Prefix": "report", "ReportScope": "AllTasks" }' \ --manifest-generator '{ "S3JobManifestGenerator": { "ExpectedBucketOwner": "account-id", "SourceBucket": "source-bucket-ARN", "EnableManifestOutput": true, "ManifestOutputLocation": { "Bucket": "manifest-bucket-ARN", "ManifestFormat": "S3InventoryReport_CSV_20211130", "ManifestPrefix": "manifest-prefix" }, "Filter": { "MatchAnyObjectEncryption": [{ "SSES3": {} }] } } }' \ --priority 1 \ --role-arn batch-operations-role-ARN

最高のパフォーマンスを得るには、KmsKeyArn フィルターを、MatchAnyPrefixCreatedAfterMatchAnyStorageClass などの他のオブジェクトメタデータフィルターと組み合わせて使用することをお勧めします。