버킷의 IAM 정책 설정 및 관리 (original) (raw)
Discover
시작하기
버킷 만들기
버킷 액세스 및 관리
객체 업로드 및 다운로드
객체 액세스 및 관리
저장된 데이터에 대한 유용한 정보 얻기
객체 캐시
데이터 수명 주기 제어
요청 수행
데이터 보안 설정
액세스 제어
데이터 및 사용량 모니터링
보호, 백업, 복구
소프트 삭제
Cloud Storage FUSE로 버킷 마운트
제품, 클라우드, 플랫폼 전반에서 작업
문제 해결
이 페이지에서는 버킷에서 Identity and Access Management(IAM) 정책을 설정하여 버킷 내의 객체 및 관리형 폴더에 대한 액세스를 제어하는 방법을 설명합니다.
다른 액세스 제어 방법을 찾고 있는 경우 다음 리소스를 참조하세요.
- 객체 그룹을 더 세밀하게 제어하는 방법은 관리형 폴더에 대한 IAM 정책 설정 및 관리를 참조하세요.
- 버킷의 개별 객체에 대한 액세스를 제어하는 다른 방법은 액세스 제어 목록을 참조하세요.
- Cloud Storage 리소스에 대한 액세스 제어 방법은 액세스 제어 개요를 참조하세요.
필요한 역할
버킷의 IAM 정책을 설정하고 관리하는 데 필요한 권한을 얻으려면 관리자에게 버킷의 스토리지 관리자(roles/storage.admin) IAM 역할을 부여해 달라고 요청하세요.
이 역할에는 버킷의 IAM 정책을 설정하고 관리하는 데 필요한 다음 권한이 포함됩니다.
storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.updatestorage.buckets.list- 이 권한은Google Cloud 콘솔을 사용하여 이 페이지의 태스크를 수행하려는 경우에만 필요합니다.
커스텀 역할로도 이러한 권한을 얻을 수 있습니다.
버킷 수준 정책에 주 구성원 추가
Cloud Storage와 관련된 역할 목록은 IAM 역할을 참조하세요. IAM 역할을 부여하는 항목에 대한 자세한 내용은 주 구성원 식별자를 참조하세요.
콘솔
- Google Cloud 콘솔에서 Cloud Storage 버킷 페이지로 이동합니다.
버킷으로 이동 - 버킷 목록에서 주 구성원에게 역할을 부여할 버킷의 이름을 클릭합니다.
- 페이지 상단의 권한 탭을 선택합니다.
- 액세스 권한 부여 버튼을 클릭합니다.
주 구성원 추가 대화상자가 표시됩니다. - 새 주 구성원 필드에 버킷에 액세스해야 하는 ID를 한 개 이상 입력합니다.
- 역할 선택 드롭다운 메뉴에서 역할을 한 개 이상 선택합니다. 선택한 역할 및 부여되는 권한에 대한 간단한 설명이 창에 표시됩니다.
- 저장을 클릭합니다.
Google Cloud 콘솔에서 실패한 Cloud Storage 작업에 대한 자세한 오류 정보를 가져오는 방법은 문제 해결을 참조하세요.
명령줄
buckets add-iam-policy-binding 명령어를 사용합니다.
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME은 주 구성원에게 액세스 권한을 부여할 버킷의 이름입니다. 예를 들면my-bucket입니다.PRINCIPAL_IDENTIFIER는 버킷 액세스 권한을 부여할 개발자를 식별합니다. 예를 들면user:jeffersonloveshiking@gmail.com입니다. 주 구성원 식별자 형식 목록은 주 구성원 식별자를 참조하세요.IAM_ROLE은 주 구성원에게 부여할 IAM 역할입니다. 예를 들면roles/storage.objectViewer입니다.
클라이언트 라이브러리
REST API
JSON
Authorization헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.- 다음 정보를 포함하는 JSON 파일을 만듭니다.
{
"bindings":[
{
"role": "IAM_ROLE",
"members":[
"PRINCIPAL_IDENTIFIER"
]
}
]
}
각 항목의 의미는 다음과 같습니다. - 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/iam"
각 항목의 의미는 다음과 같습니다.JSON_FILE_NAME은 2단계에서 만든 파일의 경로입니다.BUCKET_NAME은 주 구성원에게 액세스 권한을 부여할 버킷의 이름입니다. 예를 들면my-bucket입니다.
버킷에 대한 IAM 정책 보기
콘솔
- Google Cloud 콘솔에서 Cloud Storage 버킷 페이지로 이동합니다.
버킷으로 이동 - 버킷 목록에서 확인하려는 정책의 버킷 이름을 클릭합니다.
- 버킷 세부정보 페이지에서 권한 탭을 클릭합니다.
버킷에 적용되는 IAM 정책이 권한 섹션에 표시됩니다. - (선택사항) 필터 막대를 사용해서 결과를 필터링합니다.
주 구성원별로 검색하면 주 구성원이 부여된 각 역할이 결과에 표시됩니다.
명령줄
buckets get-iam-policy 명령어를 사용합니다.
gcloud storage buckets get-iam-policy gs://BUCKET_NAME
여기서 BUCKET_NAME은 확인하려는 IAM 정책의 버킷 이름입니다. 예를 들면 my-bucket입니다.
클라이언트 라이브러리
REST API
JSON
Authorization헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.- 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/iam"
여기서BUCKET_NAME은 확인하려는 IAM 정책의 버킷 이름입니다. 예를 들면my-bucket입니다.
버킷 수준 정책에서 주 구성원 삭제
콘솔
- Google Cloud 콘솔에서 Cloud Storage 버킷 페이지로 이동합니다.
버킷으로 이동 - 버킷 목록에서 주 구성원의 역할을 삭제하려는 버킷의 이름을 클릭합니다.
- 버킷 세부정보 페이지에서 권한 탭을 클릭합니다.
버킷에 적용되는 IAM 정책이 권한 섹션에 표시됩니다. - 주 구성원별 보기 탭에서 삭제하려는 주 구성원에 해당하는 체크박스를 선택합니다.
- - 액세스 삭제 버튼을 클릭합니다.
- 나타나는 오버레이 창에서 확인을 클릭합니다.
Google Cloud 콘솔에서 실패한 Cloud Storage 작업에 대한 자세한 오류 정보를 가져오는 방법은 문제 해결을 참고하세요.
명령줄
buckets remove-iam-policy-binding 명령어를 사용합니다.
gcloud storage buckets remove-iam-policy-binding gs://BUCKET_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME은 액세스 권한을 취소하려는 버킷의 이름입니다. 예를 들면my-bucket입니다.PRINCIPAL_IDENTIFIER는 액세스 권한을 취소할 사용자를 식별합니다. 예를 들면user:jeffersonloveshiking@gmail.com입니다. 주 구성원 식별자 형식 목록은 주 구성원 식별자를 참조하세요.IAM_ROLE은 취소할 IAM 역할입니다. 예를 들면roles/storage.objectViewer입니다.
클라이언트 라이브러리
REST API
JSON
Authorization헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.- 버킷에 적용된 기존 정책을 가져옵니다. 이렇게 하려면 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/iam"
여기서BUCKET_NAME은 확인하려는 IAM 정책의 버킷 이름입니다. 예를 들면my-bucket입니다. - 이전 단계에서 검색한 정책을 포함하는 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/iam"
각 항목의 의미는 다음과 같습니다.JSON_FILE_NAME은 3단계에서 만든 파일의 경로입니다.BUCKET_NAME은 액세스 권한을 삭제할 버킷의 이름입니다. 예를 들면my-bucket입니다.
버킷에 IAM 조건 사용
다음 섹션에서는 버킷에서 IAM 조건을 추가하고 삭제하는 방법을 설명합니다. 버킷의 IAM 조건을 보려면 버킷에 대한 IAM 정책 보기를 참조하세요. Cloud Storage에 IAM 조건 사용에 대한 자세한 내용은 조건을 참조하세요.
조건을 추가하기 전에 버킷에 균일한 버킷 수준 액세스를 사용 설정해야 합니다.
버킷에 새 조건 설정
콘솔
- Google Cloud 콘솔에서 Cloud Storage 버킷 페이지로 이동합니다.
버킷으로 이동 - 버킷 목록에서 새 조건을 추가하려는 버킷의 이름을 클릭합니다.
- 버킷 세부정보 페이지에서 권한 탭을 클릭합니다.
버킷에 적용되는 IAM 정책이 권한 섹션에 표시됩니다. - + 액세스 권한 부여를 클릭합니다.
- 새 주 구성원에서 버킷에 대한 액세스 권한을 부여할 주 구성원을 입력합니다.
- 조건을 적용할 각 역할에 대해 다음을 수행합니다.
- 역할을 선택하여 주 구성원에게 부여합니다.
- 조건 추가를 클릭하여 조건 추가 양식을 엽니다.
- 조건의 제목을 작성합니다. 설명 필드는 선택사항입니다.
- 조건 빌더를 사용하여 조건을 시각적으로 빌드하거나 조건 편집기 탭을 사용하여 CEL 표현식을 입력합니다.
- 저장을 클릭하여 주 구성원 추가 양식으로 돌아갑니다. 여러 역할을 추가하려면 다른 역할 추가를 클릭합니다.
- 저장을 클릭합니다.
Google Cloud 콘솔에서 실패한 Cloud Storage 작업에 대한 자세한 오류 정보를 가져오는 방법은 문제 해결을 참조하세요.
명령줄
- 조건
title, 조건에 대한 속성 기반 논리expression및 선택적으로 조건에 대한description을 포함하여 조건을 정의하는 JSON 또는 YAML 파일을 생성합니다.
Cloud Storage는 날짜/시간,리소스 유형 및expression의 리소스 이름 속성만을 지원합니다. --condition-from-file플래그와 함께 buckets add-iam-policy-binding 명령어를 사용합니다.
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE --condition-from-file=CONDITION_FILE
각 항목의 의미는 다음과 같습니다.
BUCKET_NAME은 주 구성원에게 액세스 권한을 부여할 버킷의 이름입니다. 예를 들면my-bucket입니다.PRINCIPAL_IDENTIFIER: 조건이 적용되는 사용자의 식별자. 예를 들면user:jeffersonloveshiking@gmail.com입니다. 주 구성원 식별자 형식 목록은 주 구성원 식별자를 참조하세요.IAM_ROLE은 주 구성원에게 부여할 IAM 역할입니다. 예를 들면roles/storage.objectViewer입니다.CONDITION_FILE은 이전 단계에서 만든 파일입니다.
또는 --condition-from-file 플래그 대신 --condition 플래그를 사용하여 명령어에 조건을 직접 포함할 수 있습니다.
클라이언트 라이브러리
REST API
JSON
Authorization헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.- GET getIamPolicy 요청을 사용해서 버킷의 IAM 정책을 임시 JSON 파일에 저장합니다.
curl \
'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam' \
--header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.json
여기서BUCKET_NAME은 관련 버킷의 이름입니다. 예를 들면my-bucket입니다. - 텍스트 편집기에서
tmp-policy.json파일을 수정하여 IAM 정책의 binding에 새 조건을 추가합니다.
{
"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:jeffersonloveshiking@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/iam"
여기서BUCKET_NAME은 관련 버킷의 이름입니다. 예를 들면my-bucket입니다.
버킷에서 조건 삭제
콘솔
- Google Cloud 콘솔에서 Cloud Storage 버킷 페이지로 이동합니다.
버킷으로 이동 - 버킷 목록에서 조건을 삭제하려는 버킷의 이름을 클릭합니다.
- 버킷 세부정보 페이지에서 권한 탭을 클릭합니다.
버킷에 적용되는 IAM 정책이 권한 섹션에 표시됩니다. - 조건과 연결된 주 구성원의 수정 아이콘 을 클릭합니다.
- 나타나는 액세스 수정 오버레이에서 삭제할 조건의 이름을 클릭합니다.
- 나타나는 조건 수정 오버레이에서 삭제, 확인을 차례로 클릭합니다.
- 저장을 클릭합니다.
Google Cloud 콘솔에서 실패한 Cloud Storage 작업에 대한 자세한 오류 정보를 가져오는 방법은 문제 해결을 참조하세요.
명령줄
- buckets get-iam-policy 명령어를 사용하여 버킷의 IAM 정책을 임시 JSON 파일에 저장합니다.
gcloud storage buckets get-iam-policy gs://BUCKET_NAME > tmp-policy.json - 텍스트 편집기에서
tmp-policy.json파일을 수정하여 IAM 정책에서 조건을 삭제합니다. - buckets set-iam-policy을 사용하여 버킷에서 수정된 IAM 정책을 설정합니다.
gcloud storage buckets set-iam-policy gs://BUCKET_NAME tmp-policy.json
코드 샘플
REST API
JSON
Authorization헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.- GET getIamPolicy 요청을 사용해서 버킷의 IAM 정책을 임시 JSON 파일에 저장합니다.
curl \
'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam' \
--header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.jsonBUCKET_NAME은 액세스 권한을 부여할 버킷의 이름입니다. 예를 들면my-bucket입니다. - 텍스트 편집기에서
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/iam"
여기서BUCKET_NAME은 수정하려는 IAM 정책의 버킷 이름입니다. 예를 들면my-bucket입니다.
권장사항
주 구성원에게 필요한 액세스 권한을 부여하는 데 필요한 최소 역할을 설정해야 합니다. 예를 들어 팀 구성원이 버킷에 저장된 객체를 읽기만 하면 되는 경우에는 스토리지 객체 관리자(roles/storage.objectAdmin) 대신 스토리지 객체 뷰어(roles/storage.objectViewer) 역할을 부여합니다. 마찬가지로, 팀 구성원에게 버킷의 객체를 관리할 전체 권한이 있어야 하지만 팀 구성원이 버킷 자체는 관리할 필요가 없는 경우에는 스토리지 관리자(roles/storage.admin) 역할 대신 스토리지 객체 관리자(roles/storage.objectAdmin) 역할을 부여합니다.
다음 단계
- 데이터를 공개적으로 공유하는 방법 알아보기
- 구체적인 공유 및 공동작업 예시 참조
- IAM 사용 시 권장사항 알아보기
- 버킷의 역할 권장사항 사용 방법 알아보기
- IAM 역할 및 권한과 관련된 실패한 작업 문제를 해결하려면 문제 해결 참조하기
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-12-15(UTC)