

# ディレクトリバケットの S3 ライフサイクルの使用
<a name="directory-buckets-objects-lifecycle"></a>

 S3 ライフサイクルは、ユーザーに代わって期限切れのオブジェクトを削除することで、S3 Express One Zone のオブジェクトをディレクトリバケットにコスト効率良く保存するのに役立ちます。オブジェクトのライフサイクルを管理するには、ディレクトリバケットの S3 ライフサイクル設定を作成します。S3 ライフサイクル設定は、Amazon S3 がオブジェクトのグループに適用するアクションを定義するルールのセットです。ディレクトリバケットに Amazon S3 ライフサイクル設定をセットアップするには、AWS コマンドラインインターフェイス (AWS CLI)、AWS SDK、Amazon S3 REST API、AWS CloudFormation を使用できます。

S3 ライフサイクル設定では、ルールを使用して、Amazon S3 がオブジェクトに実行するアクションを定義します。ディレクトリバケットに保存されているオブジェクトの場合、古くなったオブジェクトを期限切れにするライフサイクルルールを作成できます。また、ディレクトリバケット内の不完全なマルチパートアップロードを毎日削除するライフサイクルルールを作成することもできます。

ライフサイクル設定をバケットに追加すると、設定ルールは既存のオブジェクトとそれ以降に追加されるオブジェクトの両方に適用されます。例えば、ライフサイクル設定ルールを今日追加し、特定のプレフィックスが付いたオブジェクトを作成から 30 日後に期限切れにするように設定すると、S3 は、30 日を超えた既存のオブジェクトのうち、指定したプレフィックスが付いたものを削除キューに追加します。

## ディレクトリバケットの S3 ライフサイクルの違い
<a name="directory-bucket-lifecycle-differences"></a>

ディレクトリバケット内のオブジェクトの場合、オブジェクトを期限切れにし、不完全なマルチパートアップロードを削除するライフサイクルルールを作成できます。ただし、ディレクトリバケットの S3 ライフサイクルは、ストレージクラス間の移行アクションをサポートしていません。

**CreateSession**

ライフサイクルは、パブリックの `DeleteObject` および `DeleteObjects` API オペレーションを使用して、ディレクトリバケット内のオブジェクトを期限切れにします。これらの API オペレーションを使用するために、S3 ライフサイクルは `CreateSession` API を使用してディレクトリバケット内のオブジェクトにアクセスするための一時的なセキュリティ認証情報を設定します。詳細については、「[*Amazon S3 API リファレンス*の `CreateSession`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html)」を参照してください。

ライフサイクルプリンシパルに対して削除アクセス許可を拒否するアクティブなポリシーがある場合、S3 ライフサイクルがユーザーに代わってオブジェクトを削除することを許可できなくなります。

### バケットポリシーを使用して S3 ライフサイクルサービスプリンシパルにアクセス許可を付与する
<a name="lifecycle-directory-bucket-policy"></a>

次のバケットポリシーは、S3 ライフサイクルサービスプリンシパルに、`DeleteObject` や `DeleteObjects` などのオペレーションを実行するためのセッションを作成するアクセス許可を付与します。`CreateSession` リクエストでセッションモードが指定されていない場合、セッションはアクセス許可によって最大許容特権で作成されます (最初に `ReadWrite` を試行し、`ReadWrite` が許可されていない場合は `ReadOnly` を試行します)。ただし、`ReadOnly` オブジェクトを変更または削除するライフサイクルオペレーションにはセッションだけでは不十分です。したがって、この例では、`s3express:SessionMode` 条件キーを使用して `ReadWrite` セッションモードを明示的に要求します。

**Example – ライフサイクルオペレーションの明示的な `ReadWrite` セッションモードで `CreateSession` 呼び出しを許可するバケットポリシー**  

```
 { 
   "Version":"2008-10-17",		 	 	  
   "Statement":[
      {
         "Effect":"Allow",
         "Principal": {
            "Service":"lifecycle.s3.amazonaws.com"
          },
          "Action":"s3express:CreateSession", 
          "Condition": { 
             "StringEquals": {
                "s3express:SessionMode": "ReadWrite"
              }
           }, 
           "Resource":"arn:aws:s3express:us-east-2:412345678921:bucket/amzn-s3-demo-bucket--use2-az2--x-s3"
       }
   ] 
}
```

### ライフサイクルルールのモニタリング
<a name="lifecycle-directory-bucket-monitoring"></a>

ディレクトリバケットに保存されているオブジェクトの場合、S3 ライフサイクルは AWS CloudTrail 管理とデータイベントのログを生成します。詳細については、「[S3 Express One Zone の CloudTrail ログファイルの例](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-log-files.html)」を参照してください。

ライフサイクル設定の作成および S3 ライフサイクル関連の問題のトラブルシューティングの詳細については、以下のトピックを参照してください。

**Topics**