オブジェクトロックの設定 - Amazon Simple Storage Service

オブジェクトロックの設定

S3 オブジェクトロックでは、Write Once Read Many (WORM) モデルを使用して Amazon S3 にオブジェクトを保存できます。S3 Object オブジェクトロックを使用して、オブジェクトが固定期間または無期限に削除または上書きされることを防止できます。オブジェクトロック機能全般については、「S3 オブジェクトロックの使用」を参照してください。

オブジェクトをロックする前に、S3 オブジェクトロックを使用するようにバケットを有効にする必要があります。その後、保持期間とリーガルホールド、またはその両方を設定できます。

オブジェクトロックを使用するには、特定のアクセス許可が必要です。さまざまなオブジェクトロックオペレーションに関連するアクセス許可のリストについては、「必要なアクセス許可」を参照してください。

重要
  • オブジェクトロックを有効にしたバケットを作成した後、オブジェクトロックを無効にしたり、バケットのバージョニングを停止することはできません。

  • S3 オブジェクトロックが有効になっている S3 バケットは、サーバーアクセスログの送信先バケットとしては使用できません。詳細については、「サーバーアクセスログによるリクエストのログ記録」を参照してください。

新しい S3 バケット作成時にオブジェクトロックを有効にする

Amazon S3 コンソール、AWS Command Line Interface (AWS CLI)、AWS SDK、または Amazon S3 REST API を使用して新しい S3 バケットを作成する際にオブジェクトロックを有効にできます。

  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. 左側のナビゲーションペインで、[バケット] を選択します。

  3. [Create bucket (バケットの作成)] を選択します。

    [バケットを作成する] ページが開きます。

  4. [バケット名] にバケットの名前を入力します。

    注記

    バケット作成後に名前は変更できません。バケットの命名の詳細については、「バケットの名前付け」を参照してください。

  5. [リージョン] で、バケットを保存する AWS リージョン を選択します。

  6. [オブジェクト所有者] で、アクセスコントロールリスト (ACL) を無効または有効にするかを選択して、バケットにアップロードされたオブジェクトの所有権を制御します。

  7. [このバケットのパブリックアクセスブロック設定] で、バケットに適用するブロックパブリックアクセス設定を選択します。

  8. [バケットのバージョニング] では、[有効にする] をオンにします。

    オブジェクトロックはバージョニング対応バケットでのみ機能します。

  9. (オプション) [Tags] (タグ) で、バケットにタグを追加することを選択できます。タグは、ストレージの分類とコストの割り当てに使用されるキーバリューのペアです。

  10. [詳細設定] の下で [オブジェクトロック] を探して、[有効にする] をオンにします。

    オブジェクトロックを有効にすると、このバケット内のオブジェクトは永久にロックされることを認識しておく必要があります。

  11. [バケットの作成] を選択します。

次の create-bucket の例では、オブジェクトロックを有効にした DOC-EXAMPLE-BUCKET1 という名前の新しい S3 バケットを作成します。

aws s3api create-bucket --bucket DOC-EXAMPLE-BUCKET1 --object-lock-enabled-for-bucket

詳細と例については、「AWS CLI コマンドリファレンス」の「create-bucket」を参照してください。

注記

AWS CloudShell を使用してコンソールから AWS CLI コマンドを実行できます。AWS CloudShell はブラウザベースの事前認証されたシェルであり、AWS Management Console から直接起動できます。詳細については、「AWS CloudShell User Guide」の「 CloudShell とは」を参照してください。

REST API を使用して、オブジェクトロックを有効にした新しい S3 バケットを作成できます。詳細については、「Amazon Simple Storage Service API リファレンス」の「CreateBucket」を参照してください。

AWS SDK を使用して新しい S3 バケットを作成するときに Object Lock を有効にする方法の例については、「AWS SDK を使用して、Amazon S3 バケットを作成する」を参照してください。

AWS SDK で現在の Object Lock 設定を取得する方法の例は、「AWS SDK を使用して Amazon S3 バケットのオブジェクトロック設定を取得する」を参照してください。

さまざまな AWS SDK の使用に関する一般的な情報については、「AWS SDK およびエクスプローラーを使用して Amazon S3 で開発する」を参照してください。

既存の S3 バケットでオブジェクトロックを有効にする

Amazon S3 コンソール、AWS CLI、AWS SDK、または Amazon S3 REST API を使用して、既存の S3 バケットのオブジェクトロックを有効にできます。

注記

オブジェクトロックはバージョニング対応バケットでのみ機能します。

  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. 左側のナビゲーションペインで、[バケット] を選択します。

  3. [バケット] リストで、サーバーアクセスのログ記録を有効にするバケットの名前を選択します。

  4. プロパティ タブを選択します。

  5. [プロパティ] の下で、[オブジェクトロック] セクションまで下にスクロールして、[編集] をクリックします。

  6. [オブジェクトロック][有効にする] をオンにします。

    オブジェクトロックを有効にすると、このバケット内のオブジェクトは永久にロックされることを認識しておく必要があります。

  7. [Save changes] (変更の保存) をクリックします。

次の put-object-lock-configuration コマンド例は、DOC-EXAMPLE-BUCKET1 という名前のバケットに 50 日間のオブジェクトロック保持期間を設定します。

aws s3api put-object-lock-configuration --bucket DOC-EXAMPLE-BUCKET1 --object-lock-configuration='{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 }}}'

詳細と例については、「AWS CLI コマンドリファレンス」の「put-object-lock-configuration」を参照してください。

注記

AWS CloudShell を使用してコンソールから AWS CLI コマンドを実行できます。AWS CloudShell はブラウザベースの事前認証されたシェルであり、AWS Management Console から直接起動できます。詳細については、「AWS CloudShell User Guide」の「 CloudShell とは」を参照してください。

Amazon S3 REST API を使用して、既存の S3 バケットのオブジェクトロックを有効にできます。詳細については、「Amazon Simple Storage Service API リファレンス」の「PutObjectLockConfiguration」を参照してください。

AWS SDK を使用して既存の S3 バケットに対して Object Lock を有効にする方法の例については、「AWS SDK を使用して Amazon S3 バケットのオブジェクトロック設定を設定する」を参照してください。

AWS SDK で現在の Object Lock 設定を取得する方法の例は、「AWS SDK を使用して Amazon S3 バケットのオブジェクトロック設定を取得する」を参照してください。

さまざまな AWS SDK の使用に関する一般的な情報については、「AWS SDK およびエクスプローラーを使用して Amazon S3 で開発する」を参照してください。

Amazon S3 コンソール、AWS CLI、AWS SDK、または Amazon S3 REST API を使用して、S3 バケットのオブジェクトロックを設定したり、解除できます。

重要
  • オブジェクトにリーガルホールドを設定する場合は、オブジェクトのバケットでオブジェクトロックがすでに有効になっている必要があります。

  • 個別の保存モードと期間が明示的に設定されているオブジェクトバージョンをバケット内に PUT すると、オブジェクトバージョンの個々のオブジェクトロック設定が、バケットプロパティの保存設定よりも優先されます。

詳細については、「リーガルホールド」を参照してください。

  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. 左側のナビゲーションペインで、[バケット] を選択します。

  3. [バケット] リストで、リーガルホールドを設定したり変更したりするオブジェクトがあるバケットの名前を選択します。

  4. [オブジェクト] リストで、リーガルホールドを設定したり変更したりするオブジェクトを選択します。

  5. [オブジェクトプロパティ] ページで、[オブジェクトロックのリーガルホールド] セクションを探して、[編集] をクリックします。

  6. [有効にする] をオンにしてリーガルホールドを設定するか、[無効にする] をオンにしてリーガルホールドを解除します。

  7. [Save changes] (変更の保存) をクリックします。

次の put-object-legal-hold 例では、DOC-EXAMPLE-BUCKET1 という名前のバケットのオブジェクト my-image.fs にリーガルホールドを設定します。

aws s3api put-object-legal-hold --bucket DOC-EXAMPLE-BUCKET1 --key my-image.fs --legal-hold="Status=ON"

次の put-object-legal-hold 例では、DOC-EXAMPLE-BUCKET1 という名前のバケットのオブジェクト my-image.fs のリーガルホールドを解除します。

aws s3api put-object-legal-hold --bucket DOC-EXAMPLE-BUCKET1 --key my-image.fs --legal-hold="Status=OFF"

詳細と例については、「AWS CLI コマンドリファレンス」の「put-object-legal-hold」を参照してください。

注記

AWS CloudShell を使用してコンソールから AWS CLI コマンドを実行できます。AWS CloudShell はブラウザベースの事前認証されたシェルであり、AWS Management Console から直接起動できます。詳細については、「AWS CloudShell User Guide」の「 CloudShell とは」を参照してください。

REST API を使用して、オブジェクトのリーガルホールドを設定または変更できます。詳細については、「Amazon Simple Storage Service API リファレンス」の「PutObjectLegalHold」を参照してください。

AWS SDK を使用してオブジェクトにリーガルホールドを設定する方法の例については、「AWS SDK を使用して Amazon S3 オブジェクトのリーガルホールド設定を設定する」を参照してください。

AWS SDK を使用して現在のリーガスホールドのステータスを取得する方法については、「AWS SDK を使用して Amazon S3 オブジェクトのリーガルホールド設定を取得する」を参照してください。

さまざまな AWS SDK の使用に関する一般的な情報については、「AWS SDK およびエクスプローラーを使用して Amazon S3 で開発する」を参照してください。

S3 オブジェクトの保持期間を設定または変更する

Amazon S3 コンソール、AWS CLI、AWS SDK、または Amazon S3 REST API を使用して、S3 バケットの保持期間を設定したり変更したりできます。

重要
  • オブジェクトに保持期間を設定する場合は、オブジェクトのバケットでオブジェクトロックがすでに有効になっている必要があります。

  • 個別の保存モードと期間が明示的に設定されているオブジェクトバージョンをバケット内に PUT すると、オブジェクトバージョンの個々のオブジェクトロック設定が、バケットプロパティの保存設定よりも優先されます。

  • 保持期限が切れる前にコンプライアンスモードのオブジェクトを削除する唯一の方法は、関連する AWS アカウント を削除することです。

詳細については、「保持期間」を参照してください。

  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. 左側のナビゲーションペインで、[バケット] を選択します。

  3. [バケット] リストで、保持期間を設定したり変更したりするオブジェクトがあるバケットの名前を選択します。

  4. [オブジェクト] リストで、保持期間を設定したり変更したりするオブジェクトを選択します。

  5. [オブジェクトプロパティ] ページで、[オブジェクトロックの保持] セクションを探して、[編集] をクリックします。

  6. [保持] の下で、[有効にする] をオンにして保持期間を設定したり、[無効にする] をオンにして保持期間を解除したりします。

  7. [有効にする] をオンにする場合は、[保持モード][ガバナンスモード] または [コンプライアンスモード] のいずれかを選択します。詳細については、「リテンションモード」を参照してください。

  8. [保持期間] の下で、保持期間を終了する日付を選択します。この間、オブジェクトは WORM で保護され、上書きまたは削除することはできません。詳細については、「保持期間」を参照してください。

  9. [Save changes] (変更の保存) をクリックします。

次の put-object-retention 例では、DOC-EXAMPLE-BUCKET1 という名前のバケットのオブジェクト my-image.fs に保持期間を設定します。

aws s3api put-object-retention --bucket DOC-EXAMPLE-BUCKET1 --key my-image.fs --retention='{ "Mode": "GOVERNANCE", "RetainUntilDate": "2025-01-01T00:00:00" }'

詳細と例については、「AWS CLI コマンドリファレンス」の「put-object-retention」を参照してください。

注記

AWS CloudShell を使用してコンソールから AWS CLI コマンドを実行できます。AWS CloudShell はブラウザベースの事前認証されたシェルであり、AWS Management Console から直接起動できます。詳細については、「AWS CloudShell User Guide」の「 CloudShell とは」を参照してください。

REST API を使用して、オブジェクトの保持期間を設定または変更できます。詳細については、「Amazon Simple Storage Service API リファレンス」の「PutObjectRetention」を参照してください。

AWS SDK を使用してオブジェクトに保持期間を設定する方法の例については、「AWS SDK を使用して Amazon S3 オブジェクトの保持期間を設定する」を参照してください。

AWS SDK を使用してオブジェクトの保持期間を取得する方法の例については、「AWS SDK を使用して Amazon S3 オブジェクトの保持設定を取得する」を参照してください。

さまざまな AWS SDK の使用に関する一般的な情報については、「AWS SDK およびエクスプローラーを使用して Amazon S3 で開発する」を参照してください。

S3 バケットのデフォルト保持期間を設定または変更する

Amazon S3 コンソール、AWS CLI、AWS SDK、または Amazon S3 REST API を使用して、S3 バケットのデフォルトの保持期間を設定したり変更したりできます。バケットに配置されたすべてのオブジェクトのバージョンを保護する期間を日または年で指定します。

重要
  • バケットのデフォルトの保持期間を設定する場合は、バケットでオブジェクトロックがすでに有効になっている必要があります。

  • 個別の保存モードと期間が明示的に設定されているオブジェクトバージョンをバケット内に PUT すると、オブジェクトバージョンの個々のオブジェクトロック設定が、バケットプロパティの保存設定よりも優先されます。

  • 保持期限が切れる前にコンプライアンスモードのオブジェクトを削除する唯一の方法は、関連する AWS アカウント を削除することです。

詳細については、「保持期間」を参照してください。

  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. 左側のナビゲーションペインで、[バケット] を選択します。

  3. [バケット] リストで、デフォルトの保持期間を設定したり変更したりするバケットの名前を選択します。

  4. プロパティ タブを選択します。

  5. [プロパティ] の下で、[オブジェクトロック] セクションまで下にスクロールして、[編集] をクリックします。

  6. [保持] の下で、[有効にする] をオンにしてデフォルトの保持期間を設定したり、[無効にする] をオンにしてデフォルトの保持期間を解除したりします。

  7. [有効にする] をオンにする場合は、[保持モード][ガバナンスモード] または [コンプライアンスモード] のいずれかを選択します。詳細については、「リテンションモード」を参照してください。

  8. [デフォルトの保存期間] で、保存期間を有効にする日数または年数を選択します。このバケットに保存されるオブジェクトは、指定した日数または年数の間ロックされます。詳細については、「保持期間」を参照してください。

  9. [Save changes] (変更の保存) をクリックします。

次の put-object-lock-configuration コマンド例は、DOC-EXAMPLE-BUCKET1 という名前のバケットにコンプライアンスモードを使用して 50 日間のオブジェクトロック保持期間を設定します。

aws s3api put-object-lock-configuration --bucket DOC-EXAMPLE-BUCKET1 --object-lock-configuration='{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 }}}'

次の put-object-lock-configuration 例では、バケットのデフォルトの保持設定を解除します。

aws s3api put-object-lock-configuration --bucket DOC-EXAMPLE-BUCKET1 --object-lock-configuration='{ "ObjectLockEnabled": "Enabled"}'

詳細と例については、「AWS CLI コマンドリファレンス」の「put-object-lock-configuration」を参照してください。

注記

AWS CloudShell を使用してコンソールから AWS CLI コマンドを実行できます。AWS CloudShell はブラウザベースの事前認証されたシェルであり、AWS Management Console から直接起動できます。詳細については、「AWS CloudShell User Guide」の「 CloudShell とは」を参照してください。

REST API を使用して既存の S3 バケットにデフォルトの保持期間を設定できます。詳細については、「Amazon Simple Storage Service API リファレンス」の「PutObjectLockConfiguration」を参照してください。

AWS SDK を使用して既存の S3 バケットにデフォルトの保持期間を設定する方法の例については、「AWS SDK を使用して Amazon S3 バケットのデフォルトの保持期間を設定する」を参照してください。

さまざまな AWS SDK の使用に関する一般的な情報については、「AWS SDK およびエクスプローラーを使用して Amazon S3 で開発する」を参照してください。