オブジェクトロックの設定
S3 オブジェクトロックでは、Write Once Read Many (WORM) モデルを使用して Amazon S3 にオブジェクトを保存できます。S3 Object オブジェクトロックを使用して、オブジェクトが固定期間または無期限に削除または上書きされることを防止できます。オブジェクトロック機能全般については、「S3 Object Lock を使用したオブジェクトのロック」を参照してください。
オブジェクトをロックする前に、S3 オブジェクトロックを使用するようにバケットを有効にする必要があります。その後、保持期間とリーガルホールド、またはその両方を設定できます。
オブジェクトロックを使用するには、特定のアクセス許可が必要です。さまざまなオブジェクトロックオペレーションに関連するアクセス許可のリストについては、「必要なアクセス許可」を参照してください。
重要
-
オブジェクトロックを有効にしたバケットを作成した後、オブジェクトロックを無効にしたり、バケットのバージョニングを停止することはできません。
-
S3 オブジェクトロックが有効になっている S3 バケットは、サーバーアクセスログの送信先バケットとしては使用できません。詳細については、「サーバーアクセスログによるリクエストのログ記録」を参照してください。
トピック
新しい S3 バケット作成時にオブジェクトロックを有効にする
Amazon S3 コンソール、AWS Command Line Interface (AWS CLI)、AWS SDK、または Amazon S3 REST API を使用して新しい S3 バケットを作成する際にオブジェクトロックを有効にできます。
AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。 -
左側のナビゲーションペインで、[バケット] を選択します。
-
[Create bucket (バケットの作成)] を選択します。
[バケットの作成] ページが開きます。
-
[バケット名] にバケットの名前を入力します。
注記
バケット作成後に名前は変更できません。バケットの命名の詳細については、「バケットの名前付け」を参照してください。
-
[リージョン] で、バケットを保存する AWS リージョンを選択します。
-
[オブジェクト所有者] で、アクセスコントロールリスト (ACL) を無効または有効にするかを選択して、バケットにアップロードされたオブジェクトの所有権を制御します。
-
[このバケットのパブリックアクセスブロック設定] で、バケットに適用するブロックパブリックアクセス設定を選択します。
-
[バケットのバージョニング] では、[有効にする] をオンにします。
オブジェクトロックはバージョニング対応バケットでのみ機能します。
-
(オプション) [Tags] (タグ) では、バケットにタグを追加することを選択できます。タグは、ストレージの分類とコストの割り当てに使用されるキーバリューのペアです。
-
[詳細設定] の下で [オブジェクトロック] を探して、[有効にする] をオンにします。
オブジェクトロックを有効にすると、このバケット内のオブジェクトは永久にロックされることを認識しておく必要があります。
-
[バケットを作成] を選択します。
次の create-bucket
の例では、オブジェクトロックを有効にした
という名前の新しい S3 バケットを作成します。amzn-s3-demo-bucket1
aws s3api create-bucket --bucket
--object-lock-enabled-for-bucket
amzn-s3-demo-bucket1
詳細と例については、「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 を有効にする方法の例については、「Amazon S3 API リファレンス」の「コード例」を参照してください。
AWS SDK で現在の Object Lock 設定を取得する方法の例については、「Amazon S3 API リファレンス」の「コード例」を参照してください。
AWS SDK を使用して別の Object Lock 機能のデモンストレーションを行うインタラクティブシナリオについては、「Amazon S3 API リファレンス」の「コード例」を参照してください。
さまざまな AWS SDK の使用に関する一般的な情報については、「Amazon S3 API リファレンス」の「AWS SDK を使用した Amazon S3 での開発」を参照してください。
既存の S3 バケットでオブジェクトロックを有効にする
Amazon S3 コンソール、AWS CLI、AWS SDK、または Amazon S3 REST API を使用して、既存の S3 バケットのオブジェクトロックを有効にできます。
注記
オブジェクトロックはバージョニング対応バケットでのみ機能します。
AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。 -
左側のナビゲーションペインで、[バケット] を選択します。
-
[バケット] リストで、サーバーアクセスのログ記録を有効にするバケットの名前を選択します。
-
[プロパティ] タブを選択します。
-
[プロパティ] の下で、[オブジェクトロック] セクションまで下にスクロールして、[編集] をクリックします。
-
[オブジェクトロック] で [有効にする] をオンにします。
オブジェクトロックを有効にすると、このバケット内のオブジェクトは永久にロックされることを認識しておく必要があります。
-
[Save changes] (変更の保存) をクリックします。
次の put-object-lock-configuration
コマンド例は、
という名前のバケットに 50 日間のオブジェクトロック保持期間を設定します。amzn-s3-demo-bucket1
aws s3api put-object-lock-configuration --bucket
--object-lock-configuration=
amzn-s3-demo-bucket1
'{ "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 を有効にする方法の例については、「Amazon S3 API リファレンス」の「コード例」を参照してください。
AWS SDK で現在の Object Lock 設定を取得する方法の例については、「Amazon S3 API リファレンス」の「コード例」を参照してください。
AWS SDK を使用して別の Object Lock 機能のデモンストレーションを行うインタラクティブシナリオについては、「Amazon S3 API リファレンス」の「コード例」を参照してください。
さまざまな AWS SDK の使用に関する一般的な情報については、「Amazon S3 API リファレンス」の「AWS SDK を使用した Amazon S3 での開発」を参照してください。
S3 オブジェクトのリーガルホールドを設定または変更する
Amazon S3 コンソール、AWS CLI、AWS SDK、または Amazon S3 REST API を使用して、S3 バケットのオブジェクトロックを設定したり、解除できます。
重要
-
オブジェクトにリーガルホールドを設定する場合は、オブジェクトのバケットでオブジェクトロックがすでに有効になっている必要があります。
-
個別の保存モードと期間が明示的に設定されているオブジェクトバージョンをバケット内に
PUT
すると、オブジェクトバージョンの個々のオブジェクトロック設定が、バケットプロパティの保存設定よりも優先されます。
詳細については、「リーガルホールド」を参照してください。
AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。 -
左側のナビゲーションペインで、[バケット] を選択します。
-
[バケット] リストで、リーガルホールドを設定したり変更したりするオブジェクトがあるバケットの名前を選択します。
-
[オブジェクト] リストで、リーガルホールドを設定したり変更したりするオブジェクトを選択します。
-
[オブジェクトプロパティ] ページで、[オブジェクトロックのリーガルホールド] セクションを探して、[編集] をクリックします。
-
[有効にする] をオンにしてリーガルホールドを設定するか、[無効にする] をオンにしてリーガルホールドを解除します。
-
[Save changes] (変更の保存) をクリックします。
次の put-object-legal-hold
例では、
という名前のバケットのオブジェクト amzn-s3-demo-bucket1
にリーガルホールドを設定します。my-image.fs
aws s3api put-object-legal-hold --bucket
--key
amzn-s3-demo-bucket1
my-image.fs
--legal-hold="Status=ON"
次の put-object-legal-hold
例では、
という名前のバケットのオブジェクト amzn-s3-demo-bucket1
のリーガルホールドを解除します。my-image.fs
aws s3api put-object-legal-hold --bucket
--key
amzn-s3-demo-bucket1
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 を使用してオブジェクトにリーガルホールドを設定する方法の例については、「Amazon S3 API リファレンス」の「コードの例」を参照してください。
AWS SDK を使用して現在のリーガスホールドのステータスを取得する方法の例については、「Amazon S3 API リファレンス」の「コードの例」を参照してください。
AWS SDK を使用して別の Object Lock 機能のデモンストレーションを行うインタラクティブシナリオについては、「Amazon S3 API リファレンス」の「コード例」を参照してください。
さまざまな AWS SDK の使用に関する一般的な情報については、「Amazon S3 API リファレンス」の「AWS SDK を使用した Amazon S3 での開発」を参照してください。
S3 オブジェクトの保持期間を設定または変更する
Amazon S3 コンソール、AWS CLI、AWS SDK、または Amazon S3 REST API を使用して、S3 バケットの保持期間を設定したり変更したりできます。
重要
-
オブジェクトに保持期間を設定する場合は、オブジェクトのバケットでオブジェクトロックがすでに有効になっている必要があります。
-
個別の保存モードと期間が明示的に設定されているオブジェクトバージョンをバケット内に
PUT
すると、オブジェクトバージョンの個々のオブジェクトロック設定が、バケットプロパティの保存設定よりも優先されます。 -
保持期限が切れる前にコンプライアンスモードのオブジェクトを削除する唯一の方法は、関連する AWS アカウント を削除することです。
詳細については、「保持期間」を参照してください。
AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。 -
左側のナビゲーションペインで、[バケット] を選択します。
-
[バケット] リストで、保持期間を設定したり変更したりするオブジェクトがあるバケットの名前を選択します。
-
[オブジェクト] リストで、保持期間を設定したり変更したりするオブジェクトを選択します。
-
[オブジェクトプロパティ] ページで、[オブジェクトロックの保持] セクションを探して、[編集] をクリックします。
-
[保持] の下で、[有効にする] をオンにして保持期間を設定したり、[無効にする] をオンにして保持期間を解除したりします。
-
[有効にする] をオンにする場合は、[保持モード] で [ガバナンスモード] または [コンプライアンスモード] のいずれかを選択します。詳細については、「リテンションモード」を参照してください。
-
[保持期間] の下で、保持期間を終了する日付を選択します。この間、オブジェクトは WORM で保護され、上書きまたは削除することはできません。詳細については、「保持期間」を参照してください。
-
[Save changes] (変更の保存) をクリックします。
次の put-object-retention
例では、
という名前のバケットのオブジェクト amzn-s3-demo-bucket1
に保持期間を設定します。my-image.fs
aws s3api put-object-retention --bucket
--key
amzn-s3-demo-bucket1
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 を使用してオブジェクトに保持期間を設定する方法の例については、「Amazon S3 API リファレンス」の「コードの例」を参照してください。
AWS SDK を使用してオブジェクトの保持期間を取得する方法の例については、「Amazon S3 API リファレンス」の「コードの例」を参照してください。
AWS SDK を使用して別の Object Lock 機能のデモンストレーションを行うインタラクティブシナリオについては、「Amazon S3 API リファレンス」の「コード例」を参照してください。
さまざまな AWS SDK の使用に関する一般的な情報については、「Amazon S3 API リファレンス」の「AWS SDK を使用した Amazon S3 での開発」を参照してください。
S3 バケットのデフォルト保持期間を設定または変更する
Amazon S3 コンソール、AWS CLI、AWS SDK、または Amazon S3 REST API を使用して、S3 バケットのデフォルトの保持期間を設定したり変更したりできます。バケットに配置されたすべてのオブジェクトのバージョンを保護する期間を日または年で指定します。
重要
-
バケットのデフォルトの保持期間を設定する場合は、バケットでオブジェクトロックがすでに有効になっている必要があります。
-
個別の保存モードと期間が明示的に設定されているオブジェクトバージョンをバケット内に
PUT
すると、オブジェクトバージョンの個々のオブジェクトロック設定が、バケットプロパティの保存設定よりも優先されます。 -
保持期限が切れる前にコンプライアンスモードのオブジェクトを削除する唯一の方法は、関連する AWS アカウント を削除することです。
詳細については、「保持期間」を参照してください。
AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/
) を開きます。 -
左側のナビゲーションペインで、[バケット] を選択します。
-
[バケット] リストで、デフォルトの保持期間を設定したり変更したりするバケットの名前を選択します。
-
[プロパティ] タブを選択します。
-
[プロパティ] の下で、[オブジェクトロック] セクションまで下にスクロールして、[編集] をクリックします。
-
[保持] の下で、[有効にする] をオンにしてデフォルトの保持期間を設定したり、[無効にする] をオンにしてデフォルトの保持期間を解除したりします。
-
[有効にする] をオンにする場合は、[保持モード] で [ガバナンスモード] または [コンプライアンスモード] のいずれかを選択します。詳細については、「リテンションモード」を参照してください。
-
[デフォルトの保存期間] で、保存期間を有効にする日数または年数を選択します。このバケットに保存されるオブジェクトは、指定した日数または年数の間ロックされます。詳細については、「保持期間」を参照してください。
-
[Save changes] (変更の保存) をクリックします。
次の put-object-lock-configuration
コマンド例は、
という名前のバケットにコンプライアンスモードを使用して 50 日間のオブジェクトロック保持期間を設定します。amzn-s3-demo-bucket1
aws s3api put-object-lock-configuration --bucket
--object-lock-configuration=
amzn-s3-demo-bucket1
'{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 }}}'
次の put-object-lock-configuration
例では、バケットのデフォルトの保持設定を解除します。
aws s3api put-object-lock-configuration --bucket
--object-lock-configuration=
amzn-s3-demo-bucket1
'{ "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 バケットにデフォルトの保持期間を設定する方法の例については、「Amazon S3 API リファレンス」の「コードの例」を参照してください。
AWS SDK を使用して別の Object Lock 機能のデモンストレーションを行うインタラクティブシナリオについては、「Amazon S3 API リファレンス」の「コード例」を参照してください。
さまざまな AWS SDK の使用に関する一般的な情報については、「Amazon S3 API リファレンス」の「AWS SDK を使用した Amazon S3 での開発」を参照してください。