Amazon Simple Storage Service(Amazon S3) 버킷에서 퍼블릭 읽기 액세스를 허용하는 객체에 액세스하고 싶습니다. 하지만 403 Access Denied 오류가 발생합니다.
해결 방법
퍼블릭 S3 버킷의 객체에 액세스할 수 없는 경우, AWS Systems Manager에서 AAWSSupport-TroubleshootS3PublicRead 자동화 런북을 실행하세요. 이는 버킷 정책 및 객체 액세스 제어 목록(ACL)과 같이 버킷 및 객체에 영향을 주는 권한 설정을 분석하는 데 도움이 됩니다.
참고: AWSSupport-TroubleshootS3PublicRead 런북은 공개적으로 읽을 수 있는 객체의 403 오류를 분석합니다. 이는 프라이빗 객체에 대한 권한은 평가하지 않습니다.
- Systems Manager 콘솔을 엽니다.
- 탐색 창에서 자동화를 선택합니다.
- 자동화 실행을 선택합니다.
- 문서 선택에서 Amazon 소유 탭을 선택합니다.
- 자동화 문서 검색 창에 AWSSupport-TroubleshootS3PublicRead를 입력한 다음 Enter를 누릅니다.
- AWSSupport-TroubleshootS3PublicRead를 선택합니다.
- 자동화 실행을 선택합니다.
- 간단한 실행을 선택합니다.
- (선택 사항) AutomationAssumeRole의 경우 Systems Manager가 버킷에 요청을 전달하기 위해 사용할 AWS Identity and Access Management(IAM) 역할을 선택할 수 있습니다. 이 필드를 비워 두면 Systems Manager는 현재 IAM ID를 사용하여 런북을 설정합니다.
중요: 선택한 IAM 역할의 트러스트 정책은 Systems Manager Automation이 역할을 사용할 수 있도록 허용해야 합니다. 또한 IAM 역할에는 런북에 필요한 권한이 있어야 합니다. AWSSupport-TroubleshootS3PublicRead의 필수 IAM 권한 섹션을 참조하세요.
- S3BucketName에는 문제를 해결하려는 S3 버킷의 이름을 입력합니다.
- (선택 사항) S3PrefixName에는 분석할 접두사를 지정할 수 있습니다. 이 필드를 비워 두면 런북은 버킷을 나열하고 처음 몇 개의 객체를 사전순으로 평가합니다.
- (선택 사항) StartAfter에는 런북을 나열하기 시작할 키 이름을 지정할 수 있습니다.
- MaxObjects에는 런북이 평가할 최대 객체 수를 입력합니다. 기본값은 5입니다.
- IgnoreBlockPublicAccess에는 false로 값을 그대로 두는 것이 좋습니다.
경고: 값을 true로 변경하면 액세스를 차단할 수 있는 Amazon S3 퍼블릭 액세스 차단 설정이 무시됩니다.
- 런북이 각 객체에 대해 부분 HTTP GET 요청(첫 번째 바이트)을 수행하도록 하려면 HttpGet의 값을 true로 유지합니다. 런북이 전체 GET 요청을 수행하도록 하려면 값을 false로 바꿉니다.
- Verbose에는 분석 중에 자세한 정보를 보려면 true를 입력합니다. 경고 및 오류 메시지만 보려면 false를 입력합니다.
- (선택 사항) CloudWatchLogGroupName에는 분석 결과를 전송할 Amazon CloudWatch 로그 그룹 이름을 입력할 수 있습니다. 이름을 지정했는데 로그 그룹이 존재하지 않으면 런북은 해당 이름으로 로그 그룹을 생성하려고 시도합니다.
- (선택 사항) CloudWatchLogStreamName에는 분석 결과를 전송할 CloudWatch 로그 스트림 이름을 입력할 수 있습니다. 이름을 지정했는데 로그 그룹이 존재하지 않으면 런북은 해당 이름으로 로그 그룹을 생성하려고 시도합니다. 이 필드를 비워 두면 런북은 런북의 실행 ID를 로그 스트림 이름으로 사용합니다.
- ResourcePartition에서는 S3 버킷이 있는 파티션을 선택합니다. 옵션으로는 aws, aws-us-gov 또는 aws-cn이 있습니다.
- (선택 사항) Tags에는 키-값 쌍 태그를 최대 5개까지 입력합니다.
- 실행을 선택합니다.
- 실행 상태를 사용하여 런북의 진행 상황을 추적합니다.
- 상태가 성공으로 표시되면 출력에 나열된 결과를 검토합니다. 런북이 평가한 각 객체에 대한 오류 코드가 결과에 포함될 수 있습니다. 이러한 오류 코드를 각 객체의 익명 요청에 대한 Access Denied 오류의 원인을 진단하는 데 사용하세요.
팁: 평가에서 개별 단계의 결과를 검토하려면 실행된 단계에서 관련 단계 ID를 선택합니다. 실행된 단계는 실행 상태 아래에 있습니다.