EC2 인스턴스 시작 중에 "UnauthorizedOperation" 오류가 발생한 후 인증 실패 메시지를 디코딩하려면 어떻게 해야 하나요?

2분 분량
0

Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작하려고 할 때 "RunInstances 작업을 호출할 때 오류(UnauthorizedOperation)가 발생했습니다. 이 작업을 수행할 권한이 없습니다. 인코딩된 권한 부여 실패 메시지 encoded-message" 오류가 발생합니다. 문제를 해결하려면 어떻게 해야 하나요?

간략한 설명

"UnauthorizedOperation" 오류는 작업을 수행하려고 하는 AWS Identity and Access Management(IAM) 역할 또는 사용자에게 연결된 권한에 EC2 인스턴스를 시작하는 데 필요한 권한이 없음을 나타냅니다. 이 오류는 인코딩된 메시지와 관련이 있으므로 AWS Command Line Interface(AWS CLI)를 사용하여 메시지를 디코딩합니다. 이 디코딩은 권한 부여 실패에 대한 자세한 정보를 제공합니다.

사전 조건

인코딩된 메시지를 디코딩하려는 IAM 사용자 또는 역할에 IAM 정책이 있는 DecodeAuthorizationMesssage API 작업에 대한 권한이 있어야 합니다. 사용자 또는 역할에 이 권한이 없는 경우 디코딩 작업이 실패하고 다음 오류 메시지가 나타납니다.

"오류: DecodeAuthorizationMessage 작업을 호출할 때 클라이언트 오류(AccessDenied)가 발생했습니다. 사용자 xxx에게 (sts: DecodeAuthorizationMessage) 작업을 수행할 권한이 없습니다."

해결 방법

1.    다음 명령을 사용하여 컴퓨터에 AWS CLI가 설치구성되었는지 확인합니다.

$ aws --version

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

2.    decode-authorization-message 명령을 실행합니다. encoded-message를 오류 메시지에 포함된 정확한 인코딩된 메시지로 바꿉니다.

$ aws sts decode-authorization-message --encoded-message encoded-message

3.    디코딩된 메시지에 IAM 역할 또는 사용자 정책에 누락된 필수 권한이 나열됩니다.

인코딩된 메시지의 예:

Launch Failed - You are not authorized to perform this operation. Encoded authorization failure message: 4GIOHlTkIaWHQD0Q0m6XSnuUMCm-abcdefghijklmn-abcdefghijklmn-abcdefghijklmn

디코딩된 메시지의 예:

$ aws sts decode-authorization-message --encoded-message 4GIOHlTkIaWHQD0Q0m6XSnuUMCm-abcdefghijklmn-abcdefghijklmn-abcdefghijklmn

{
    "DecodedMessage": 
"{\"allowed\":false,\"explicitDeny\":false,\"matchedStatements\":{\"items\":[]},\"failures\":{\"items\":[]},\"context\":{\"principal\":{\"id\":\"ABCDEFGHIJKLMNO\",\"name\":\"AWS-User\",
\"arn\":\"arn:aws:iam::accountID:user/test-user\"},\"action\":\"iam:PassRole\",
\"resource\":\"arn:aws:iam::accountID:role/EC2_instance_Profile_role\",\"conditions\":{\"items\":[{\"key\":\"aws:Region\",\"values\":{\"items\":[{\"value\":\"us-east-2\"}]}},
{\"key\":\"aws:Service\",\"values\":{\"items\":[{\"value\":\"ec2\"}]}},{\"key\":\"aws:Resource\",\"values\":{\"items\":[{\"value\":\"role/EC2_instance_Profile_role\"}]}},
{\"key\":\"iam:RoleName\",\"values\":{\"items\":[{\"value\":\"EC2_instance_Profile_role\"}]}},{\"key\":\"aws:Account\",\"values\":{\"items\":[{\"value\":\"accountID\"}]}},
{\"key\":\"aws:Type\",\"values\":{\"items\":[{\"value\":\"role\"}]}},{\"key\":\"aws:ARN\",\"values\":{\"items\":[{\"value\":\"arn:aws:iam::accountID:role/EC2_instance_Profile_role\"}]}}]}}}"
}

위의 오류 메시지는 AWS-User에게 arn:aws:iam::accountID:role/EC2_instance_Profile_role에 대해 iam:PassRole 작업을 수행할 권한이 없어 요청이 RunInstances를 호출하지 못했음을 나타냅니다.

4.    IAM 역할 또는 사용자와 연결된 IAM 정책을 편집하여 이전 단계에 나열된 누락된 필수 권한을 추가합니다.


관련 정보

EC2 인스턴스에서 AWS CLI 명령을 실행할 수 없는 이유는 무엇입니까?

EC2 인스턴스를 시작하거나 실행할 수 없는 이유는 무엇입니까?

AWS 공식
AWS 공식업데이트됨 2년 전