개별 버킷에 대한 액세스 지정
UI 또는 CLI를 통해 정책을 작성하여 버킷에 대한 사용자 및 서비스 ID의 액세스 역할을 지정하십시오.
| 액세스 역할 | 예제 조치 |
|---|---|
| 관리자 | 오브젝트를 공용으로 설정, 버킷 및 오브젝트 작성 및 영구 삭제 |
| 작성자 | 버킷 및 오브젝트 작성 및 영구 삭제 |
| 독자 | 버킷을 나열하고, 오브젝트를 나열하고, 오브젝트를 다운로드합니다. |
| Content Reader | 오브젝트 나열 및 다운로드 |
| 오브젝트 독자 | 오브젝트 다운로드 |
| 오브젝트 작성자 | 오브젝트 업로드 |
사용자에게 액세스 부여
사용자가 콘솔을 사용해야 하고 인스턴스 내의 모든 버킷 목록을 볼 수 있는 경우 사용자 정의 플랫폼 액세스 역할을 사용할 수 있습니다. 이를 통해 특정 버킷의 컨텐츠만 볼 수 있습니다. 사용자가 다른 버킷의 이름을 읽는 것이 적절하지 않은 경우 API를 사용하여 사용자 정의 포털 또는 다른 사용자 인터페이스를 디자인하고 구현해야 합니다.
사용자가 API를 사용하여 데이터와 상호작용하고 콘솔 액세스가 필요하지 않으며 계정의 구성원인 경우, 기본 역할을 사용하여 부모 인스턴스에 대한 액세스 권한 없이 단일 버킷에 대한 액세스 권한을 부여할 수 있습니다.
정책 적용
IAM 정책은 가장 큰 액세스 레벨에서 가장 제한적인 액세스 레벨로, 계층식으로 적용됩니다. 충돌은 정책을 좀 더 허용하면 해결됩니다. 예를 들어, 사용자가 버킷에 대한 Writer 및 Reader 서비스 액세스 역할을 모두 보유하고 있는 경우 Reader 역할을 부여하는 정책은 무시됩니다.
이는 서비스 인스턴스 및 버킷 레벨 정책에도 해당됩니다.
- 사용자가 서비스 인스턴스에 대한
Writer역할과 단일 버킷에 대한Reader역할을 부여하는 정책을 보유하고 있는 경우 버킷 레벨 정책은 무시됩니다. - 사용자가 서비스 인스턴스에 대한
Reader역할과 단일 버킷에 대한Writer역할을 부여하는 정책을 보유하고 있는 경우 두 정책이 모두 적용되고 더욱 허용적인Writer역할이 개별 버킷에 대해 우선시됩니다.
단일 버킷(또는 버킷 집합)에 대한 액세스를 제한해야 하는 경우 콘솔 또는 CLI를 사용하여 사용자 또는 서비스 ID에 다른 인스턴스 수준 정책이 없는지 확인하세요.
자세히 알아보려면 리소스 구성 및 액세스 지정을 위한 우수 사례 를 참조하십시오.
사용자에 대한 새 정책 작성
새 버킷 레벨 정책을 작성하려면 다음 작업을 수행하십시오.
- 관리 메뉴에서 액세스(IAM) 콘솔로 이동하십시오.
- 왼쪽 탐색 메뉴에서 사용자를 선택하십시오.
- 사용자를 선택하십시오.
- 액세스 정책 탭을 선택하여 사용자의 기존 정책을 보거나, 새 정책을 지정하거나, 기존 정책을 편집하십시오.
- 액세스 권한 지정을 클릭하여 새 정책을 작성하십시오.
- 리소스에 대한 액세스 권한 지정을 선택하십시오.
- 먼저 서비스 메뉴에서 Cloud Object Storage를 선택하십시오.
- 그런 다음 적절한 서비스 인스턴스를 선택하십시오.
bucket리소스 유형** 필드에 **을 입력하고 리소스 ID 필드에 버킷 이름을 입력하십시오. - 원하는 서비스 액세스 역할을 선택하십시오. 그림 1의 "Content Reader" 에 대한 예와 같이 여러 조치가 있는 복수를 선택하면 역할에 사용할 수 있는 조치가 표시된다.
- 지정 을 클릭하십시오.
리소스 유형 또는 리소스 필드를 비워 두면 인스턴스 레벨 정책이 작성된다는 점을 참고하십시오.
사용자 CLI 명령에 대한 새 정책 작성
터미널에서 다음 명령을 실행하십시오.
ibmcloud iam user-policy-create <user-name> \
--roles <role> \
--service-name cloud-object-storage \
--service-instance <resource-instance-id> \
--resource-type bucket \
--resource <bucket-name>
기존 정책을 나열하려면 다음 명령을 실행하십시오.
ibmcloud iam user-policies <user-name>
기존 정책을 편집하려면 다음을 수행하십시오.
ibmcloud iam user-policy-update <user-name> <policy-id> \
--roles <role> \
--service-name cloud-object-storage \
--service-instance <resource-instance-id> \
--resource-type bucket \
--resource <bucket-name>
서비스 ID에 액세스 부여
애플리케이션이나 기타 사람이 아닌 단체에 버킷에 대한 액세스 권한을 부여해야 하는 경우에는 서비스 ID를 사용하세요. 이러한 서비스 ID는 이 목적을 위해 특별히 작성된 것이거나, 이미 사용 중인 기존 서비스 ID일 수 있습니다.
사용자에 대한 새 정책 작성
- 관리 메뉴에서 액세스(IAM) 콘솔로 이동하십시오.
- 왼쪽 탐색 메뉴에서 서비스 ID를 선택하십시오.
- 서비스 ID를 선택하여 기존 정책을 보거나, 새 정책을 지정하거나, 기존 정책을 편집하십시오.
- 서비스 인스턴스, 서비스 ID 및 원하는 역할을 선택하십시오.
bucket리소스 유형** 필드에 **을 입력하고 리소스 필드에 버킷 이름을 입력하십시오.- 제출을 클릭하십시오.
리소스 유형 또는 리소스 필드를 비워 두면 인스턴스 레벨 정책이 작성된다는 점을 참고하십시오.
서비스 ID에 대한 새 정책 만들기
터미널에서 다음 명령을 실행하십시오.
ibmcloud iam service-policy-create <service-id-name> \
--roles <role> \
--service-name cloud-object-storage \
--service-instance <resource-instance-id> \
--resource-type bucket \
--resource <bucket-name>
기존 정책을 나열하려면 다음 명령을 실행하십시오.
ibmcloud iam service-policies <service-id-name>
기존 정책을 편집하려면 다음을 수행하십시오.
ibmcloud iam service-policy-update <service-id-name> <policy-id> \
--roles <role> \
--service-name cloud-object-storage \
--service-instance <resource-instance-id>
--resource-type bucket \
--resource <bucket-name>