PutBucketACL

개요

제공되는 파라미터와 함께 버킷에 PUT 요청을 보내면 요청한 버킷에 적용할 접근 제어 목록(ACL)을 생성하거나 기존 ACL을 수정합니다.
ACL을 적용하면 계정의 ID나 미리 만들어진 ACL(기본 ACL)을 사용하여 스토리지 계정별로 다른 권한 집합을 부여할 수 있습니다.

네이버 클라우드 플랫폼 Object Storage 서비스를 이용 중인 회원을 대상으로 버킷과 오브젝트에 접근 권한을 부여할 수 있습니다.

네이버 클라우드 플랫폼 Object Storage 이용신청을 완료한 회원은 Object Storage에서 사용할 수 있는 ID가 발급됩니다.
이 ID는 버킷과 오브젝트의 접근 권한을 설정할 때 사용됩니다.

또한 인증없이 접근 가능하도록 public-read, public-write 권한 설정도 가능합니다.

다음 표는 권한 종류와 해당 권한이 부여된 경우 가능한 오퍼레이션을 설명합니다.

권한 버킷에 부여된 경우 오브젝트에 부여된 경우
READ 버킷에 속한 오브젝트 목록 조회가 가능합니다. 오브젝트 데이터와 메타데이터의 읽기가 가능합니다.
WRITE 새 오브젝트를 생성하거나 기존 오브젝트의 덮어쓰기 또는 삭제가 가능합니다. N/A
READ_ACP 버킷의 ACL 조회가 가능합니다. 오브젝트의 ACL 조회가 가능합니다.
WRITE_ACP 버킷의 ACL 설정이 가능합니다. 오브젝트의 ACL 설정이 가능합니다.
FULL_CONTROL READ, WRITE, READ_ACP, WRITE_ACP 권한으로 가능한 모든 오퍼레이션을 수행할 수 있습니다. READ, READ_ACP, WRITE_ACP 권한으로 가능한 모든 오퍼레이션을 수행할 수 있습니다.

다음 표는 NCP 오브젝트 스토리지에서 지원하는 기본 ACL을 설명합니다. 이 표에 언급되지 않은 값은 지원되지 않습니다.

기본 ACL 적용 대상 설명
private 버킷, 오브젝트 소유자에게 FULL_CONTROL 권한을 부여합니다. (default)
public-read 버킷, 오브젝트 소유자에게 FULL_CONTROL 권한을 부여하고, 모든 사용자에게 READ 권한을 부여합니다.
public-read-write 버킷, 오브젝트 소유자에게 FULL_CONTROL 권한을 부여하고, 모든 사용자에게 READ와 WRITE 권한을 부여합니다.
authenticated-read 버킷, 오브젝트 소유자에게 FULL_CONTROL 권한을 부여하고, 인증된 사용자에게 READ 권한을 부여합니다.

public-read를 포함하여 READ 권한이 버킷에 적용된 경우에는 오브젝트를 조회만 할 수 있을 뿐 오브젝트 자체에는 접근할 수 없습니다.

요청

구문

PUT https://{endpoint}/{bucket-name}?acl= # path style
PUT https://{bucket-name}.{endpoint}?acl= # virtual host style

예시

요청 예시(기본 ACL)

다음은 이름이 ‘apiary’인 버킷에 public-read 권한 부여를 요청하는 예입니다. 해당 권한이 부여되면 스토리지 계정을 사용하는 모든 사용자가 해당 버킷의 내용과 ACL 상세 정보를 확인할 수 있습니다.

PUT /apiary?acl= HTTP/1.1
Authorization: {authorization-string}
x-amz-date: 20161011T190354Z
x-amz-acl: public-read
Host: kr.object.ncloudstorage.com

응답 예시

HTTP/1.1 200 OK
Date: Tue, 4 Oct 2016 19:03:55 GMT
Accept-Ranges: bytes
x-amz-request-id: 73d3cd4a-ff1d-4ac9-b9bb-43529b11356a
Content-Length: 0

요청 예시(사용자 정의 ACL)

다음은 다른 계정을 사용했을 때 이름이 ‘apiary’인 버킷에 적용된 ACL을 확인할 수는 있지만 버킷에 저장된 오브젝트는 조회할 수 없도록 요청하는 예입니다. 참고로 세 번째 계정에는 모든 권한이 부여되어 있으므로 동일한 버킷 내에서는 모든 오퍼레이션을 수행할 수 있습니다. 시스템에 인증된 사용자는 모두 버킷에 있는 오브젝트를 조회할 수 있습니다.

PUT /apiary?acl= HTTP/1.1
Authorization: {authorization-string}
x-amz-date: 20161011T190354Z
Host: kr.object.ncloudstorage.com
<?xml version="1.0" encoding="UTF-8"?>
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Owner>
    <ID>{owner-user-id}</ID>
    <DisplayName>{owner-user-id}</DisplayName>
  </Owner>
  <AccessControlList>
    <Grant>
      <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
        <ID>{first-grantee-user-id}</ID>
        <DisplayName>{first-grantee-user-id}</DisplayName>
      </Grantee>
      <Permission>READ_ACP</Permission>
    </Grant>
    <Grant>
      <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
        <ID>{second-grantee-user-id}</ID>
        <DisplayName>{second-grantee-user-id}</DisplayName>
      </Grantee>
      <Permission>FULL_CONTROL</Permission>
    </Grant>
  </AccessControlList>
</AccessControlPolicy>

응답 예시

HTTP/1.1 200 OK
Date: Tue, 4 Oct 2016 19:03:55 GMT
Accept-Ranges: bytes
x-amz-request-id: 73d3cd4a-ff1d-4ac9-b9bb-43529b11356a