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 ライフサイクルの違い
ディレクトリバケット内のオブジェクトの場合、オブジェクトを期限切れにし、不完全なマルチパートアップロードを削除するライフサイクルルールを作成できます。ただし、ディレクトリバケットの S3 ライフサイクルは、ストレージクラス間の移行アクションをサポートしていません。
CreateSession
ライフサイクルは、パブリックの DeleteObject
および DeleteObjects
API オペレーションを使用して、ディレクトリバケット内のオブジェクトを期限切れにします。これらの API オペレーションを使用するために、S3 ライフサイクルは CreateSession
API を使用してディレクトリバケット内のオブジェクトにアクセスするための一時的なセキュリティ認証情報を設定します。詳細については、「Amazon S3 API リファレンスの CreateSession
」を参照してください。
ライフサイクルプリンシパルに対して削除アクセス許可を拒否するアクティブなポリシーがある場合、S3 ライフサイクルがユーザーに代わってオブジェクトを削除することを許可できなくなります。
バケットポリシーを使用して S3 ライフサイクルサービスプリンシパルにアクセス許可を付与する
次のバケットポリシーでは、デフォルトの ReadWrite
セッションで CreateSession コールを許可するアクセス許可を付与し、ライフサイクルサービスプリンシパルを許可します。
例 – デフォルトの 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"
}
]
}
ライフサイクルルールのモニタリング
ディレクトリバケットに保存されているオブジェクトの場合、S3 ライフサイクルは AWS CloudTrail 管理とデータイベントのログを生成します。詳細については、「S3 Express One Zone の CloudTrail ログファイルの例」を参照してください。
ライフサイクル設定の作成および S3 ライフサイクル関連の問題のトラブルシューティングの詳細については、以下のトピックを参照してください。