이 페이지에서는 관리형 폴더에서 Identity and Access Management(IAM) 정책을 설정하는 방법을 설명하므로 버킷 내의 특정 객체 그룹에 대한 세부적인 액세스 제어를 얻을 수 있습니다.
다른 액세스 제어 방법을 찾고 있는 경우 다음 리소스를 참조하세요.
전체 버킷 및 버킷 내의 객체에 대한 액세스를 제어하는 방법은 버킷에 대한 IAM 정책 설정 및 관리를 참조하세요.
버킷의 개별 객체에 대한 액세스를 제어하는 다른 방법은 액세스 제어 목록을 참조하세요.
Cloud Storage 리소스에 대한 액세스 제어에 대한 자세한 내용은 액세스 제어 개요를 참조하세요.
필요한 역할
관리 폴더에 대한 IAM 정책을 설정하고 관리하는 데 필요한 권한을 얻으려면 관리자에게 관리 폴더가 포함된 버킷의 스토리지 폴더 관리자(roles/storage.folderAdmin
) IAM 역할을 부여해 달라고 요청하세요.
이 역할에는 관리 폴더의 IAM 정책을 설정하고 관리하는 데 필요한 다음 권한이 포함되어 있습니다.
storage.managedfolders.getIamPolicy
storage.managedfolders.setIamPolicy
커스텀 역할로도 이러한 권한을 얻을 수 있습니다.
버킷의 역할 부여에 대한 자세한 내용은 버킷에 대한 IAM 정책 설정 및 관리를 참조하세요.
관리 폴더에 IAM 정책 설정
Console
- Google Cloud 콘솔에서 Cloud Storage 버킷 페이지로 이동합니다.
버킷 목록에서 IAM 정책을 설정하려는 관리 폴더가 포함된 버킷의 이름을 클릭합니다.
버킷 세부정보 페이지의 IAM 정책을 설정하려는 관리형 폴더 옆에 있는 폴더 브라우저 창에서 옵션 더보기 아이콘
을 클릭합니다.액세스를 제어하려는 폴더가 시뮬레이션된 폴더이면 먼저 관리형 폴더 만들기의 단계를 수행하여 시뮬레이션된 폴더를 관리형 폴더로 변환합니다.
액세스 수정을 클릭합니다.
MANAGED_FOLDER_NAME
권한 창에서 주 구성원 추가 를 클릭합니다.새 주 구성원 필드에 액세스 권한을 부여할 주 구성원을 입력합니다. 포함할 수 있는 주 구성원에 대한 자세한 내용은 주 구성원 식별자를 참조하세요.
역할 할당 섹션에서 역할 선택 드롭다운을 사용하여 주 구성원에게 부여할 액세스 권한 수준을 지정합니다.
저장을 클릭합니다.
명령줄
다음 정보를 포함하는 JSON 파일을 만듭니다.
{ "bindings":[ { "role": "IAM_ROLE", "members":[ "PRINCIPAL_IDENTIFIER" ] } ] }
각 항목의 의미는 다음과 같습니다.
gcloud storage managed-folders set-iam-policy
명령어를 사용합니다.gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME POLICY_FILE
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 IAM 정책을 적용하려는 관리 폴더가 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.MANAGED_FOLDER_NAME
은 IAM 정책을 적용하려는 관리 폴더의 이름입니다. 예를 들면my-managed-folder/
입니다.POLICY_FILE
은 1단계에서 만든 JSON 파일의 경로입니다.
REST API
JSON
Authorization
헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.또는 OAuth 2.0 Playground를 사용하여 액세스 토큰을 만들고
Authorization
헤더에 포함할 수 있습니다.다음 정보를 포함하는 JSON 파일을 만듭니다.
{ "bindings":[ { "role": "IAM_ROLE", "members":[ "PRINCIPAL_IDENTIFIER" ] } ] }
각 항목의 의미는 다음과 같습니다.
cURL
을 사용하여PUT setIamPolicy
요청으로 JSON API를 호출합니다.curl -X PUT --data-binary @POLICY_FILE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
각 항목의 의미는 다음과 같습니다.
POLICY_FILE
은 이전 단계에서 만든 JSON 정책 파일의 경로입니다.BUCKET_NAME
은 IAM 정책을 적용하려는 관리 폴더가 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.MANAGED_FOLDER_NAME
은 주 구성원에게 액세스 권한을 부여할 관리 폴더의 이름입니다. 예를 들면my-managed-folder/
입니다.
관리 폴더의 IAM 정책 보기
Console
- Google Cloud 콘솔에서 Cloud Storage 버킷 페이지로 이동합니다.
버킷 목록에서 IAM 정책을 보려는 관리형 폴더가 포함된 버킷의 이름을 클릭합니다.
버킷 세부정보 페이지의 IAM 정책을 보려는 관리형 폴더 옆에 있는 폴더 브라우저 창에서 옵션 더보기 아이콘
을 클릭합니다.액세스 수정을 클릭합니다.
FOLDER_NAME
권한 창에는 주 구성원, 역할, 상속된 역할, IAM 조건을 포함하여 관리형 폴더에 대한 권한이 표시됩니다.
명령줄
gcloud storage managed-folder get-iam-policy
명령어를 사용합니다.
gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 IAM 정책을 보려는 관리 폴더가 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.MANAGED_FOLDER_NAME
은 IAM 정책을 보려는 관리 폴더의 이름입니다. 예를 들면my-managed-folder/
입니다.
REST API
JSON
Authorization
헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.또는 OAuth 2.0 Playground를 사용하여 액세스 토큰을 만들고
Authorization
헤더에 포함할 수 있습니다.cURL
을 사용하여GET getIamPolicy
요청으로 JSON API를 호출합니다.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 IAM 정책을 보려는 관리 폴더가 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.MANAGED_FOLDER_NAME
은 IAM 정책을 보려는 관리 폴더의 이름입니다. 예를 들면my-managed-folder/
입니다.
관리 폴더 정책에서 주 구성원 삭제
Console
- Google Cloud 콘솔에서 Cloud Storage 버킷 페이지로 이동합니다.
버킷 목록에서 IAM 정책을 보려는 관리형 폴더가 포함된 버킷의 이름을 클릭합니다.
버킷 세부정보 페이지의 주 구성원을 삭제하려는 관리형 폴더 옆에 있는 폴더 브라우저 창에서 옵션 더보기 아이콘
을 클릭합니다.액세스 수정을 클릭합니다.
FOLDER_NAME
권한 창의 필터 필드에 주 구성원 이름을 입력합니다.삭제 아이콘
을 클릭하여 주 구성원을 삭제합니다.
Cloud Storage가 관리형 폴더에서 주 구성원을 삭제합니다.
명령줄
gcloud storage managed-folder remove-iam-policy-binding
명령어를 사용합니다.
gcloud storage managed-folders remove-iam-policy-binding gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 액세스 권한을 취소하려는 관리 폴더가 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.MANAGED_FOLDER_NAME
은 IAM 정책을 삭제하려는 관리 폴더의 이름입니다. 예를 들면my-managed-folder/
입니다.PRINCIPAL_IDENTIFIER
는 액세스 권한을 취소할 사용자를 식별합니다. 예를 들면user:jane@gmail.com
입니다. 주 구성원 식별자 형식 목록은 주 구성원 식별자를 참조하세요.IAM_ROLE
은 취소할 IAM 역할입니다. 예를 들면roles/storage.objectViewer
입니다.
REST API
JSON
Authorization
헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.또는 OAuth 2.0 Playground를 사용하여 액세스 토큰을 만들고
Authorization
헤더에 포함할 수 있습니다.관리 폴더에 적용된 기존 정책을 가져옵니다. 이렇게 하려면
cURL
을 사용하여GET getIamPolicy
요청으로 JSON API를 호출합니다.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 액세스 권한을 취소하려는 관리 폴더가 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.MANAGED_FOLDER_NAME
은 IAM 정책을 삭제하려는 관리 폴더의 이름입니다. 예를 들면my-managed-folder/
입니다.
이전 단계에서 검색한 정책을 포함하는 JSON 파일을 만듭니다.
JSON 파일을 편집하여 정책에서 주 구성원을 삭제합니다.
cURL
을 사용하여PUT setIamPolicy
요청으로 JSON API를 호출합니다.curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
각 항목의 의미는 다음과 같습니다.
JSON_FILE_NAME
은 3단계에서 만든 파일의 경로입니다.BUCKET_NAME
은 액세스 권한을 취소하려는 관리 폴더가 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.MANAGED_FOLDER_NAME
은 IAM 정책을 삭제하려는 관리 폴더의 이름입니다. 예를 들면my-managed-folder/
입니다.
관리 폴더에 IAM 조건 사용
다음 섹션에서는 관리 폴더에 IAM 조건을 추가하고 삭제하는 방법을 보여줍니다. 관리 폴더의 IAM 조건을 보려면 관리 폴더에 대한 IAM 정책 보기를 참조하세요. Cloud Storage에 IAM 조건 사용에 대한 자세한 내용은 조건을 참조하세요.
관리 폴더에 조건을 추가하기 전에 버킷에 균일한 버킷 수준 액세스를 사용 설정해야 합니다.
관리 폴더에 새 조건 설정
명령줄
조건
title
, 조건에 대한 속성 기반 논리expression
및 선택적으로 조건에 대한description
을 포함하여 조건을 정의하는 JSON 또는 YAML 파일을 생성합니다.Cloud Storage는 날짜/시간,리소스 유형 및
expression
의 리소스 이름 속성만을 지원합니다.--condition-from-file
플래그와 함께gcloud storage managed-folders add-iam-policy-binding
명령어를 사용합니다.
gcloud storage managed-folders add-iam-policy-binding gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE --condition-from-file=CONDITION_FILE
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 주 구성원 액세스 권한을 부여할 관리 폴더가 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.MANAGED_FOLDER_NAME
은 주 구성원에게 액세스 권한을 부여할 관리 폴더의 이름입니다. 예를 들면my-managed-folder/
입니다.PRINCIPAL_IDENTIFIER
는 조건이 적용되는 사용자를 식별합니다. 예를 들면user:jane@gmail.com
입니다. 주 구성원 식별자 형식 목록은 주 구성원 식별자를 참조하세요.IAM_ROLE
은 주 구성원에게 부여할 IAM 역할입니다. 예를 들면roles/storage.objectViewer
입니다.CONDITION_FILE
은 이전 단계에서 만든 파일입니다.
또는 --condition-from-file
플래그 대신 --condition
플래그를 사용하여 명령어에 조건을 직접 포함할 수 있습니다.
REST API
JSON
Authorization
헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.또는 OAuth 2.0 Playground를 사용하여 액세스 토큰을 만들고
Authorization
헤더에 포함할 수 있습니다.GET getIamPolicy
요청을 사용하여 관리 폴더의 IAM 정책을 임시 JSON 파일에 저장합니다.curl \ 'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \ --header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.json
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 IAM 조건을 설정하려는 관리 폴더가 포함된 버킷의 이름입니다.MANAGED_FOLDER_NAME
은 IAM 조건을 설정할 관리 폴더의 이름입니다.
텍스트 편집기에서
tmp-policy.json
파일을 수정하여 IAM 정책의 바인딩에 새 조건을 추가합니다.{ "version": VERSION, "bindings": [ { "role": "IAM_ROLE", "members": [ "PRINCIPAL_IDENTIFIER" ], "condition": { "title": "TITLE", "description": "DESCRIPTION", "expression": "EXPRESSION" } } ], "etag": "ETAG" }
각 항목의 의미는 다음과 같습니다.
VERSION
은 IAM 정책 버전으로, IAM 조건이 있는 관리 폴더의 경우 3이어야 합니다.IAM_ROLE
은 조건이 적용되는 역할입니다. 예를 들면roles/storage.objectViewer
입니다.PRINCIPAL_IDENTIFIER
는 조건이 적용되는 사용자를 식별합니다. 예를 들면user:jane@gmail.com
입니다. 주 구성원 식별자 형식 목록은 주 구성원 식별자를 참조하세요.TITLE
은 조건의 제목입니다. 예를 들면expires in 2019
입니다.DESCRIPTION
은 선택사항으로, 조건의 설명입니다. 예를 들면Permission revoked on New Year's
입니다.EXPRESSION
은 속성 기반 논리 표현식입니다. 예를 들면request.time < timestamp(\"2019-01-01T00:00:00Z\")
입니다. 표현식의 더 많은 예시는 조건 속성 참조를 확인하세요. Cloud Storage는 날짜/시간, 리소스 유형 및 리소스 이름 속성만 지원합니다.
ETAG
는 수정하면 안 됩니다.PUT setIamPolicy
요청을 사용하여 버킷에서 수정된 IAM 정책을 설정합니다.curl -X PUT --data-binary @tmp-policy.json \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFoldersMANAGED_FOLDER_NAME/iam"
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 IAM 조건을 설정하려는 관리 폴더가 포함된 버킷의 이름입니다.MANAGED_FOLDER_NAME
은 IAM 조건을 설정할 관리 폴더의 이름입니다.
관리 폴더에서 조건 삭제
명령줄
gcloud storage managed-folders get-iam-policy
명령어를 사용하여 관리 폴더의 IAM 정책을 임시 JSON 파일에 저장합니다.gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME > tmp-policy.json
텍스트 편집기에서
tmp-policy.json
파일을 수정하여 IAM 정책에서 조건을 삭제합니다.gcloud storage managed-folders set-iam-policy
명령어를 사용하여 관리 폴더에서 수정된 IAM 정책을 설정합니다.gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME tmp-policy.json
REST API
JSON
Authorization
헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.또는 OAuth 2.0 Playground를 사용하여 액세스 토큰을 만들고
Authorization
헤더에 포함할 수 있습니다.GET getIamPolicy
요청을 사용하여 관리 폴더의 IAM 정책을 임시 JSON 파일에 저장합니다.curl \ 'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \ --header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.json
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 액세스를 변경할 관리 폴더가 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.MANAGED_FOLDER_NAME
은 액세스를 변경할 관리 폴더의 이름입니다. 예를 들면my-managed-folder/
입니다.
텍스트 편집기에서
tmp-policy.json
파일을 수정하여 IAM 정책에서 조건을 삭제합니다.PUT setIamPolicy
요청을 사용하여 관리 폴더에서 수정된 IAM 정책을 설정합니다.curl -X PUT --data-binary @tmp-policy.json \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam"
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME
은 액세스를 변경할 관리 폴더가 포함된 버킷의 이름입니다. 예를 들면my-bucket
입니다.MANAGED_FOLDER_NAME
은 액세스를 변경할 관리 폴더의 이름입니다. 예를 들면my-managed-folder/
입니다.
프로젝트에 IAM 사용
프로젝트 수준 이상에서 IAM 역할을 부여하고 취소하는 방법은 프로젝트, 관리 폴더, 조직에 대한 액세스 관리를 참조하세요.
권장사항
주 구성원에게 필요한 액세스 권한을 부여할 수 있는 최소한의 역할을 설정해야 합니다. 예를 들어 팀 구성원이 버킷의 관리 폴더를 보기만 하면 되는 경우 스토리지 폴더 관리자(roles/storage.folderAdmin
) 역할 대신 스토리지 객체 관리자(roles/storage.objectAdmin
) 역할을 부여합니다.
마찬가지로, 팀 구성원에게 버킷의 관리형 폴더를 관리할 수 있는 전체 권한이 필요한 경우 스토리지 관리자(roles/storage.admin
) 역할 대신 스토리지 폴더 관리자(roles/storage.folderAdmin
) 역할을 부여합니다.
다음 단계
데이터를 공개적으로 공유하는 방법 알아보기
구체적인 공유 및 공동작업 예시 참조
IAM 사용 시 권장사항 알아보기
IAM 역할 및 권한과 관련된 실패한 작업 문제를 해결하려면 문제 해결 참조하기