このページでは、VM Manager でポリシー オーケストレーター機能を使用する前提条件について説明します。
組織とフォルダのオケストレーション用の割り当てプロジェクトを設定する
ポリシー オーケストレーターを使用して組織またはフォルダ内の 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 を有効にする
コンソール
Google Cloud コンソールで、API を有効にする Google Cloud プロジェクトを選択し、[API とサービス] ページに移動します。
[API とサービスの有効化] をクリックします。
[段階的なロールアウト] を検索します。
検索結果で [Progressive Rollout API] をクリックします。
API が有効になっていない場合は、[有効にする] をクリックします。
gcloud
Progressive Rollout API が有効になっているかどうかを確認するには、
PROJECT_ID
を API を有効にするプロジェクトの ID に置き換えて、次のコマンドを実行します。gcloud services list --project=PROJECT_ID
出力に
progressiverollout.googleapis.com
が表示されている場合、API は有効になっています。API が有効になっていない場合は、次のコマンドを実行して有効にします。
gcloud services enable progressiverollout.googleapis.com
詳細については、
gcloud services
をご覧ください。
OS Config サービス エージェントを設定する
ポリシー オーケストレーターは、OS Config サービス エージェントを使用してプロジェクトでアクションを実行します。また、独自のサービス エージェントを持つ Progressive Rollout API にも依存します。詳細については、サービス エージェントをご覧ください。
ポリシー オーケストレーターを作成するプロジェクト、フォルダ、組織ごとにサービス エージェントを作成する必要があります。
サービス エージェントを作成する手順は次のとおりです。
各リソースのサービス エージェントのメールアドレスの形式を確認します。
プロジェクト
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 に置き換えます。指定した 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 ロールアウト サービス エージェント(
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
-
- サービス エージェントにプロジェクトへのアクセス権を付与する: プロジェクト IAM 管理者(
サービス エージェントにロールを付与するには、次のように 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 に置き換えます。
次のステップ
- ポリシー オーケストレーターを使用して OS ポリシーの割り当てを管理する方法を確認する。
- ポリシー オーケストレーターを表示、編集する方法を学習する。