Amazon EC2: 특정 EC2 작업에 대해 MFA(GetSessionToken)를 요구
이 예제는 Amazon EC2 내에서 모든 AWS API 작업에 대한 액세스를 허용하는 아이덴티티 기반 정책을 작성하는 방법을 보여줍니다. 하지만 사용자가 멀티 팩터 인증(MFA)을 사용하여 인증되지 않은 경우 StopInstances
및 TerminateInstances
API 작업에 대해 액세스는 명시적으로 거부합니다. 이를 프로그래밍 방식으로 수행하려면 사용자가 GetSessionToken
작업을 호출하는 동안 선택 사항인 SerialNumber
및 TokenCode
값을 포함해야 합니다. 이 작업은 MFA를 사용하여 인증된 임시 자격 증명을 반환합니다. GetSessionToken에 대해 자세히 알아보려면 신뢰할 수 없는 환경의 사용자를 위한 자격 증명 요청 섹션을 참조하세요.
이 정책이 하는 일은 무엇입니까?
-
AllowAllActionsForEC2
문은 모든 Amazon EC2 작업을 허용합니다. -
DenyStopAndTerminateWhenMFAIsNotPresent
문은 MFA 컨텍스트가 누락된 경우StopInstances
및TerminateInstances
작업을 거부합니다. 따라서 Multi-Factor Authentication(MFA) 컨텍스트가 누락된 경우(MFA가 사용되지 않은 경우) 작업이 거부됩니다. 거부는 허용을 무시합니다.
참고
MFA를 사용하지 않을 때는 키가 없어 키를 평가할 수 없기 때문에 Deny
문의 MultiFactorAuthPresent
에 대한 조건 확인이 {"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} } } ] }