내용으로 건너뛰기

AWS Management Console과 AWS CLI를 사용하는 IAM 사용자에게 MFA 인증을 적용하려면 어떻게 해야 하나요?

2분 분량
0

AWS Identity and Access Management(IAM) 사용자의 AWS 서비스에 대한 액세스를 제한하는 다중 인증(MFA) 조건 정책을 생성했습니다. 이 정책은 AWS Management Console에서는 작동하지만 AWS Command Line Interface(AWS CLI)에서는 작동하지 않습니다.

간략한 설명


다음 예제 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:ViaAWSService": "false"
    }
  }
}

위 정책에서 AWS 관리 콘솔을 사용하는 IAM 사용자에게는 AWS 서비스에 액세스하기 위해 MFA 인증 자격 증명을 입력하라는 메시지가 표시됩니다. 하지만 AWS CLI를 사용하는 IAM 사용자에게는 AWS 서비스에 액세스하기 위해 MFA 인증 자격 증명을 입력하라는 메시지가 표시되지 않습니다.

해결 방법

**참고:AWS CLI 명령을 실행할 때 오류가 발생하면, **AWS CLI 오류 문제 해결을 참조하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

장기 자격 증명 요청에는 AWS:MultiFactorAuthPresent 키가 존재하지 않으므로 이 키는 요청에 대한 액세스를 거부하지 않습니다. 정책의 키가 부울 조건 연산자와 함께 있지 않으면 값이 일치하지 않는 것입니다.

AWS Management 콘솔을 사용하는 IAM 사용자는 임시 자격 증명을 생성하고 MFA를 사용할 때만 액세스를 허용합니다.

AWS CLI를 사용하여 MFA 인증을 적용하려면 ifExists 조건 연산자를 추가하여 MultiFactorAuthPresent 키가 요청에 있는지 확인하십시오. 이 부울 조건을 사용하면 키 값을 true 또는 false로 설정하여 액세스를 제한할 수 있습니다. MultiFactorAuthPresent 키가 요청에 없는 경우 IfExists는 조건 요소를 true로 평가합니다.

IAM 정책 예시:

{
    "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": {
        "BoolIfExists": {
            "aws:MultiFactorAuthPresent": "false",
            "aws:ViaAWSService": "false"
        }
    }
}

**참고:**장기 자격 증명으로 AWS CLI를 사용하는 IAM 사용자는 액세스가 거부되며 MFA를 사용하여 인증해야 합니다. MFA 토큰을 사용하여 CLI 세션을 인증해야 합니다.

관련 정보

다른 AWS 계정의 사용자가 MFA를 사용하여 Amazon S3 버킷에 액세스하도록 하려면 어떻게 해야 합니까?

다중 인증 사용

AWS CLI 또는 AWS API에서 MFA 디바이스 할당