공용 액세스 허용

데이터를 공유해야 하는 경우가 있습니다. 버킷은 학술 및 개인 연구를 위한 공개 데이터 세트 또는 웹 애플리케이션 및 컨텐츠 전달 네트워크에서 사용하는 이미지 저장소를 포함할 수 있습니다. 공용 액세스 그룹을 사용하여 이러한 버킷을 액세스 가능하도록 설정하십시오.

버킷에 대한 공용 액세스에 사용할 수 있는 세 가지 IAM 역할 ( Administrator, ContentReader 및 ObjectReader) 이 있습니다. 이들 사이의 차이점은 Administrator 및 ContentReader 가 버킷의 오브젝트를 나열할 수 있다는 것입니다. 이는 오브젝트를 읽는 것 외에도 쉽게 나열해야 하는 애플리케이션 (예: 웹 UI) 에 유용합니다. 자세한 정보는 IAM 참조 문서 를 참조하십시오.

EII(외부 ID 격리)가 Limited 로 설정된 경우 익명 요청에 계정 ID가 없고 ID 일치 요구 사항을 충족할 수 없기 때문에 공개 액세스가 실패합니다.

콘솔을 사용한 공용 액세스 설정

먼저 버킷이 있는지 확인하십시오. 없는 경우에는 시작하기 튜토리얼을 수행하여 콘솔 사용법을 숙지하십시오.

공용 액세스 사용

버킷에 대한 공개 액세스를 활성화하려면 먼저 계정 수준에서 ‘공개 액세스’ 그룹이 활성화되어 있어야 합니다. 계정 소유자 또는 IAM 액세스 그룹 관리자 역할을 가진 사용자만 이 설정을 변경할 수 있습니다. 이를 확인하거나 활성화하려면 [관리] > [액세스(IAM)] > [설정] 으로 이동하여 ‘공개 액세스’가 ‘사용’ 으로 설정되어 있는지 확인하십시오. 이 계정 수준 설정이 비활성화된 경우, 아래에 설명된 버킷 수준 제어 기능은 적용되지 않습니다.

  1. IBM Cloud 콘솔 대시보드에서 스토리지를 선택하여 리소스 목록을 보십시오.
  2. 그런 다음 스토리지 메뉴 내에서 버킷이 있는 서비스 인스턴스를 선택하십시오. 이렇게 하면 Object Storage 콘솔로 이동합니다.
  3. 공용으로 액세스할 수 있도록 할 버킷을 선택하십시오. 이 정책에 따라 버킷에 포함된 모든 객체는 적절한 URL 권한을 가진 사람이라면 누구나 다운로드할 수 있다는 점을 유의하시기 바랍니다.
  4. 버킷 탐색 탭 중에서 ‘권한’ 탭을 선택합니다.
  5. '공개 액세스 ' 섹션으로 스크롤한 다음 '액세스 정책 생성'을 클릭하세요.
  6. 경고를 읽은 후 사용을 선택하십시오.
  7. 이제 이 버킷에 있는 모든 오브젝트에 공용으로 액세스할 수 있습니다.

공용 액세스 사용 안함

  1. IBM Cloud 콘솔의 어느 위치에서든 관리 메뉴를 선택하고 **액세스(IAM)**를 선택하십시오.
  2. 탐색 메뉴에서 액세스 그룹을 선택하십시오.
  3. 공용 액세스를 선택하여 현재 사용 중인 모든 공용 액세스 정책의 목록을 보십시오.
  4. 액세스 제어를 다시 적용할 버킷에 대응하는 정책을 찾으십시오.
  5. 정책 항목의 맨 오른쪽에 있는 조치 목록에서 제거를 선택하십시오.
  6. 대화 상자를 확인하고 나면 해당 정책이 버킷에서 제거됩니다.

개별 오브젝트에 대한 공용 액세스 허용

REST API를 통해 오브젝트를 공용으로 액세스할 수 있도록 하려는 경우에는 요청에 x-amz-acl: public-read 헤더를 포함시킬 수 있습니다. 이 헤더를 설정하면 모든 IAM 정책 확인이 무시되며 인증되지 않은 HEAD 및 GET 요청이 가능해집니다. 엔드포인트에 대한 자세한 정보는 엔드포인트 및 스토리지 위치를 참조하십시오.

또한 HMAC 인증 정보는 사전 서명된 URL을 사용하는 임시 공용 액세스 허용을 가능하게 합니다.

공용 오브젝트 업로드

curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}" \
     -H "x-amz-acl: public-read" \
     -H "Authorization: Bearer {token}" \
     -H "Content-Type: text/plain; charset=utf-8" \
     -d "{object-contents}"

기존 오브젝트에 대한 공용 액세스 허용

페이로드가 없는 ?acl 매개변수와 x-amz-acl: public-read 헤더를 사용하면 데이터를 겹쳐쓰지 않으면서 오브젝트에 대한 공용 액세스를 허용합니다.

curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}?acl" \
     -H "x-amz-acl: public-read" \
     -H "Authorization: Bearer {token}"

공용 오브젝트를 다시 개인용으로 설정

페이로드가 없는 ?acl 조회 매개변수와 비어 있는 x-amz-acl: 헤더를 사용하면 데이터를 겹쳐쓰지 않으면서 오브젝트에 대한 공용 액세스를 취소합니다.

curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}?acl" \
     -H "Authorization: Bearer {token}" \
     -H "x-amz-acl:"

정적 웹 사이트

IBM Cloud Object Storage 는 자동 정적 웹사이트 호스팅을 지원하지 않지만, 웹 서버를 수동으로 구성하여 버킷에 호스팅된 콘텐츠를 일반에 공개할 수 있습니다. 자세한 정보는 정적 웹 사이트 옵션의 개요 를 참조하십시오.