Amazon EC2:要求特定 EC2 操作的 MFA (GetSessionToken) - AWS Identity and Access Management

Amazon EC2:要求特定 EC2 操作的 MFA (GetSessionToken)

此範例會示範如何建立 IAM 政策,允許完整存取 Amazon EC2 中的所有 AWS API 操作。不過,如果未透過多重要素驗證 (MFA) 來對使用者進行驗證,此政策會明確拒絕對 StopInstancesTerminateInstances API 操作的存取。若要以程式設計的方式執行,使用者必須在呼叫 SerialNumber 操作時包含選用 TokenCodeGetSessionToken 值。這個操作會傳回透過使用 MFA 驗證的臨時憑證。要進一步了解 GetSessionToken 的相關資訊,請參閱 — GetSessionToken 不信任環境中使用者的暫時憑證

此政策的功能為何?

  • AllowAllActionsForEC2 陳述式會允許所有 Amazon EC2 動作。

  • MFA 內容遺失時,DenyStopAndTerminateWhenMFAIsNotPresent 陳述式會拒絕 StopInstancesTerminateInstances 動作。這表示當多重驗證內容遺失 (表示未使用 MFA) 時,動作遭拒。拒絕會覆寫允許。

注意

MultiFactorAuthPresent 陳述式中 Deny 的條件檢查不應該是 {"Bool":{"aws:MultiFactorAuthPresent":false}},因為該索引鍵不存在,並且在不使用 MFA 時無法評估。因此,在檢查值之前,使用 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} } } ] }