S3のデータをMFAで保護する方法について勉強しました。
こちらの公式ドキュメントを読みました。
MFA(多要素認証)を通過したユーザーだけがS3バケットのデータにアクセスしたり削除したりできるようにするためには、MFA関連の条件をバケットポリシーに追加するとのことです。
aws:MultiFactorAuthPresent という条件を設定することでMFAを通過しているかどうか判定できます。
ポリシーの設定例として以下のJSONが記載されていました。
{ "Version": "2012-10-17", "Id": "Policy201612130001aa", "Statement": [ { "Sid": "Stmt201612130001ab", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::example.accounta.bucket/*", "Condition": { "BoolIfExists": { "aws:MultiFactorAuthPresent": "false" } } }, ...