LoginSignup
2
1

More than 1 year has passed since last update.

【IAM】MFA設定するまでその他の機能を使わせないポリシー【AWS】

Posted at

MFA設定ユーザーのみに各操作権限を与えたい

新規にIAMユーザーを発行したが、MFAを設定するまでは各機能を触らせたくない(確実にMFA設定をしてもらいたい)場合がありました。

ちょうどいいポリシーを公式で発見

上記リンクよりピッタリのポリシーがありました。下記は引用なので変わる可能性があるので必ずリンク先をご参照ください。
中身を見てみると
Allow~ というポリシーでMFAを設定できるようにしています。
最後のBlockMostAccessUnlessSignedInWithMFAポリシーでMFAの設定がないとその他の機能をブロックするようにしています。
MFAの設定と書きましたが、正確にはMFAを利用したログインをしなかった場合にブロックをするので、MFA設定後、MFAを利用して再ログインする必要があります。
これで確実にMFAユーザーのみにAWSコンソールを触らせることが可能となりました。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowListActions",
            "Effect": "Allow",
            "Action": [
                "iam:ListUsers",
                "iam:ListVirtualMFADevices"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowIndividualUserToListOnlyTheirOwnMFA",
            "Effect": "Allow",
            "Action": [
                "iam:ListMFADevices"
            ],
            "Resource": [
                "arn:aws:iam::*:mfa/*",
                "arn:aws:iam::*:user/${aws:username}"
            ]
        },
        {
            "Sid": "AllowIndividualUserToManageTheirOwnMFA",
            "Effect": "Allow",
            "Action": [
                "iam:CreateVirtualMFADevice",
                "iam:DeleteVirtualMFADevice",
                "iam:EnableMFADevice",
                "iam:ResyncMFADevice"
            ],
            "Resource": [
                "arn:aws:iam::*:mfa/${aws:username}",
                "arn:aws:iam::*:user/${aws:username}"
            ]
        },
        {
            "Sid": "AllowIndividualUserToDeactivateOnlyTheirOwnMFAOnlyWhenUsingMFA",
            "Effect": "Allow",
            "Action": [
                "iam:DeactivateMFADevice"
            ],
            "Resource": [
                "arn:aws:iam::*:mfa/${aws:username}",
                "arn:aws:iam::*:user/${aws:username}"
            ],
            "Condition": {
                "Bool": {
                    "aws:MultiFactorAuthPresent": "true"
                }
            }
        },
        {
            "Sid": "BlockMostAccessUnlessSignedInWithMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:CreateVirtualMFADevice",
                "iam:EnableMFADevice",
                "iam:ListMFADevices",
                "iam:ListUsers",
                "iam:ListVirtualMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1