ACL 구성

ACL 구성

이 주제에서는 Amazon S3 버킷과 객체에 access control list(ACL)를 설정하는 방법을 설명해요. ACL을 사용하기 전에 Object Ownership 설정을 확인해 ACL이 활성화되어 있는지 확인해야 해요. ACL이 비활성화된(Bucket owner enforced) 버킷에서는 ACL을 설정할 수 없어요.

참고

S3 Object Ownership이 Bucket owner enforced로 설정된 버킷은 ACL을 사용할 수 없어요. 이런 버킷에 ACL을 설정하려는 요청은 AccessControlListNotSupported 오류를 반환해요. ACL을 사용하려면 버킷의 Object Ownership 설정을 Bucket owner preferred 또는 Object writer로 변경해야 해요.

ACL 활성화 확인

버킷에서 ACL을 사용하려면 먼저 버킷의 Object Ownership 설정을 확인하세요. Bucket owner enforced로 설정되어 있으면 Bucket owner preferred 또는 Object writer로 변경해야 ACL을 설정할 수 있어요. 자세한 내용은 기존 버킷에 Object Ownership 설정을 참고하세요.

Amazon S3 콘솔에서 ACL 설정

버킷 ACL을 설정하려면

  1. AWS Management Console에 로그인하고 Amazon S3 콘솔을 https://console.aws.amazon.com/s3/에서 엽니다.
  2. Bucket name 목록에서 버킷 이름을 선택합니다.
  3. Permissions 탭을 선택합니다.
  4. Access Control List (ACL) 섹션에서 Edit를 선택합니다.
  5. 보안 주체(Grantee)별로 권한을 관리하고, Add grantee를 선택해 보안 주체를 추가할 수 있습니다. 각 보안 주체에 대해 부여할 권한(예: READ, WRITE, READ_ACP, WRITE_ACP, FULL_CONTROL)을 선택합니다.
  6. Save changes를 선택해 변경 사항을 저장합니다.

객체 ACL을 설정하려면

  1. Amazon S3 콘솔에서 객체가 들어 있는 버킷으로 이동합니다.
  2. 객체를 선택하고 Permissions 탭에서 Access Control List (ACL) 섹션의 Edit를 선택합니다.
  3. 보안 주체를 추가하거나 기존 보안 주체의 권한을 변경하고, Save changes를 선택합니다.

AWS CLI로 ACL 설정

다음 명령은 객체에 canned ACL을 설정합니다.

aws s3api put-object-acl --bucket amzn-s3-demo-bucket --key example.txt --acl public-read

다음 명령은 버킷에 canned ACL을 설정합니다.

aws s3api put-bucket-acl --bucket amzn-s3-demo-bucket --acl private

보안 주체별로 사용자 지정 권한을 부여하려면 --grant-read, --grant-write, --grant-full-control 매개 변수를 사용할 수 있어요.

aws s3api put-object-acl --bucket amzn-s3-demo-bucket --key example.txt \
  --grant-full-control id=CanonicalUserIDOfAccountB \
  --grant-read uri=http://acs.amazonaws.com/groups/global/AllUsers

REST API로 ACL 설정

주요 REST API 작업은 다음과 같아요.

  • PutBucketAcl – 버킷 ACL 설정.
  • GetBucketAcl – 버킷 ACL 가져오기.
  • PutObjectAcl – 객체 ACL 설정.
  • GetObjectAcl – 객체 ACL 가져오기.

x-amz-acl 요청 헤더를 사용해 업로드 시 canned ACL을 지정할 수도 있어요.

출처: 문서

본문

Configuring ACLs (ACL 구성)

Amazon S3 콘솔, AWS CLI, REST API로 버킷과 객체의 ACL을 설정하는 방법을 설명했어요. 먼저 Object Ownership이 Bucket owner enforced가 아닌지 확인해야 ACL을 설정할 수 있어요.

더 알아보기 (Learn more)