정책 조정자 사용을 위한 기본 요건

이 페이지에서는 VM 관리자에서 정책 오케스트레이터 기능을 사용하기 위한 기본 요건을 설명합니다.

조직 및 폴더 오케스트레이션을 위한 할당량 프로젝트 설정

정책 오케스트레이터를 사용하여 조직 또는 폴더의 OS 정책 리소스를 관리하는 경우 클라이언트 기반 API에 요청을 보냅니다. 클라이언트 기반 API에는 할당량 프로젝트가 필요합니다. 클라이언트 기반 API 및 할당량 프로젝트 설정에 관한 자세한 내용은 할당량 프로젝트 개요를 참고하세요.

gcloud CLI 또는 REST API를 사용하여 정책 오케스트레이터 메서드를 호출하는 경우 다음과 같이 할당량 프로젝트를 지정합니다.

gcloud

gcloud CLI 구성 속성에서 할당량 프로젝트를 설정합니다.

gcloud config set billing/quota_project QUOTA_PROJECT_ID

QUOTA_PROJECT_ID를 할당량 프로젝트의 프로젝트 ID로 바꿉니다.

또는 구성 속성보다 우선하는 --billing-project 플래그를 사용하여 특정 명령어에 할당량 프로젝트를 설정할 수 있습니다.

REST

x-goog-user-project HTTP 헤더를 추가하여 각 요청에서 할당량 프로젝트를 지정합니다. 자세한 내용은 REST 요청으로 할당량 프로젝트 설정을 참조하세요.

OS Config API 사용 설정

VM Manager에서 정책 오케스트레이터 기능을 사용하려면 다음 프로젝트에서 OS Config API를 사용 설정합니다.

  • 조직 수준 및 폴더 수준 오케스트레이션의 경우 할당량 프로젝트에 OS Config API를 사용 설정합니다.
  • 프로젝트 수준 오케스트레이션의 경우 정책 오케스트레이터를 만드는 프로젝트에서 OS Config API를 사용 설정합니다.

자세한 내용은 OS Config API 사용 설정을 참고하세요.

프로젝트에 Progressive Rollout API 사용 설정

콘솔

  1. Google Cloud 콘솔에서 API를 사용 설정하려는 Google Cloud 프로젝트를 선택하고 API 및 서비스 페이지로 이동합니다.

    API 및 서비스로 이동

  2. API 및 서비스 사용 설정을 클릭합니다.

  3. '점진적 출시'를 검색합니다.

  4. 검색 결과에서 Progressive Rollout API를 클릭합니다.

  5. API가 아직 사용 설정되지 않은 경우 사용 설정을 클릭합니다.

gcloud

  1. Progressive Rollout API가 사용 설정되어 있는지 확인하려면 다음 명령어를 실행합니다. 여기서 PROJECT_ID는 API를 사용 설정하려는 프로젝트의 ID로 바꿉니다.

     gcloud services list --project=PROJECT_ID
    

    출력에 progressiverollout.googleapis.com이 표시되면 API가 사용 설정된 것입니다.

  2. API가 사용 설정되지 않았으면 다음 명령어를 실행하여 사용 설정합니다.

     gcloud services enable progressiverollout.googleapis.com
    

    자세한 내용은 gcloud services를 참조하세요.

OS 구성 서비스 에이전트 설정

정책 오케스트레이터는 OS 구성 서비스 에이전트를 사용하여 프로젝트에서 작업을 실행합니다. 또한 자체 서비스 에이전트가 있는 Progressive Rollout API에 종속됩니다. 자세한 내용은 서비스 에이전트를 참조하세요.

정책 오케스트레이터를 만드는 각 프로젝트, 폴더 또는 조직의 서비스 에이전트를 만들어야 합니다.

서비스 에이전트를 만들려면 다음 단계를 따르세요.

  1. 각 리소스의 서비스 에이전트 이메일 주소 형식을 검토합니다.

    프로젝트

    • service-PROJECT_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com
    • service-PROJECT_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com
    • service-PROJECT_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com

    PROJECT_NUMBER를 정책 오케스트레이터를 만드는 프로젝트의 숫자 ID로 바꿉니다.

    폴더

    • service-folder-FOLDER_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com
    • service-folder-FOLDER_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com
    • service-folder-FOLDER_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com

    FOLDER_NUMBER를 정책 오케스트레이터를 만드는 폴더의 숫자 ID로 바꿉니다.

    조직

    • service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com
    • service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com
    • service-org-ORGANIZATION_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com

    ORGANIZATION_NUMBER를 정책 오케스트레이터를 만드는 조직의 숫자 ID로 바꿉니다.

  2. 지정된 API 및 리소스의 서비스 에이전트를 만들려면 gcloud beta services identity create 명령어를 사용합니다.

    프로젝트

    gcloud beta services identity create --service=osconfig.googleapis.com  --project=PROJECT_NUMBER
    
    gcloud beta services identity create --service=progressiverollout.googleapis.com  --project=PROJECT_NUMBER
    

    PROJECT_NUMBER를 서비스 에이전트를 만들려는 프로젝트의 숫자 ID로 바꿉니다.

    폴더

    gcloud beta services identity create --service=osconfig.googleapis.com  --folder=FOLDER_NUMBER
    
    gcloud beta services identity create --service=progressiverollout.googleapis.com  --folder=FOLDER_NUMBER
    

    FOLDER_NUMBER를 서비스 에이전트를 만들려는 폴더의 숫자 ID로 바꿉니다.

    조직

    gcloud beta services identity create --service=osconfig.googleapis.com --organization=ORGANIZATION_NUMBER
    
    gcloud beta services identity create --service=progressiverollout.googleapis.com  --organization=ORGANIZATION_NUMBER
    

    ORGANIZATION_NUMBER를 서비스 에이전트를 만들려는 조직의 숫자 ID로 바꿉니다.

서비스 에이전트에 IAM 역할 부여

정책 오케스트레이터가 제대로 작동하려면 오케스트레이터의 상위 리소스에서 각 서비스 계정에 필요한 모든 서비스 에이전트 역할을 부여해야 합니다.

  • @gcp-sa-osconfig.iam.gserviceaccount.com 계정의 OSConfig 서비스 에이전트 (roles/osconfig.serviceAgent)
  • @gcp-sa-osconfig-rollout.iam.gserviceaccount.com 계정의 OSConfig Rollout Service Agent (roles/osconfig.rolloutServiceAgent)
  • @gcp-sa-progrollout.iam.gserviceaccount.com 계정의 Progressiverollout 서비스 에이전트 (roles/progressiverollout.serviceAgent)

서비스 에이전트에 IAM 역할을 부여하려면 Google Cloud 콘솔 또는 add-iam-policy-binding 명령어를 사용하세요. 자세한 내용은 서비스 에이전트에 역할 부여를 참고하세요.

필요한 역할

  • 서비스 상담사에게 액세스 권한을 부여하는 데 필요한 권한을 얻으려면 관리자에게 액세스를 부여하려는 프로젝트, 폴더, 조직에 대해 다음 IAM 역할을 부여해 달라고 요청하세요.

    • 서비스 상담사에게 프로젝트에 대한 액세스 권한 부여: 프로젝트 IAM 관리자 (roles/resourcemanager.projectIamAdmin)
    • 서비스 에이전트에 폴더에 대한 액세스 권한 부여: 폴더 관리자 (roles/resourcemanager.folderAdmin)
    • 서비스 에이전트에 프로젝트, 폴더, 조직에 대한 액세스 부여: 조직 관리자 (roles/resourcemanager.organizationAdmin)

    역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

    이러한 사전 정의된 역할에는 서비스 상담사에게 액세스 권한을 부여하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

    필수 권한

    다음 권한은 서비스 에이전트에 액세스를 부여하는 데 필요합니다.

    • 서비스 에이전트에 프로젝트에 대한 액세스를 부여합니다.
      • resourcemanager.projects.getIamPolicy
      • resourcemanager.projects.setIamPolicy
    • 서비스 에이전트에 폴더에 대한 액세스를 부여합니다.
      • resourcemanager.folders.getIamPolicy
      • resourcemanager.folders.setIamPolicy
    • 서비스 에이전트에 조직에 대한 액세스를 부여합니다.
      • resourcemanager.organizations.getIamPolicy
      • resourcemanager.organizations.setIamPolicy

    커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

서비스 에이전트 역할을 부여하려면 다음과 같이 gcloud add-iam-policy-binding를 실행합니다.

프로젝트

gcloud projects add-iam-policy-binding PROJECT_ID \
 --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com" \
 --role="roles/osconfig.rolloutServiceAgent"
 gcloud projects add-iam-policy-binding PROJECT_ID \
 --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com" \
 --role="roles/osconfig.serviceAgent"
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com" \
--role="roles/progressiverollout.serviceAgent"

PROJECT_NUMBER를 IAM 정책 바인딩이 추가되는 프로젝트의 숫자 ID로 바꿉니다.

폴더

gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
 --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com" \
 --role="roles/osconfig.rolloutServiceAgent"
 gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
 --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com" \
 --role="roles/osconfig.serviceAgent"
gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
--member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com" \
--role="roles/progressiverollout.serviceAgent"

FOLDER_NUMBER를 IAM 정책 바인딩이 추가되는 폴더의 숫자 ID로 바꿉니다.

조직

gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
 --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com" \
 --role="roles/osconfig.rolloutServiceAgent"
 gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
 --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com" \
 --role="roles/osconfig.serviceAgent"
gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
--member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com" \
--role="roles/progressiverollout.serviceAgent"

ORGANIZATION_NUMBER를 IAM 정책 바인딩이 추가되는 조직의 숫자 ID로 바꿉니다.

다음 단계