프로젝트

이 페이지는 Google Cloud Platform Console 프로젝트와 Cloud Storage 리소스 간의 관계를 설명합니다. Google Cloud Platform 콘솔 프로젝트에 대한 전반적인 내용은 Google Cloud Platform 개요의 프로젝트를 참조하세요.

프로젝트란?

프로젝트는 모든 Google Cloud Platform 리소스를 구성합니다. 프로젝트는 사용자 집합, API 집합, 그리고 이러한 API에 대한 청구, 인증, 모니터링 설정으로 구성됩니다. 예를 들어 모든 Cloud Storage 버킷과 객체는 이를 액세스할 수 있는 사용자 권한과 함께 프로젝트에 상주합니다. 프로젝트를 한 개만 갖거나 여러 프로젝트를 만들 수 있으며, 이를 사용하여 Cloud Storage 데이터를 포함한 Google Cloud Platform 리소스를 논리적 그룹으로 구성할 수 있습니다.

프로젝트를 지정할 시기

대부분의 경우 Cloud Storage에서 작업 수행 시 프로젝트를 지정할 필요가 없습니다. 하지만 다음의 경우에는 프로젝트 ID나 프로젝트 번호를 포함해야 합니다.

Console

  • Cloud Storage를 GCP Console과 함께 사용하는 경우 사용자는 프로젝트와 자동으로 연결됩니다. GCP Console 창 상단에 있는 드롭다운 메뉴를 사용하여 프로젝트를 변경할 수 있습니다.

  • 요청자 지불을 사용 설정한 버킷에 처음 액세스하면 청구를 요청할 프로젝트를 선택하라는 메시지가 나타납니다. 버킷의 객체 목록 위에 있는 프로젝트 변경 버튼을 사용하여 이후의 청구 프로젝트를 변경할 수 있습니다.

gsutil

  • gsutil mb, gsutil lsgsutil kms 명령어의 경우 기본 프로젝트를 설정한 경우를 제외하면 프로젝트를 지정해야 합니다. 기본 프로젝트를 설정하지 않았거나 다른 프로젝트를 사용하려는 경우 -p 플래그를 사용하여 프로젝트를 지정합니다. 다른 gsutil 명령어는 프로젝트를 지정하도록 요구하지 않습니다.

  • 프로젝트 ID와 함께 -u 플래그를 사용하여 버킷 액세스 요금을 청구할 프로젝트를 나타냅니다. 이 플래그는 요청자 지불을 사용 설정한 버킷에 액세스할 때 필요하며 다른 경우에는 선택사항입니다.

JSON API

  • list bucketsinsert bucket 메서드 사용 시 프로젝트를 지정해야 합니다. 프로젝트는 다음 예시와 같이 요청 URL에 매개변수로 전송됩니다.

    GET https://www.googleapis.com/storage/v1/b?project=[PROJECT_ID]
  • 버킷 액세스 요금을 청구할 프로젝트를 나타내려면 다음 예시와 같이 프로젝트 ID와 함께 'userProject' 쿼리 매개변수를 사용합니다.

    GET https://www.googleapis.com/storage/v1/b?userProject=[PROJECT_ID]

    이 쿼리 매개변수는 요청자 지불을 사용 설정한 버킷에 액세스할 때 필요하며 다른 경우에는 선택사항입니다.

XML API

  • 버킷 나열 및 삽입 시 프로젝트를 지정합니다. 이러한 XML API 요청과 연결된 프로젝트는 다음 예시와 같이 x-goog-project-id HTTP 헤더에 지정됩니다.

    x-goog-project-id: [PROJECT_ID]

    다른 XML API 요청의 경우 또는 상호 운용 가능한 액세스를 위해 기본 프로젝트를 설정한 경우 이 헤더는 선택사항입니다.

  • 버킷 액세스 요금을 청구할 프로젝트를 나타내려면 다음 예시와 같이 프로젝트 ID와 함께 'x-goog-user-project' 헤더를 사용합니다.

    x-goog-user-project: [PROJECT_ID]

    이 헤더는 요청자 지불을 사용 설정한 버킷에 액세스할 때 필요하며 다른 경우에는 선택사항입니다.

프로젝트 구성원 및 권한

각 프로젝트에 대해 ID 및 액세스 관리(IAM)를 사용하여 프로젝트를 관리하고 작업을 수행할 수 있는 팀원을 추가할 수 있습니다. IAM을 사용하면 각 팀원의 역할(복수 가능)을 지정할 수 있습니다. 역할마다 프로젝트 내에서 구성원이 서로 다른 작업을 수행할 수 있게 하는 권한이 있습니다.

많은 IAM 역할을 프로젝트 수준(프로젝트의 모든 버킷에 적용) 또는 버킷 수준(개별 버킷에만 적용)에서 설정할 수 있지만 한 프로젝트에만 적용할 수 있는 역할이 몇 가지 있습니다. 이러한 역할은 기본 역할입니다. 기본 역할은 Cloud Storage에 대해 다음과 같은 속성을 가집니다.

역할 기본 동작 수정 가능한 동작
roles/viewer 이 역할을 가진 구성원은 프로젝트의 버킷을 나열하고 프로젝트의 HMAC 키를 나열하고 가져올 수 있습니다.
  • 이 역할의 구성원에게는 프로젝트의 각 버킷에 대한 roles/storage.legacyBucketReader 역할이 그룹으로 부여됩니다.
  • 이 역할을 가진 구성원은 프로젝트의 각 버킷에 대해 기본 객체 액세스제어 목록(ACL)READER입니다.
  • 이 역할의 구성원에게는 버킷 정책 전용이 사용 설정되어 만들어진 프로젝트의 모든 버킷에 대한 roles/storage.legacyObjectReader 역할이 그룹으로 부여됩니다.
roles/editor 이 역할을 가진 구성원은 프로젝트의 버킷을 나열, 생성, 삭제하고 프로젝트의 HMAC 키를 완전히 제어할 수 있습니다.
  • 이 역할의 구성원에게는 프로젝트의 각 버킷에 대한 roles/storage.legacyBucketOwner 역할이 그룹으로 부여됩니다.
  • 이 역할을 가진 구성원은 프로젝트의 각 버킷에 대해 기본 객체 액세스제어 목록(ACL)OWNER입니다.
  • 이 역할의 구성원에게는 버킷 정책 전용이 사용 설정되어 만들어진 프로젝트의 모든 버킷에 대한 roles/storage.legacyObjectOwner 역할이 그룹으로 부여됩니다.
roles/owner 이 역할을 가진 구성원은 프로젝트의 버킷을 나열, 생성, 삭제하고 프로젝트의 HMAC 키를 완전히 제어할 수 있습니다. 일반적으로 Google Cloud Platform 내에서 roles/owner가 있는 구성원은 프로젝트의 구성원 역할 변경, 청구 변경과 같은 관리 작업을 수행할 수 있습니다.
  • 이 역할의 구성원에게는 프로젝트의 각 버킷에 대한 roles/storage.legacyBucketOwner 역할이 그룹으로 부여됩니다.
  • 이 역할을 가진 구성원은 프로젝트의 각 버킷에 대해 기본 객체 액세스제어 목록(ACL)OWNER입니다.
  • 이 역할의 구성원에게는 버킷 정책 전용이 사용 설정되어 만들어진 프로젝트의 모든 버킷에 대한 roles/storage.legacyObjectOwner 역할이 그룹으로 부여됩니다.

Cloud Storage에 적용할 수 있는 역할 목록은 Cloud Storage IAM 역할을 참조하세요.

프로젝트 수준의 역할에서 구성원을 추가, 확인, 삭제하는 안내는 프로젝트에 IAM 사용을 참조하세요.

위의 수정 가능한 동작 열에 설명된 바와 같이 프로젝트 팀원은 기본 IAM 역할로 기본적으로 부여되는 권한 이외에 추가적인 액세스 권한을 가질 수 있습니다. 이 추가 액세스 권한은 다음 두 부분으로 설명합니다.

  • 버킷에 적용된 IAM 역할: 사용자가 버킷을 만들면 기본적으로 IAM 역할이 버킷에 적용됩니다. 버킷을 만든 후에 이 액세스 권한을 편집할 수 있습니다.

  • 객체에 적용되는 액세스제어 목록(ACL): 사용자가 객체를 만들면 ACL이 객체에 적용됩니다. ACL은 명시적으로 지정되거나 기본적으로 적용됩니다. 두 경우 모두 생성된 객체에 ACL이 특정한 액세스 권한을 부여합니다.

두 경우 모두 개별 사용자와 기본 역할을 가진 모든 사용자에게 액세스 권한을 부여할 수 있습니다. 또한, 부여된 액세스 권한은 사용자가 일반적으로 프로젝트에서 갖는 액세스 권한보다 클 수 있으며 더 제한되지는 않습니다.

서비스 계정

서비스 계정을 사용하면 애플리케이션에서 GCP 리소스 및 서비스를 인증하고 액세스할 수 있습니다. 예를 들어 Compute Engine 인스턴스가 Cloud Storage 버킷에 저장된 객체에 액세스하는 데 사용하는 서비스 계정을 만들 수 있습니다.

서비스 계정은 프로젝트 내에서 생성되며 프로젝트 계정을 식별하는 고유한 이메일 주소를 가집니다. 대부분의 서비스 계정은 사용자가 만들고 관리하지만 일부 서비스 계정은 GCP 서비스에 의해 자동으로 생성 및 관리됩니다. Cloud Storage는 다음과 같은 형식의 이메일 주소로 이러한 서비스 계정을 하나 만듭니다.

service-[PROJECT_NUMBER]@gs-project-accounts.iam.gserviceaccount.com

여기서 [PROJECT_NUMBER]는 서비스 계정을 소유하는 프로젝트의 프로젝트 번호입니다.

Cloud Storage 사용

다음 기능은 Cloud Storage 서비스 계정을 사용합니다.

Cloud Storage 리소스를 사용하는 비 Cloud Storage 서비스 계정에서 수행할 수 있는 작업의 예시는 다음과 같습니다.

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.