AWS

[AWS][IAM] 권한 액세스 거부 또는 승인되지 않은 오류 확인 방법

Always-Try 2022. 1. 24. 10:44

https://aws.amazon.com/ko/premiumsupport/knowledge-center/troubleshoot-iam-permission-errors/

 

IAM 권한에 대한 Access Denied 또는 Unauthorized 오류 문제 해결

AWS 리소스에 액세스하려고 하는데 "Access Denied" 또는 "Unauthorized" 오류가 발생했습니다. AWS Identity and Access Management(IAM) 사용자의 권한 문제를 해결하려면 어떻게 해야 합니까?

aws.amazon.com

https://www.youtube.com/watch?v=hZYs_rG3fL4 

 

AWS Athena 쿼리 사용하는 방법과 Athena를 사용하지 못할 때, AWS CLI에서 cloudtrail 로그를 직접 쿼리하는 2가지 방식이 존재한다. 본 포스팅에서는 AWS Athena 쿼리 사용하는 방법을 소개한다.

 

먼저 CloudTrail에서 로그가 저장되는 S3 버킷명을 확인

 

이후 이벤트 기록에서 Athena 테이블 생성을 클릭

 

아까 확인한 버킷명으로 테이블 생성

 

AWS Athena 콘솔로 이동

 

쿼리 편집기 실행

SELECT from_iso8601_timestamp(eventTime) AS "Time", useridentity.arn AS "Identity ARN", eventID AS "Event ID",
         eventsource AS "Service", eventname AS "Action", errorCode AS "Error", errorMessage AS "Message"
FROM your-table
WHERE from_iso8601_timestamp(eventtime) >= from_iso8601_timestamp('2019-10-29T06:40:00Z')
        AND from_iso8601_timestamp(eventtime) < from_iso8601_timestamp('2019-10-29T06:55:00Z')
        AND userIdentity.arn = 'your-arn'
        AND eventType = 'AwsApiCall'
        AND errorCode is not null
        AND (lower(errorCode) LIKE '%accessdenied%' OR lower(errorCode) LIKE '%unauthorized%')
ORDER BY eventTime desc

 

결과 확인

 

혹시 위 결과에서 만족할만한 결과를 얻지 못했다면 아래 순서로 조건을 하나씩 지워보는 것을 추천한다.

AND userIdentity.arn = 'your-arn'   -> 타 계정의 에러도 확인

 

AND (lower(errorCode) LIKE '%accessdenied%' OR lower(errorCode) LIKE '%unauthorized%')  -> Access Deny 이외에 모든 에러를 확인하려면 이 부분을 삭제