【学習記録】S3のデータをMFAで保護する

S3のデータをMFAで保護する方法について勉強しました。
こちらの公式ドキュメントを読みました。

docs.aws.amazon.com

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"
                }
            }
        },
...