AWS CLI를 사용하는 IAM 사용자에 대한 MFA 인증을 적용하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 6월 16일

AWS Identity and Access Management(IAM) 사용자의 AWS 서비스 액세스를 제한하는 Multi-Factor Authentication(MFA) 조건 정책을 생성했습니다. 이 정책은 AWS Management Console에서는 작동하지만, AWS 명령줄 인터페이스(AWS CLI)에서는 작동하지 않습니다. AWS CLI에서 MFA를 사용하려면 어떻게 해야 합니까?

간략한 설명

다음 예제 IAM 정책에서는 IAM 사용자가 MFA를 사용하여 각 AWS 서비스에 액세스하도록 합니다.

{

            "Sid": "BlockMostAccessUnlessSignedInWithMFA",
            "Effect": "Deny",
            "NotAction": [
                "iam:CreateVirtualMFADevice",
                "iam:DeleteVirtualMFADevice",
                "iam:ListVirtualMFADevices",
                "iam:EnableMFADevice",
                "iam:ResyncMFADevice",
                "iam:ListAccountAliases",
                "iam:ListUsers",
                "iam:ListSSHPublicKeys",
                "iam:ListAccessKeys",
                "iam:ListServiceSpecificCredentials",
                "iam:ListMFADevices",
                "iam:GetAccountSummary",
                "sts:GetSessionToken"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
}

AWS Management Console을 사용하는 IAM 사용자는 MFA 인증 자격 증명을 입력하라는 메시지가 표시되고 AWS 서비스에 액세스할 수 있습니다. 하지만 AWS CLI를 사용하는 IAM 사용자에게는 MFA 인증 자격 증명을 입력하라는 메시지가 표시되지 않고 AWS 서비스에 액세스할 수 있습니다.
</p

해결 방법

참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우, 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.

MultiFactorAuthPresent 키는 MFA가 사용되는지 여부만 검사하는 임시 보안 자격 증명에만 적용됩니다. MultiFactorAuthPresent 키는 장기 자격 증명을 사용한 요청이나 AWS CLI를 사용한 MFA 요청에 대한 액세스를 거부하지 않습니다.

AWS Management Console을 사용하는 IAM 사용자는 임시 자격 증명을 생성하고 MFA를 사용한 경우에만 액세스를 허용합니다.

Bool 조건 연산자를 사용하면 true 또는 false로 설정된 키 값으로의 액세스를 제한합니다. BoolIfExists 조건 연산자를 추가하여 MultiFactorAuthPresent 키가 요청에 있는지 검사할 수 있습니다. MultiFactorAuthPresent 키가 없는 경우 IfExists가 다음과 비슷하게 조건 요소가 true인지 평가합니다.

"Effect" : "Deny",
"Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "false" } }

장기 자격 증명으로 AWS CLI를 사용하는 IAM 사용자는 액세스가 거부되고 반드시 MFA를 사용하여 인증해야 합니다.

자세한 내용은 부울 조건 연산자를 참조하세요.
</p