Issue

IAM 설정 후 ec2 인스턴스 목록에 접근할 수 없을 때

TTOII 2022. 4. 6. 17:24
728x90

root 계정에서 IAM 역할을 만들어 새로 생성하는 ec2에 부여한 뒤 터미널로 접속해 ec2 인스턴스 목록을 출력하려고 하니

다음과 같은 에러가 발생했다.

[ec2-user@ip-172-31-30-215 ~]$ aws ec2 describe-instances --region ap-northeast-2
An error occurred (UnauthorizedOperation) when calling the DescribeInstances operation: You are not authorized to perform this operation.

An error occurred (UnauthorizedOperation) when calling the DescribeInstances operation: You are not authorized to perform this operation.

 

해석해보면 DescribeInstances 작업을 호출할 때 오류(UnauthorizedOperation)가 발생했다. 이 작업을 수행할 권한이 없다. 

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

[ec2-user@ip-172-31-30-215 ~]$ aws sts decode-authorization-message --encoded-message encoded-message

또 다시 에러가 발생 !!

An error occurred (AccessDenied) when calling the DecodeAuthorizationMessage operation: User: arn:aws:sts::471702632719:assumed-role/allow_access_s3/i-058e63660c959ea12 is not authorized to perform: sts:DecodeAuthorizationMessage because no identity-based policy allows the sts:DecodeAuthorizationMessage action

 

다시 해석해보면

DecodeAuthorizationMessage 작업을 호출할 때 오류가 발생했습니다(AccessDenied).

사용자: arn:aws:sts::471702632719:assumed-role/allow_access_s3/i-058e63660c959ea12는 다음을 수행할 권한이 없습니다. sts:DecodestAuthorizationMessage는 ID가 없기 때문에 허용하지 않습니다. :DecodeAuthorizationMessage 작업

 

즉, DecodeAuthorizationMessage Policy가 없기 때문에 발생하는 문제였다. 

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:DecodeAuthorizationMessage",
            "Resource": "*"
        }
    ]
}

아래와 같이 JSON 형식으로 정책을 추가하고

 

앞서 만들어둔 allow_access_s3 역할에 정책을 연결해준다.

정책이 정상적으로 연결되었음을 확인할 수 있다.

 

그런데 다시 한번 명령을 실행해보니 또 다른 오류가 발생했다 ... ㅠㅠ

[ec2-user@ip-172-31-30-215 ~]$ aws ec2 describe-instances --region ap-northeast-2
An error occurred (UnauthorizedOperation) when calling the DescribeInstances operation: You are not authorized to perform this operation.
[ec2-user@ip-172-31-30-215 ~]$ aws sts decode-authorization-message --encoded-message encoded-message
An error occurred (InvalidAuthorizationMessageException) when calling the DecodeAuthorizationMessage operation: Message is not valid

An error occurred (InvalidAuthorizationMessageException) when calling the DecodeAuthorizationMessage operation: Message is not valid

 

허무맹랑하게도 ... 처음에 터미널로 ec2 인스턴스에 접속한 뒤 aws configure을 설정하지 않아서 발생한 에러였다.

아래 명령을 사용해 정보를 등록해주면 (참고로 마지막 항목인 출력 파일 형식을 table로 지정해주었다.)

aws configure

us-east-1 에 있는 내 ec2 인스턴스 정보를 조회할 수 있다.

728x90