Amazon EC2: 特定の EC2 オペレーション (GetSessionToken) に対して MFA を必要とします。 - AWS Identity and Access Management

Amazon EC2: 特定の EC2 オペレーション (GetSessionToken) に対して MFA を必要とします。

この例は、Amazon EC2 のすべての AWS API オペレーションへのフルアクセスを許可する ID ベースのポリシーを作成する方法を示しています。ただし、ユーザーが多要素認証 (MFA) を使用して認証されていない場合は、StopInstances および TerminateInstances APIオペレーションへのアクセスを明示的に拒否します。これをプログラムで行うには、GetSessionToken オペレーションを呼び出すときにユーザーはオプションの SerialNumber および TokenCode 値を含める必要があります。このオペレーションでは、MFA を使用して認証された一時認証情報を返します。GetSessionToken の詳細については、「GetSessionToken — 信頼されていない環境にあるユーザー向けの一時的認証情報」を参照してください。

このポリシーで行うこと

  • この AllowAllActionsForEC2 ステートメントではすべての Amazon EC2 アクションが許可されます。

  • DenyStopAndTerminateWhenMFAIsNotPresent ステートメントは、MFA コンテキストが欠落している場合に、StopInstances および TerminateInstances のアクションを拒否します。これは、多要素認証コンテキストがない場合 (MFA が使用されなかったことを意味します) にアクションが拒否されることを意味します。拒否が許可に優先します。

注記

Deny ステートメントの MultiFactorAuthPresent の条件チェックは、MFA が使用されていなければ該当キーが存在せず、評価できないため、{"Bool":{"aws:MultiFactorAuthPresent":false}} となりません。その代わりに、BoolIfExists チェックを使用して、値をチェックする前にキーが存在するかどうか確認します。詳細については、「IfExists 条件演算子」を参照してください。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllActionsForEC2", "Effect": "Allow", "Action": "ec2:*", "Resource": "*" }, { "Sid": "DenyStopAndTerminateWhenMFAIsNotPresent", "Effect": "Deny", "Action": [ "ec2:StopInstances", "ec2:TerminateInstances" ], "Resource": "*", "Condition": { "BoolIfExists": {"aws:MultiFactorAuthPresent": false} } } ] }