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、セキュリティ重視の組織で一般的な要件です。