Amazon EC2: 특정 EC2 작업에 대해 MFA(GetSessionToken)를 요구 - AWS Identity and Access Management

Amazon EC2: 특정 EC2 작업에 대해 MFA(GetSessionToken)를 요구

이 예제에서는 Amazon EC2 내에서 모든 AWS API 작업에 대한 액세스를 허용하는 IAM 정책을 작성하는 방법을 보여줍니다. 하지만 사용자가 멀티 팩터 인증(MFA)을 사용하여 인증되지 않은 경우 StopInstancesTerminateInstances API 작업에 대해 액세스는 명시적으로 거부합니다. 이를 프로그래밍 방식으로 수행하려면 사용자가 SerialNumber 작업을 호출하는 동안 선택 사항인 TokenCodeGetSessionToken 값을 포함해야 합니다. 이 작업은 MFA를 사용하여 인증된 임시 자격 증명을 반환합니다. GetSessionToken에 대해 자세히 알아보려면 - GetSessionToken 신뢰할 수 없는 환경에 있는 사용자를 위한 임시 자격 증명 단원을 참조하십시오.

이 정책이 하는 일은 무엇입니까?

  • AllowAllActionsForEC2 문은 모든 Amazon EC2 작업을 허용합니다.

  • DenyStopAndTerminateWhenMFAIsNotPresent 문은 MFA 컨텍스트가 누락된 경우 StopInstancesTerminateInstances 작업을 거부합니다. 따라서 Multi-Factor Authentication(MFA) 컨텍스트가 누락된 경우(MFA가 사용되지 않은 경우) 작업이 거부됩니다. 거부는 허용을 무시합니다.

참고

MFA를 사용하지 않을 때는 키가 없어 키를 평가할 수 없기 때문에 MultiFactorAuthPresent 문의 Deny에 대한 조건 확인이 {"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} } } ] }