説明
バージョニングを有効にしたバケットの MFA Delete は、オブジェクトバージョンの完全削除とバージョニング状態の変更に追加認証を要求します。使用しない場合、その権限を持つ主体は MFA の確認なしでこれらを実行できます。通常のオブジェクト削除要求すべてに MFA を要求する機能ではありません。
想定される影響
- 権限の悪用や操作ミスによって、復旧に必要なバージョンが完全に削除される可能性があります。
- バージョニングだけでは、すべてのバージョンの削除を防げません。
対処方法
データ保持要件に合わせて MFA Delete の導入を検討してください。有効化はバケット所有アカウントのルートユーザーが MFA デバイスを使い、AWS CLI または API で行う必要があります。実際の有効状態を確認し、ルートアクセスを厳格に管理してください。MFA Delete は S3 ライフサイクル設定と併用できません。
例
AWS provider 3.75.2 の従来のインライン構文による例です。この版の mfa_delete は AWS の実際の状態を反映するため、Terraform の値を変えるだけでは MFA Delete を有効にできません。
変更前
hcl
resource "aws_s3_bucket" "example" {
bucket = "my-tf-test-bucket"
acl = "private"
versioning {
enabled = true
}
}
変更後
hcl
resource "aws_s3_bucket" "example" {
bucket = "my-tf-test-bucket"
acl = "private"
versioning {
enabled = true
mfa_delete = true
}
}
変更後は AWS で別途有効にした MFA Delete の状態を宣言します。適用前に実際のバージョニングと MFA Delete の状態を確認してください。