Amazon S3 버킷에서 sync 명령을 실행할 때 ListObjects 또는 ListObjectsV2 작업에 대해 액세스 거부 오류가 발생하는 이유는 무엇입니까?

최종 업데이트 날짜: 2020년 5월 29일

aws s3 sync 명령을 실행하여 로컬 시스템의 디렉터리와 접두사를 Amazon Simple Storage Service(Amazon S3) 버킷으로 복사하거나 한 버킷에서 다른 버킷으로 복사하려고 합니다. 하지만 작업 중에 ListObjects 또는 ListObjectsV2 작업에 대한 액세스 거부 오류가 발생합니다. 이 문제를 해결하려면 어떻게 해야 합니까?

​해결 방법

객체를 복사하려는 Amazon S3 버킷에서 s3:ListBucket에 대한 권한이 있는지 확인합니다. ListObjects 또는 ListObjectsV2 작업을 수행하려면 이 권한이 있어야 합니다.

참고: s3:ListBucket은 사용자가 버킷의 객체를 나열하도록 허용하는 권한의 이름입니다. ListObjects 또는 ListObjectsV2는 버킷의 객체를 나열하는 API 호출의 이름입니다.

AWS Identity and Access Management(IAM) 사용자 또는 역할이 버킷과 동일한 AWS 계정에 속하는 경우 IAM 정책 또는 버킷 정책이 s3:ListBucket 작업을 사용하도록 허용하는지 확인합니다. 동일한 계정에 속하는 경우 IAM 정책과 버킷 정책이 모두 s3:ListBucket을 허용할 필요는 없습니다. 그중 하나만 작업을 허용하면 됩니다.

중요: IAM 정책 또는 버킷 정책이 이미 s3:ListBucket 작업을 허용하는 경우 다른 정책에서 작업을 명시적으로 거부하는 명령문이 있는지 확인합니다. 명시적 deny 문은 allow 문을 재정의합니다.

IAM 사용자 또는 역할이 S3 버킷과 다른 계정에 속하는 경우 IAM 정책과 버킷 정책 모두에서 s3:ListBucket에 대한 권한이 있어야 합니다.

다음은 s3:ListBucket에 대한 액세스 권한을 부여하는 IAM 정책 예제입니다.

{
  "Version": "2012-10-17",
  "Statement": [{
    "Sid": "Stmt1546506260896",
    "Action": "s3:ListBucket",
    "Effect": "Allow",
    "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET"
  }]
}

다음은 사용자에게 s3:ListBucket에 대한 arn:aws:iam::123456789012:user/testuser 액세스 권한을 부여하는 버킷 정책 예제입니다.

{
  "Id": "Policy1546414473940",
  "Version": "2012-10-17",
  "Statement": [{
    "Sid": "Stmt1546414471931",
    "Action": "s3:ListBucket",
    "Effect": "Allow",
    "Resource": "arn:aws:s3:::AWSDOC-EXAMPLE-BUCKET",
    "Principal": {
      "AWS": [
        "arn:aws:iam::123456789012:user/testuser"
      ]
    }
  }]
}

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?