AWS
[AWS][IAM] 권한 액세스 거부 또는 승인되지 않은 오류 확인 방법
Always-Try
2022. 1. 24. 10:44
https://aws.amazon.com/ko/premiumsupport/knowledge-center/troubleshoot-iam-permission-errors/
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 이외에 모든 에러를 확인하려면 이 부분을 삭제