다른 계정의 버킷을 쿼리할 때 Amazon Athena에서 AmazonS3Exception "Access Denied with Status Code: 403"이 표시되는 이유는 무엇인가요?
최종 업데이트 날짜: 2021년 7월 22일
Amazon Athena를 사용하여 다른 계정에 있는 Amazon Simple Storage Service(Amazon S3) 버킷의 객체를 쿼리하고 있습니다. 버킷의 일부 객체는 세 번째 계정이 소유합니다. 쿼리를 실행할 때 AmazonS3Exception "Access Denied with Status Code: 403"이 표시됩니다.
간략한 설명
이 오류는 일반적으로 AWS CloudTrail, Amazon CloudFront 및 Amazon Virtual Private Cloud(Amazon VPC)와 같은 다른 AWS 서비스에서 작성한 로그를 쿼리하려고 할 때 발생합니다. 이러한 서비스는 Amazon S3에 이벤트를 기록합니다. 버킷 소유자는 S3 객체에 대한 모든 액세스 권한을 가집니다. 두 번째 계정은 버킷 또는 객체를 소유하지 않습니다. 이러한 S3 객체를 참조하는 Athena 테이블을 쿼리할 때 두 번째 계정이 액세스 거부 오류를 수신하는 이유입니다.
해결 방법
Amazon S3 객체의 소유권은 이전할 수 없습니다. 대신, 다음 옵션 중 하나를 선택합니다.
- Athena 계정에서 버킷과 객체 모두에 액세스할 수 있는 AWS Identity and Access Management(IAM) 역할을 맡습니다. 자세한 내용은 자습서: IAM 역할을 사용한 AWS 계정 간 액세스 권한 위임을 참조하세요.
- 다른 AWS 계정에서 S3 객체를 복사하려면 어떻게 해야 하나요?의 지침에 따라 Athena 계정의 버킷에 객체를 복사합니다. 그런 다음 불필요한 요금이 부과되지 않도록 대상 버킷에서 중복되거나 불필요한 객체를 삭제합니다.