GKE에서 프로젝트 간 액세스 구성

이 페이지에서는 Binary Authorization에 현재 프로젝트와 다른 Google Cloud 프로젝트에 있는 정책 및 컨테이너 이미지에 액세스할 수 있는 권한을 부여하는 방법을 보여줍니다. 예를 들어 다른 프로젝트가 소유한 Artifact Registry 또는 Container Registry(지원 중단됨)저장소에서 Google Kubernetes Engine(GKE) 클러스터에 이미지를 배포하는 경우 프로젝트의 Binary Authorization 서비스에 소스 저장소의 이미지 메타데이터에 액세스할 수 있는 권한을 부여해야 합니다.

용어

이 문서에서는 다음 용어가 사용됩니다.

  • 서비스 에이전트: Google Cloud 관리 서비스 계정입니다. Binary Authorization은 서비스 에이전트를 사용하여 GKE 클러스터와 같은 Google Cloud 리소스와 상호작용합니다.
  • 정책 프로젝트: Binary Authorization 정책이 포함된 Google Cloud 프로젝트입니다.
  • 클러스터 프로젝트: GKE 클러스터가 포함된 Google Cloud 프로젝트입니다.
  • 아티팩트 프로젝트: Artifact Registry 또는 Container Registry(지원 중단됨) 저장소가 포함된 Google Cloud 프로젝트입니다.

프로젝트 간 액세스가 필요한 시나리오

다음과 같은 상황에서는 프로젝트 간 권한을 부여해야 합니다.

  • 정책 프로젝트가 클러스터 프로젝트와 다릅니다.
  • 클러스터 프로젝트가 아티팩트 프로젝트와 다릅니다.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud CLI를 설치합니다.
  3. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

    gcloud init
  4. Google Cloud 프로젝트를 만들거나 선택합니다.

    • Google Cloud 프로젝트를 만듭니다.

      gcloud projects create PROJECT_ID

      PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다.

    • 만든 Google Cloud 프로젝트를 선택합니다.

      gcloud config set project PROJECT_ID

      PROJECT_ID를 Google Cloud 프로젝트 이름으로 바꿉니다.

  5. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  6. Binary Authorization API를 사용 설정합니다.

    gcloud services enable binaryauthorization.googleapis.com
  7. Google Cloud CLI를 설치합니다.
  8. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

    gcloud init
  9. Google Cloud 프로젝트를 만들거나 선택합니다.

    • Google Cloud 프로젝트를 만듭니다.

      gcloud projects create PROJECT_ID

      PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다.

    • 만든 Google Cloud 프로젝트를 선택합니다.

      gcloud config set project PROJECT_ID

      PROJECT_ID를 Google Cloud 프로젝트 이름으로 바꿉니다.

  10. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  11. Binary Authorization API를 사용 설정합니다.

    gcloud services enable binaryauthorization.googleapis.com

정책 프로젝트가 다른 클러스터 프로젝트

클러스터 프로젝트의 Binary Authorization 서비스 에이전트에 정책 프로젝트에 대한 Binary Authorization 정책 평가자(roles/binaryauthorization.policyEvaluator) 역할을 부여합니다.

gcloud projects add-iam-policy-binding POLICY_PROJECT_ID \
  --member="serviceAccount:service-$(gcloud projects describe CLUSTER_PROJECT_ID --format='value(projectNumber)')@gcp-sa-binaryauthorization.iam.gserviceaccount.com" \
  --role=roles/binaryauthorization.policyEvaluator

다음을 바꿉니다.

  • POLICY_PROJECT_ID: 정책이 포함된 프로젝트의 ID입니다.
  • CLUSTER_PROJECT_ID: 클러스터의 프로젝트 ID입니다.

아티팩트 프로젝트와 다른 클러스터 프로젝트

클러스터 프로젝트의 Binary Authorization 서비스 에이전트에 아티팩트 프로젝트에 대한 Artifact Registry 리더(roles/artifactregistry.reader) 역할을 부여합니다.

gcloud projects add-iam-policy-binding ARTIFACT_PROJECT_ID \
    --member="serviceAccount:service-$(gcloud projects describe CLUSTER_PROJECT_ID --format='value(projectNumber)')@gcp-sa-binaryauthorization.iam.gserviceaccount.com" \
    --role=roles/artifactregistry.reader

다음을 바꿉니다.

  • ARTIFACT_PROJECT_ID: Artifact Registry 저장소가 포함된 프로젝트의 ID입니다.
  • CLUSTER_PROJECT_ID: GKE 클러스터를 실행하는 프로젝트 ID입니다.