

# S3 Object Lock を使用したオブジェクトのロック
<a name="object-lock"></a>

S3 オブジェクトロックは、Amazon S3 オブジェクトが一定期間または無期限に削除または上書きされるのを防ぐのに役立ちます。オブジェクトロックは、*write-once-read-many* (WORM) モデルを使用してオブジェクトを保存します。Object Lock を使用して、WORM ストレージを必要とする規制要件を満たしたり、オブジェクトの変更や削除に対する保護レイヤーを追加したりできます。

**注記**  
S3 オブジェクトロックは、SEC 17a-4、CFTC、および FINRA の各規制に従った環境での使用について、Cohasset Associates によって評価済みです。オブジェクトロックとこのような規制との関連性の詳細については、「[Cohasset Associates Compliance Assessment](https://d1.awsstatic.com/r2018/b/S3-Object-Lock/Amazon-S3-Compliance-Assessment.pdf)」を参照してください。

オブジェクトロックは、オブジェクトリテンションの管理をするための 2 つの方法、*保持期間*および*リーガルホールド*を提供します。オブジェクトバージョンには、保持期間とリーガルホールド、またはその両方を含めることができます。
+ **保持期間** – オブジェクトバージョンがロックされたままである一定期間を指定します。個々のオブジェクトに固有の保持期間を設定できます。また、S3 バケットにデフォルトの保持期間を設定できます。バケットポリシーの `s3:object-lock-remaining-retention-days` 条件キーを使用して、許容される最小保持期間と最大保持期間を制限することもできます。この条件キーは、許容可能な保持期間を確立するのに役立ちます。詳細については、「[バケットポリシーを使用する保持期間の制限の設定](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-managing-retention-limits)」を参照してください。
+ **リーガルホールド** – リーガルホールドは、保持期間と同じ保護を提供します。ただし、有効期限はありません。代わりに、明示的に削除するまで、リーガルホールドは維持されます。リーガルホールドは、保持期間から独立しており、個々のオブジェクトバージョンに付与されます。

オブジェクトロックは S3 バージョニングが有効になっているバケットでのみ機能します。オブジェクトバージョンをロックすると、Amazon S3 はそのオブジェクトバージョンのメタデータにロック情報を保存します。オブジェクトに保持期間またはリーガルホールドを設定すると、リクエストで指定されたバージョンのみが保護されます。保持期間とリーガルホールドを使用しても、オブジェクトの新しいバージョンの作成が阻止されたり、オブジェクトの上に追加されるマーカーが削除されたりすることはありません。S3 バージョニングの詳細については、「[S3 バージョニングによる複数のバージョンのオブジェクトの保持](Versioning.md)」を参照してください。

同じオブジェクトキー名を持つ既存の保護対象オブジェクトが既に含まれているバケットにオブジェクトを配置すると、Amazon S3 はそのオブジェクトの新しいバージョンを作成します。オブジェクトの既存の保護バージョンは、その保持設定に従ってロックされたままになります。

## S3 オブジェクトロックの仕組み
<a name="object-lock-overview"></a>

**Topics**
+ [

### 保持期間
](#object-lock-retention-periods)
+ [

### リテンションモード
](#object-lock-retention-modes)
+ [

### リーガルホールド
](#object-lock-legal-holds)
+ [

### S3 Object Lock における削除の仕組み
](#object-lock-how-deletes-work)
+ [

### S3 Object Lock を使用するためのベストプラクティス
](#object-lock-best-practices)
+ [

### 必要なアクセス許可
](#object-lock-permissions)

### 保持期間
<a name="object-lock-retention-periods"></a>

*保持期間*は、一定期間オブジェクトバージョンを保護します。オブジェクトバージョンに保持期間を設定すると、Amazon S3 はオブジェクトバージョンのメタデータにタイムスタンプを保存して、保持期間の有効期限を示します。保持期間が終了すると、オブジェクトバージョンを上書きまたは削除することができます。

個々のオブジェクトバージョンまたはバケットのプロパティに明示的に保存期間を設定して、バケット内のすべてのオブジェクトに自動的に適用されるようにすることができます。オブジェクトバージョンに保持期間を明示的に適用する場合は、オブジェクトバージョンに対して [*リテンション期日*] を指定します。Amazon S3 はこの日付をオブジェクトバージョンのメタデータにを保存します。

バケットのプロパティに保持期間を設定することもできます。バケットに保持期間を設定する場合、バケット内に配置されたすべてのオブジェクトバージョンを保護する期間を日数または年単位で指定します。バケットにオブジェクトを配置すると、Amazon S3 は、オブジェクトバージョンの作成タイムスタンプに指定された期間を追加してオブジェクトバージョンの**保持期日を算出します。これにより、オブジェクトバージョンは、オブジェクトバージョンにその保持期間のロックを明示的に配置した場合と同様に保護されます。

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

他のすべての オブジェクトロック設定と同様に、保持期間は個々のオブジェクトバージョンに適用されます。単一のオブジェクトのバージョンが異なれば、リテンションモードや期間も異なる可能性があります。

たとえば、30 日間の保持期間に 15 日のオブジェクトがあり、同じ名前と 60 日間の保持期間を持つオブジェクトを Amazon S3 に `PUT` するとします。この場合、`PUT` は正常に実行され、Amazon S3 は保持期間が 60 日の新しいバージョンを作成します。古いバージョンは元の保持期間を維持し、15 日後に削除可能になります。

保持設定をオブジェクトバージョンに適用した後、保持期間を延長することができます。これを行うには、現在設定されているオブジェクトバージョンよりも後の**保持期間を持つオブジェクトバージョンの新しいオブジェクトロックリクエストを送信します。Amazon S3 は、既存の保持期間を新しい、より長い期間に置き換えます。オブジェクトの保持期間を設定するアクセス許可を持つユーザーは、オブジェクトバージョンの保持期間を延長できます。保持期間を設定するには、`s3:PutObjectRetention` アクセス許可が必要です。

オブジェクトまたは S3 バケットに保持期間を設定する場合、****コンプライアンスまたはガバナンスの 2 つの保持モードのいずれかを選択する必要があります。

### リテンションモード
<a name="object-lock-retention-modes"></a>

S3 オブジェクトロックでは、オブジェクトに異なるレベルの保護を適用する次の 2 つの保持モードが提供されています。
+ コンプライアンスモード
+ ガバナンスモード

*コンプライアンス*モードでは、AWS アカウント の root ユーザーを含め、ユーザーが、保護されたオブジェクトのバージョンを上書きまたは削除することはできません。コンプライアンスモードでオブジェクトをロックすると、そのリテンションモードを変更することはできず、保持期間を短縮することはできません。コンプライアンスモードでは、保持期間中にオブジェクトのバージョンを上書きまたは削除できないようにします。

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

*ガバナンス*モードでは、特別なアクセス許可を持たない限り、ユーザーはオブジェクトのバージョンの上書きや削除、ロック設定を変更することはできません。ガバナンスモードでは、ほとんどのユーザーがオブジェクトを削除できないように保護できます。ただし必要に応じて、一部のユーザーに保持設定を変更したり、オブジェクトを削除したりするアクセス許可を付与することもできます。ガバナンスモードを使用して、コンプライアンスモードの保持期間を作成する前に、保持期間の設定をテストすることもできます。

ガバナンスモードのリテンション設定を上書きまたは削除するには、ユーザーは `s3:BypassGovernanceRetention` アクセス許可を持っている必要があり、また、ガバナンスモードの上書きを必要とするリクエストで、`x-amz-bypass-governance-retention:true` をリクエストヘッダーとして明示的に含める必要があります。

**注記**  
Amazon S3 コンソールにはデフォルトで、`x-amz-bypass-governance-retention:true` ヘッダーが含まれています。**ガバナンスモードで保護されているオブジェクトを削除する場合、`s3:BypassGovernanceRetention` アクセス許可があれば、そのオペレーションは正常に完了します。

### リーガルホールド
<a name="object-lock-legal-holds"></a>

オブジェクトロックを使用すると、オブジェクトバージョンに**リーガルホールドを設定することもできます。保持期間と同様に、リーガルホールドは、オブジェクトバージョンが上書きまたは削除されるのを防ぎます。ただし、リーガルホールドには関連する保持期間はなく、削除するまで有効です。リーガルホールドは、`s3:PutObjectLegalHold` アクセス許可を持つ任意のユーザーが自由に適用および解除できます。

リーガルホールドは、保持期間から独立しています。オブジェクトバージョンをリーガルホールドしても、そのオブジェクトバージョンのリテンションモードや保持期間には影響しません。

例えば、オブジェクトバージョンをリーガルホールドして、オブジェクトバージョンも保持期間で保護するとします。保持期間が終了すると、オブジェクトは WORM 保護を失いません。むしろ、リーガルホールドでは、許可されたユーザーが明示的に解除するまでオブジェクトの保護が継続されます。同様に、オブジェクトバージョンに有効な保持期間がある間にリーガルホールドを解除すると、保護期間が終了するまでオブジェクトバージョンは保護されたままになります。

### S3 Object Lock における削除の仕組み
<a name="object-lock-how-deletes-work"></a>

バケットで S3 Object Lock が有効になっていて、オブジェクトが保持期間またはリーガルホールドによって保護されている場合、オブジェクトを削除しようとすると、Amazon S3 はオブジェクトの削除方法に応じて次のいずれかのレスポンスを返します。
+ **永続的 `DELETE` なリクエスト** – 永続的な `DELETE` リクエスト (バージョン ID を指定するリクエスト) を発行した場合、オブジェクトを削除しようとすると、Amazon S3 はアクセス拒否 (`403 Forbidden`) エラーを返します。Object Lock におけるアクセス拒否エラーのトラブルシューティングの詳細については、「[S3 オブジェクトロック設定](troubleshoot-403-errors.md#troubleshoot-403-object-lock)」を参照してください。
+ **シンプルな `DELETE` リクエスト** – シンプルな `DELETE` リクエスト (バージョン ID を指定しないリクエスト) を発行した場合、Amazon S3 は `200 OK` レスポンスを返し、バケットに[削除マーカー](DeleteMarker.md)を挿入します。そのマーカーは、新しい ID を持つオブジェクトの最新バージョンになります。Object Lock による削除マーカーの管理の詳細については、「[Object Lock による削除マーカーの管理](object-lock-managing.md#object-lock-managing-delete-markers)」を参照してください。

### S3 Object Lock を使用するためのベストプラクティス
<a name="object-lock-best-practices"></a>

事前定義された保持期間中にほとんどのユーザーがオブジェクトを削除しないようにするが、同時に特別なアクセス許可を持つ一部のユーザーに保持設定を変更したり、オブジェクトを削除したりできる柔軟性を持たせたい場合は、「ガバナンスモード」の使用を検討してください。**

AWS アカウント のルートユーザーを含むユーザーが、事前定義された保持期間中にオブジェクトを削除できないようにしたい場合は、「コンプライアンスモード」の使用を検討してください。**このモードは、準拠したデータを保存する必要がある場合に使用できます。

「リーガルホールド」は、オブジェクトを変更不可能な状態に保つ期間が不明な場合に使用できます。**これを使用する理由として、データの外部監査が今後予定されていて監査が完了するまでオブジェクトを変更不可能な状態に保ちたい、といったことが考えられます。または、進行中のプロジェクトがあり、プロジェクトが完了するまで変更不可能な状態を保ちたいデータセットを使用している場合もあります。

### 必要なアクセス許可
<a name="object-lock-permissions"></a>

オブジェクトロックオペレーションにはアクセス許可が必要です。実行しようとする個別のオペレーションによっては、次の許可のいずれかが必要になる場合があります。
+ `s3:BypassGovernanceRetention`
+ `s3:GetBucketObjectLockConfiguration`
+ `s3:GetObjectLegalHold`
+ `s3:GetObjectRetention`
+ `s3:PutBucketObjectLockConfiguration`
+ `s3:PutObjectLegalHold`
+ `s3:PutObjectRetention`

Amazon S3 のアクセス許可の説明付きの完全なリストについては、「サービス認可リファレンス」の「[Amazon S3 のアクション、リソース、および条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)」を参照してください。**

S3 リソースタイプ別の S3 API オペレーションへのアクセス許可の詳細については、「[Amazon S3 API オペレーションに必要なアクセス許可](using-with-s3-policy-actions.md)」を参照してください。

アクセス許可で条件を使用する方法の詳細については、「[条件キーを使用したバケットポリシーの例](amazon-s3-policy-keys.md)」を参照してください。

# オブジェクトロックの考慮事項
<a name="object-lock-managing"></a>

Amazon S3 オブジェクトロックは、オブジェクトが一定期間または無期限に削除または上書きされるのを防ぐのに役立ちます。

Amazon S3 コンソール、AWS Command Line Interface (AWS CLI)、AWS SDK、または Amazon S3 REST API を使用して、オブジェクトロック情報を表示したり設定したりできます。S3オブジェクトロック機能全般については、「[S3 Object Lock を使用したオブジェクトのロック](object-lock.md)」を参照してください。

**重要**  
オブジェクトロックを有効にしたバケットを作成した後、オブジェクトロックを無効にしたり、バケットのバージョニングを停止することはできません。
S3 オブジェクトロックが有効になっている S3 バケットは、サーバーアクセスログの送信先バケットとしては使用できません。詳細については、「[サーバーアクセスログによるリクエストのログ記録](ServerLogs.md)」を参照してください。

**Topics**
+ [

## ロック情報を表示するためのアクセス許可
](#object-lock-managing-view)
+ [

## ガバナンスモードのバイパス
](#object-lock-managing-bypass)
+ [

## S3 レプリケーションでのオブジェクトロックの使用
](#object-lock-managing-replication)
+ [

## Object Lock で暗号化を使用する
](#object-lock-managing-encryption)
+ [

## AmazonS3 インベントリでのオブジェクトロックの使用
](#object-lock-inv-report)
+ [

## Object Lock による S3 ライフサイクルポリシーの管理
](#object-lock-managing-lifecycle)
+ [

## Object Lock による削除マーカーの管理
](#object-lock-managing-delete-markers)
+ [

## オブジェクトロックでの S3 Storage Lens の使用
](#object-lock-storage-lens)
+ [

## Object Lock が有効なバケットへのオブジェクトのアップロード
](#object-lock-put-object)
+ [

## イベントと通知の設定
](#object-lock-managing-events)
+ [

## バケットポリシーを使用する保持期間の制限の設定
](#object-lock-managing-retention-limits)

## ロック情報を表示するためのアクセス許可
<a name="object-lock-managing-view"></a>

[https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html) オペレーションまたは [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) オペレーションを使用して、Amazon S3 オブジェクトバージョンのオブジェクトロックステータスをプログラムで表示できます。いずれのオペレーションでも、指定されたオブジェクトバージョンの保持モード、保持期日、リーガルホールドステータスが返されます。また、S3 インベントリを使用して、S3 バケット内の複数のオブジェクトの Object Lock ステータスを表示できます。

オブジェクトバージョンのリテンションモードおよび保存期間を表示するには、`s3:GetObjectRetention` アクセス許可が必要です。オブジェクトバージョンのリーガルホールドステータスを表示するには、`s3:GetObjectLegalHold` アクセス許可が必要です。バケットのデフォルトの保持期間を表示するには、`s3:GetBucketObjectLockConfiguration` アクセス許可が必要です。S3 オブジェクトロックが有効になっていないバケットに対してオブジェクトロック設定をリクエストしりｔｐ、Amazon S3 はエラーを返します。

## ガバナンスモードのバイパス
<a name="object-lock-managing-bypass"></a>

`s3:BypassGovernanceRetention` アクセス許可がある場合は、ガバナンスモードでロックされているオブジェクトバージョンに対して、保護されていない場合と同様にオペレーションを実行できます。このようなオペレーションには、オブジェクトバージョンの削除、保持期間の短縮以外にも、空のパラメータを指定した新しい `PutObjectRetention` リクエストの発行によるオブジェクトロック保持期間の解除があります。

ガバナンスモードをバイパスするには、このモードをバイパスするリクエストに明示的に示す必要があります。これを行うには、`PutObjectRetention` API オペレーションリクエストに `x-amz-bypass-governance-retention:true` ヘッダーを含めるか、AWS CLI または AWS SDK を介したリクエストで同等のパラメータを使用します。`s3:BypassGovernanceRetention` アクセス許可がある場合、S3 コンソールは、S3 コンソールを通じて行われたリクエストにこのヘッダーを自動的に適用します。

**注記**  
ガバナンスモードをバイパスしても、オブジェクトバージョンのリーガルホールドステータスには影響しません。オブジェクトバージョンでリーガルホールドが有効になっている場合、リーガルホールドは有効のままで、オブジェクトバージョンの上書きまたは削除のリクエストが避けられます。

## S3 レプリケーションでのオブジェクトロックの使用
<a name="object-lock-managing-replication"></a>

S3 レプリケーションでオブジェクト ロックを使用すると、S3 バケット間でロックされたオブジェクトとその保持メタデータの自動非同期コピーを有効にすることができます。つまり、レプリケートされたオブジェクトの場合、Amazon S3 はレプリケート元バケットのオブジェクトロック設定を受け取ります。言い換えると、ソースバケットで Object Lock が有効になっている場合は、レプリケート先バケットでも Object Lock が有効になっている必要があります。オブジェクトが (S3 レプリケーションの外部で) レプリケート先バケットに直接アップロードされると、レプリケート先バケットに設定された Object Lock が取得されます。レプリケーションを使用すると、**ソースバケット内のオブジェクトは、単一または複数の**送信先バケットにレプリケートされます。

オブジェクトロックが有効になっているバケットにレプリケーションを設定するには、S3 コンソール、AWS CLI、Amazon S3 REST API 、または AWS SDK を使用できます。

**注記**  
レプリケーションでオブジェクトロックを使用するには、レプリケーションの設定に使用する AWS Identity and Access Management (IAM) ロールで、ソース S3 バケットに対する 2 つの追加のアクセス許可を付与する必要があります。2 つの新しいアクセス許可とは `s3:GetObjectRetention` と `s3:GetObjectLegalHold` です。ロールに `s3:Get*` アクセス許可がある場合、そのステートメントは要件を満たしています。詳細については、「[ライブレプリケーションのアクセス許可の設定](setting-repl-config-perm-overview.md)」を参照してください。  
S3 レプリケーション全般については、「[リージョン内およびリージョン間でのオブジェクトのレプリケート](replication.md)」を参照してください。  
S3 レプリケーションの設定の詳細については、「[ライブレプリケーションの設定例](replication-example-walkthroughs.md)」を参照してください。

## Object Lock で暗号化を使用する
<a name="object-lock-managing-encryption"></a>

Amazon S3 は、デフォルトですべての新しいオブジェクトを暗号化します。暗号化されたオブジェクトで Object Lock を使用できます。詳細については、「[暗号化によるデータの保護](UsingEncryption.md)」を参照してください。

Object Lock は、Amazon S3 オブジェクトの削除や上書きを防ぐのに役立ちますが、暗号化キーへのアクセスが失われたり、暗号化キーが削除されたりするのを防ぐことはできません。例えば、AWS KMS サーバー側の暗号化でオブジェクトを暗号化し、AWS KMS キーが削除されると、オブジェクトが読み取り不可能になる可能性があります。

## AmazonS3 インベントリでのオブジェクトロックの使用
<a name="object-lock-inv-report"></a>

定義されたスケジュールに従って S3 バケット内のオブジェクトのリストを作成するように Amazon S3 インベントリを設定できます。オブジェクトの次のオブジェクトロック メタデータを含めるように Amazon S3 インベントリを設定できます。
+ 保持期日
+ 保持モード
+ リーガルホールドステータス

詳細については、「[S3 インベントリを使用したデータのカタログ化と分析](storage-inventory.md)」を参照してください。

## Object Lock による S3 ライフサイクルポリシーの管理
<a name="object-lock-managing-lifecycle"></a>

オブジェクトライフサイクルの管理設定は、削除マーカーの配置も含めて、保護されたオブジェクトで引き続き正常に機能します。ただし、S3 ライフサイクルの有効期限ポリシーでは、オブジェクトのロックされたバージョンを削除することはできません。Object Lock は、オブジェクトが保存されているストレージクラスに関係なく、またストレージクラス間での S3 ライフサイクル移行全体を通して維持されます。

オブジェクトのライフサイクルの管理の詳細については、「[オブジェクトのライフサイクルの管理](object-lifecycle-mgmt.md)」を参照してください。

## Object Lock による削除マーカーの管理
<a name="object-lock-managing-delete-markers"></a>

保護されたオブジェクトバージョンを削除することはできませんが、そのオブジェクトの削除マーカーを作成することはできます。オブジェクトに削除マーカーを配置しても、オブジェクトや、そのオブジェクトバージョンは削除されません。ただし、オブジェクトが削除されたかのように Amazon S3 をほとんどの方法で動作させます。詳細については、「[削除マーカーの使用](DeleteMarker.md)」を参照してください。

**注記**  
削除マーカーは、基盤となるオブジェクトでの保持期間またはリーガルホールドに関係なく、WORM 保護されません。

## オブジェクトロックでの S3 Storage Lens の使用
<a name="object-lock-storage-lens"></a>

オブジェクトロックが有効なストレージバイト数とオブジェクト数のメトリクスを表示するには、Amazon S3 Storage Lens を使用できます。S3 Storage Lens は、オブジェクトストレージの使用状況とアクティビティを組織全体で可視化するために使用できるクラウドストレージ分析機能です。

詳細については、「[S3 ストレージレンズによるデータ保護](storage-lens-data-protection.md)」を参照してください。

メトリクスの一覧については、「[Amazon S3 Storage Lens のメトリクスに関する用語集](storage_lens_metrics_glossary.md)」を参照してください。

## Object Lock が有効なバケットへのオブジェクトのアップロード
<a name="object-lock-put-object"></a>

`Content-MD5` または `x-amz-sdk-checksum-algorithm` ヘッダーは、Object Lock を使用して設定された保持期間のあるオブジェクトをアップロードするすべてのリクエストに必要です。これらのヘッダーは、アップロード中にオブジェクトの整合性を検証するための手段です。

Amazon S3 コンソールでオブジェクトをアップロードすると、S3 は自動的に `Content-MD5` ヘッダーを追加します。オプションで、追加のチェックサム関数とチェックサム値を `x-amz-sdk-checksum-algorithm` ヘッダーとしてコンソールから指定できます。[PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) API を使用する場合は、`Content-MD5` ヘッダー、`x-amz-sdk-checksum-algorithm` ヘッダー、またはその両方を指定して、Object Lock の保持期間を設定する必要があります。

詳細については、「[Amazon S3 でのオブジェクトの整合性のチェック](checking-object-integrity.md)」を参照してください。

## イベントと通知の設定
<a name="object-lock-managing-events"></a>

Amazon S3 イベント通知を使用して、AWS CloudTrail で、オブジェクトロック設定およびデータへのアクセスと変更を追跡できます。CloudTrail の詳細については、「**AWS CloudTrail ユーザーガイド」の「[AWS CloudTrail とは](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)」を参照してください。

また、Amazon CloudWatch を使用してこのデータに基づいてアラートを生成することもできます。CloudWatch の詳細については、「**Amazon CloudWatch ユーザーガイド」の「[Amazon CloudWatch とは](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)」を参照してください。

## バケットポリシーを使用する保持期間の制限の設定
<a name="object-lock-managing-retention-limits"></a>

バケットポリシーを使用してバケットの最小と最大の許容保持期間を設定できます。最大保存期間は 100 年です。

以下の例は、`s3:object-lock-remaining-retention-days` 条件キーを使用して最大保持期間を 10 日間に設定するバケットポリシーを示しています。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "SetRetentionLimits",
    "Statement": [
        {
            "Sid": "SetRetentionPeriod",
            "Effect": "Deny",
            "Principal": "*",
            "Action": [
                "s3:PutObjectRetention"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*",
            "Condition": {
                "NumericGreaterThan": {
                    "s3:object-lock-remaining-retention-days": "10"
                }
            }
        }
    ]
}
```

------

**注記**  
バケットがレプリケーション設定の送信先バケットである場合は、レプリケーションを使用して作成されるオブジェクトレプリカの最小および最大許容保存期間を設定できます。これを実行するには、バケットポリシーで `s3:ReplicateObject` アクションを許可する必要があります。レプリケーションのアクセス許可の詳細については、「[ライブレプリケーションのアクセス許可の設定](setting-repl-config-perm-overview.md)」を参照してください。

バケットポリシーの詳細については、後続のトピックを参照してください。
+ 「サービス認可リファレンス」の「[Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)」**

  S3 リソースタイプ別の S3 API オペレーションへのアクセス許可の詳細については、「[Amazon S3 API オペレーションに必要なアクセス許可](using-with-s3-policy-actions.md)」を参照してください。
+ [オブジェクト操作](security_iam_service-with-iam.md#using-with-s3-actions-related-to-objects)
+ [条件キーを使用したバケットポリシーの例](amazon-s3-policy-keys.md)

# オブジェクトロックの設定
<a name="object-lock-configure"></a>

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

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

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

**重要**  
オブジェクトロックを有効にしたバケットを作成した後、オブジェクトロックを無効にしたり、バケットのバージョニングを停止することはできません。
S3 オブジェクトロックが有効になっている S3 バケットは、サーバーアクセスログの送信先バケットとしては使用できません。詳細については、「[サーバーアクセスログによるリクエストのログ記録](ServerLogs.md)」を参照してください。

**Topics**
+ [

## 新しい S3 汎用バケット作成時に Object Lock を有効にする
](#object-lock-configure-new-bucket)
+ [

## 既存の S3 バケットでオブジェクトロックを有効にする
](#object-lock-configure-existing-bucket)
+ [

## S3 オブジェクトのリーガルホールドを設定または変更する
](#object-lock-configure-set-legal-hold)
+ [

## S3 オブジェクトの保持期間を設定または変更する
](#object-lock-configure-set-retention-period-object)
+ [

## S3 バケットのデフォルト保持期間を設定または変更する
](#object-lock-configure-set-retention-period-bucket)

## 新しい S3 汎用バケット作成時に Object Lock を有効にする
<a name="object-lock-configure-new-bucket"></a>

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

### S3 コンソールの使用
<a name="object-lock-new-bucket-console"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

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

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

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

1. **[バケット名]** にバケットの名前を入力します。
**注記**  
バケット作成後に名前は変更できません。バケットの命名の詳細については、「[汎用バケットの命名規則](bucketnamingrules.md)」を参照してください。

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

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

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

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

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

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

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

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

1. **[バケットを作成する]** を選択します。

### の使用AWS CLI
<a name="object-lock-new-bucket-cli"></a>

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

```
aws s3api create-bucket --bucket amzn-s3-demo-bucket1 --object-lock-enabled-for-bucket
```

詳細と例については、「AWS CLI コマンドリファレンス」の「[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/create-bucket.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/create-bucket.html)」を参照してください。**

**注記**  
AWS CloudShell を使用してコンソールから AWS CLI コマンドを実行できます。AWS CloudShell はブラウザベースの事前認証されたシェルであり、AWS マネジメントコンソール から直接起動できます。詳細については、「**AWS CloudShell User Guide」の「[ CloudShell とは](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)」を参照してください。

### REST API の使用
<a name="object-lock-new-bucket-rest"></a>

REST API を使用して、オブジェクトロックを有効にした新しい S3 バケットを作成できます。詳細については、「**Amazon Simple Storage Service API リファレンス」の「[https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html)」を参照してください。

### AWS SDK の使用
<a name="object-lock-new-bucket-sdk"></a>

AWS SDK を使用して新しい S3 バケットを作成するときに Object Lock を有効にする方法の例については、「Amazon S3 API リファレンス」の「[コード例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_LCreateBucket_section.html)」を参照してください。**

AWS SDK で現在の Object Lock 設定を取得する方法の例については、「Amazon S3 API リファレンス」の「[コード例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_GetObjectLockConfiguration_section.html)」を参照してください。**

AWS SDK を使用して別の Object Lock 機能のデモンストレーションを行うインタラクティブシナリオについては、「Amazon S3 API リファレンス」の「[コード例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_Scenario_ObjectLock_section.html)」を参照してください。**

さまざまな AWS SDK の使用に関する一般的な情報については、「Amazon S3 API リファレンス」の「[AWS SDK を使用した Amazon S3 での開発](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html)」を参照してください。**

## 既存の S3 バケットでオブジェクトロックを有効にする
<a name="object-lock-configure-existing-bucket"></a>

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

### S3 コンソールの使用
<a name="object-lock-existing-bucket-console"></a>

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

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

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

1. **[バケット]** リストで、オブジェクトロックを有効にするバケットの名前を選択します。

1. **[プロパティ]** タブを選択します。

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

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

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

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



### の使用AWS CLI
<a name="object-lock-existing-bucket-cli"></a>

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

```
aws s3api put-object-lock-configuration --bucket amzn-s3-demo-bucket1 --object-lock-configuration='{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 }}}'
```

詳細と例については、「AWS CLI コマンドリファレンス」の「[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-lock-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-lock-configuration.html)」を参照してください。**

**注記**  
AWS CloudShell を使用してコンソールから AWS CLI コマンドを実行できます。AWS CloudShell はブラウザベースの事前認証されたシェルであり、AWS マネジメントコンソール から直接起動できます。詳細については、「**AWS CloudShell User Guide」の「[ CloudShell とは](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)」を参照してください。

### REST API の使用
<a name="object-lock-existing-bucket-rest"></a>

Amazon S3 REST API を使用して、既存の S3 バケットのオブジェクトロックを有効にできます。詳細については、「**Amazon Simple Storage Service API リファレンス」の「[https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLockConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLockConfiguration.html)」を参照してください。

### AWS SDK の使用
<a name="object-lock-existing-bucket-sdk"></a>

AWS SDK を使用して既存の S3 バケットで Object Lock を有効にする方法の例については、「Amazon S3 API リファレンス」の「[コード例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_PutObjectLockConfiguration_section.html)」を参照してください。**

AWS SDK で現在の Object Lock 設定を取得する方法の例については、「Amazon S3 API リファレンス」の「[コード例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_GetObjectLockConfiguration_section.html)」を参照してください。**

AWS SDK を使用して別の Object Lock 機能のデモンストレーションを行うインタラクティブシナリオについては、「Amazon S3 API リファレンス」の「[コード例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_Scenario_ObjectLock_section.html)」を参照してください。**

さまざまな AWS SDK の使用に関する一般的な情報については、「Amazon S3 API リファレンス」の「[AWS SDK を使用した Amazon S3 での開発](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html)」を参照してください。**

## S3 オブジェクトのリーガルホールドを設定または変更する
<a name="object-lock-configure-set-legal-hold"></a>

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

**重要**  
オブジェクトにリーガルホールドを設定する場合は、オブジェクトのバケットでオブジェクトロックがすでに有効になっている必要があります。
個別の保存モードと期間が明示的に設定されているオブジェクトバージョンをバケット内に `PUT` すると、オブジェクトバージョンの個々のオブジェクトロック設定が、バケットプロパティの保存設定よりも優先されます。

詳細については、「[リーガルホールド](object-lock.md#object-lock-legal-holds)」を参照してください。

### S3 コンソールの使用
<a name="object-lock-set-legal-hold-console"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

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

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

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

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

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

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

### の使用AWS CLI
<a name="object-lock-set-legal-hold-cli"></a>

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

```
aws s3api put-object-legal-hold --bucket amzn-s3-demo-bucket1 --key 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 amzn-s3-demo-bucket1 --key my-image.fs --legal-hold="Status=OFF"
```

詳細と例については、「AWS CLI コマンドリファレンス」の「[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-legal-hold.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-legal-hold.html)」を参照してください。**

**注記**  
AWS CloudShell を使用してコンソールから AWS CLI コマンドを実行できます。AWS CloudShell はブラウザベースの事前認証されたシェルであり、AWS マネジメントコンソール から直接起動できます。詳細については、「**AWS CloudShell User Guide」の「[ CloudShell とは](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)」を参照してください。

### REST API の使用
<a name="object-lock-set-legal-hold-rest"></a>

REST API を使用して、オブジェクトのリーガルホールドを設定または変更できます。詳細については、「**Amazon Simple Storage Service API リファレンス」の「[https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLegalHold.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLegalHold.html)」を参照してください。

### AWS SDK の使用
<a name="object-lock-set-legal-hold-sdk"></a>

AWS SDK を使用してオブジェクトにリーガルホールドを設定する方法の例については、「Amazon S3 API リファレンス」の「[コードの例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_PutObjectLegalHold_section.html)」を参照してください。**

AWS SDK を使用して現在のリーガスホールドのステータスを取得する方法の例については、「Amazon S3 API リファレンス」の「[コードの例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_GetObjectLegalHoldConfiguration_section.html)」を参照してください。**

AWS SDK を使用して別の Object Lock 機能のデモンストレーションを行うインタラクティブシナリオについては、「Amazon S3 API リファレンス」の「[コード例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_Scenario_ObjectLock_section.html)」を参照してください。**

さまざまな AWS SDK の使用に関する一般的な情報については、「Amazon S3 API リファレンス」の「[AWS SDK を使用した Amazon S3 での開発](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html)」を参照してください。**

## S3 オブジェクトの保持期間を設定または変更する
<a name="object-lock-configure-set-retention-period-object"></a>

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

**重要**  
オブジェクトに保持期間を設定する場合は、オブジェクトのバケットでオブジェクトロックがすでに有効になっている必要があります。
個別の保存モードと期間が明示的に設定されているオブジェクトバージョンをバケット内に `PUT` すると、オブジェクトバージョンの個々のオブジェクトロック設定が、バケットプロパティの保存設定よりも優先されます。
保持期限が切れる前にコンプライアンスモードのオブジェクトを削除する唯一の方法は、関連する AWS アカウント を削除することです。

詳細については、「[保持期間](object-lock.md#object-lock-retention-periods)」を参照してください。

### S3 コンソールの使用
<a name="object-lock-set-retention-period-console"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

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

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

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

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

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

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

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

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

### の使用AWS CLI
<a name="object-lock-set-retention-period-cli"></a>

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

```
aws s3api put-object-retention --bucket amzn-s3-demo-bucket1 --key my-image.fs --retention='{ "Mode": "GOVERNANCE", "RetainUntilDate": "2025-01-01T00:00:00" }'
```

詳細と例については、「AWS CLI コマンドリファレンス」の「[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-retention.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-retention.html)」を参照してください。**

**注記**  
AWS CloudShell を使用してコンソールから AWS CLI コマンドを実行できます。AWS CloudShell はブラウザベースの事前認証されたシェルであり、AWS マネジメントコンソール から直接起動できます。詳細については、「**AWS CloudShell User Guide」の「[ CloudShell とは](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)」を参照してください。

### REST API の使用
<a name="object-lock-set-retention-period-rest"></a>

REST API を使用して、オブジェクトの保持期間を設定または変更できます。詳細については、「**Amazon Simple Storage Service API リファレンス」の「[https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectRetention.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectRetention.html)」を参照してください。

### AWS SDK の使用
<a name="object-lock-set-retention-period-sdk"></a>

AWS SDK を使用してオブジェクトに保持期間を設定する方法の例については、「Amazon S3 API リファレンス」の「[コードの例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_PutObjectRetention_section.html)」を参照してください。**

AWS SDK を使用してオブジェクトの保持期間を取得する方法の例については、「Amazon S3 API リファレンス」の「[コードの例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_GetObjectLockConfiguration_section.html)」を参照してください。**

AWS SDK を使用して別の Object Lock 機能のデモンストレーションを行うインタラクティブシナリオについては、「Amazon S3 API リファレンス」の「[コード例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_GetObjectLockConfiguration_section.html)」を参照してください。**

さまざまな AWS SDK の使用に関する一般的な情報については、「Amazon S3 API リファレンス」の「[AWS SDK を使用した Amazon S3 での開発](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html)」を参照してください。**

## S3 バケットのデフォルト保持期間を設定または変更する
<a name="object-lock-configure-set-retention-period-bucket"></a>

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

**重要**  
バケットのデフォルトの保持期間を設定する場合は、バケットでオブジェクトロックがすでに有効になっている必要があります。
個別の保存モードと期間が明示的に設定されているオブジェクトバージョンをバケット内に `PUT` すると、オブジェクトバージョンの個々のオブジェクトロック設定が、バケットプロパティの保存設定よりも優先されます。
保持期限が切れる前にコンプライアンスモードのオブジェクトを削除する唯一の方法は、関連する AWS アカウント を削除することです。

詳細については、「[保持期間](object-lock.md#object-lock-retention-periods)」を参照してください。

### S3 コンソールの使用
<a name="object-lock-set-retention-period-bucket-console"></a>

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

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

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

1. **[プロパティ]** タブを選択します。

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

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

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

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

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

### の使用AWS CLI
<a name="object-lock-configure-set-retention-period-bucket-cli"></a>

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

```
aws s3api put-object-lock-configuration --bucket amzn-s3-demo-bucket1 --object-lock-configuration='{ "ObjectLockEnabled": "Enabled", "Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 50 }}}'
```

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

```
aws s3api put-object-lock-configuration --bucket amzn-s3-demo-bucket1 --object-lock-configuration='{ "ObjectLockEnabled": "Enabled"}'
```

詳細と例については、「AWS CLI コマンドリファレンス」の「[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-lock-configuration.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object-lock-configuration.html)」を参照してください。**

**注記**  
AWS CloudShell を使用してコンソールから AWS CLI コマンドを実行できます。AWS CloudShell はブラウザベースの事前認証されたシェルであり、AWS マネジメントコンソール から直接起動できます。詳細については、「**AWS CloudShell User Guide」の「[ CloudShell とは](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)」を参照してください。

### REST API の使用
<a name="object-lock-configure-set-retention-period-bucket-rest"></a>

REST API を使用して既存の S3 バケットにデフォルトの保持期間を設定できます。詳細については、「**Amazon Simple Storage Service API リファレンス」の「[https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLockConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectLockConfiguration.html)」を参照してください。

### AWS SDK の使用
<a name="object-lock-configure-set-retention-period-bucket-sdk"></a>

AWS SDK を使用して既存の S3 バケットにデフォルトの保持期間を設定する方法の例については、「Amazon S3 API リファレンス」の「[コードの例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_PutObjectLockConfiguration_section.html)」を参照してください。**

AWS SDK を使用して別の Object Lock 機能のデモンストレーションを行うインタラクティブシナリオについては、「Amazon S3 API リファレンス」の「[コード例](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_Scenario_ObjectLock_section.html)」を参照してください。**

さまざまな AWS SDK の使用に関する一般的な情報については、「Amazon S3 API リファレンス」の「[AWS SDK を使用した Amazon S3 での開発](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html)」を参照してください。**