MFAなしのアクションを拒否するIAMポリシー

多要素認証(MFA)が存在しない限りすべてのアクションを拒否するIAMポリシーを作成します。特権アカウントのセキュリティベストプラクティスです。

Advanced Patterns

詳細な説明

MFA強制ポリシー

機密操作に対して多要素認証(MFA)を要求することで、強力なセキュリティレイヤーが追加されます。このポリシーは、リクエストがMFAで認証されていない限りすべてのアクションを拒否します。

ポリシーJSON

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyAllWithoutMFA",
      "Effect": "Deny",
      "NotAction": [
        "iam:CreateVirtualMFADevice",
        "iam:EnableMFADevice",
        "iam:GetUser",
        "iam:ListMFADevices",
        "iam:ListVirtualMFADevices",
        "iam:ResyncMFADevice",
        "sts:GetSessionToken"
      ],
      "Resource": "*",
      "Condition": {
        "BoolIfExists": {
          "aws:MultiFactorAuthPresent": "false"
        }
      }
    }
  ]
}

NotAction("Action"ではない)

このポリシーはActionの代わりにNotActionを使用します。これは「MFAが存在しない場合、リストされたアクションを除くすべてを拒否する」を意味します。除外されたアクションにより、ユーザーはMFAデバイスをセットアップおよび管理できます。

BoolIfExists

Boolの代わりにBoolIfExistsを使用するのは、長期アクセスキーを使用するリクエストではaws:MultiFactorAuthPresentが「false」ではなくまったく存在しないためです。

このポリシーの使い方

ユーザーの権限ポリシーと一緒にこのポリシーをアタッチします。Denyは常にAllowに勝つため、他のポリシーが広範なアクセスを付与していても、それらの権限はMFA認証後にのみ機能します。

ユースケース

管理者アカウント、特権ユーザー、本番リソースや機密データへのアクセスを持つプリンシパルにMFAを強制する。SOC 2、PCI DSS、セキュリティ重視の組織で一般的な要件です。

試してみる — AWS IAM Policy Generator

フルツールを開く