このページでは、VM Manager のポリシー オーケストレーター機能を使用して、フォルダまたは組織内の異なるプロジェクトとゾーンにまたがって OS ポリシー リソースを作成、更新、削除する方法について説明します。
始める前に
- OS ポリシーとその割り当てを確認します。
- OS Config の割り当てを確認します。
- ポリシー オーケストレーターの使用に関する前提条件を満たしていることを確認します。
-
まだ設定していない場合は、認証を設定します。認証とは、サービスと API にアクセスするために ID を確認するプロセスです。 Google Cloud ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
-
プロジェクトとゾーンにまたがって OS ポリシーの割り当てを作成または更新する
ポリシー オーケストレーターを作成して、プロジェクト、フォルダ、または組織内の選択したリソースに OS ポリシーを適用できます。
ポリシー オーケストレーターを作成し、フォルダに OS ポリシーの割り当てを適用する手順は次のとおりです。
- ローカル クライアントで OS ポリシー ファイルを作成またはダウンロードします。このファイルは JSON または YAML ファイルである必要があります。OS ポリシーの作成または OS のサンプル ポリシーの表示については、OS ポリシーをご覧ください
Google Cloud コンソールで、[OS ポリシー] ページに移動します。
Google Cloud コンソールのアクションバーで [プロジェクト セレクタ] をクリックし、ポリシー オーケストレーターを作成するフォルダを選択します。
[Create Policy Orchestrator] をクリックします。
ポリシー オーケストレーターの名前と説明を指定します。リソースの命名規則をご覧ください。VM Manager は、ポリシー オーケストレーターに一意のオケストレーター ID を割り当てます。この ID は必要に応じて編集できます。
[OS ポリシー] セクションで、OS ポリシー ファイルをアップロードします。
省略可: [状態] セクションで、次のいずれかのオプションを選択して、ポリシー オーケストレーターの動作を指定します。
ACTIVE
: 作成されると、ポリシー オーケストレーターはすぐにアクションを実行します。STOPPED
: この状態のポリシー オーケストレーターは、すぐにアクションを実行しません。ポリシー オーケストレーターは後で編集して状態を変更できます。
[アクション] フィールドで、[UPSERT] アクションを選択します。
[オーケストレーション スコープ] セクションで、OS ポリシーをロールアウトするフォルダとプロジェクトを指定します。これらのフィールドには、プロジェクト番号とフォルダ番号のみを入力する必要があります(例:
123456,7654321
)。OS ポリシーを適用する VM を含むゾーンを選択します。または、[すべて選択] をクリックして、すべてのゾーンのリソースに OS ポリシーの変更を適用します。
省略可: [ターゲット VM インスタンス] セクションで、OS ポリシーを適用するターゲット VM を指定します。
- OS ファミリーを選択します。
対象ラベルまたは除外ラベルを指定して、VM をさらにフィルタリングできます。
たとえば、次のように指定すると、テスト環境のすべての Ubuntu VM を対象にし、Google Kubernetes Engine を実行している VM を除外できます。
- OS ファミリー:
ubuntu
- 対象:
env:test
、env:staging
- 除外:
goog-gke-node
- OS ファミリー:
OS ポリシーの割り当てのロールアウト プランを指定します。
- ウェーブサイズ(停止予算)を指定します。例: 10%。
- 待ち時間を指定します。例: 15 分。
[作成] をクリックします。
ポリシー オーケストレーターを作成するには、次の操作を行います。
JSON または YAML 形式で OS ポリシー割り当てリソースを作成またはダウンロードします。このファイルとサンプル ポリシーの割り当ての詳細については、OS ポリシーの割り当てをご覧ください。
beta os-config policy-orchestrators create
コマンドを使用して、指定したスコープに OS ポリシーの割り当てを作成してロールアウトします。
gcloud beta compute os-config policy-orchestrators createORCHESTRATOR_NAME \ --policy-type=os_policy_assignment_v1 \ --policy-file=OS_POLICY_ASSIGNMENT_YAML_FILE \ --policy-id=POLICY_ID \
次のように置き換えます。
ORCHESTRATOR_NAME
: ポリシー オーケストレーターの名前。リソースの命名規則をご覧ください。OS_POLICY_ASSIGNMENT_FILE
: 前の手順で作成した OS ポリシー割り当てファイルの絶対パス。POLICY_ID
: ポリシー オーケストレーターの一意の ID。値を指定しない場合、ポリシー オーケストレーターはオーケストレーター リソースに一意の ID を割り当てます。
例
gcloud beta compute os-config policy-orchestrators create my-os-policy-orchestrator \ --policy-type=os_policy_assignment_v1 \ --policy-file=/downloads/assignment-config.yaml \ --policy-id=policy-123 \
gcloud --billing-project=QUOTA_PROJECT_ID beta compute os-config policy-orchestrators createORCHESTRATOR_NAME \ --folder=FOLDER_NUMBER \ --policy-type=os_policy_assignment_v1 \ --policy-file=OS_POLICY_ASSIGNMENT_YAML_FILE \ --policy-id=POLICY_ID \ --include-projects=PROJECT_NUMBERS
次のように置き換えます。
QUOTA_PROJECT_ID
: 割り当てまたは課金プロジェクトのプロジェクト ID。ORCHESTRATOR_NAME
: ポリシー オーケストレーターの名前。リソースの命名規則をご覧ください。FOLDER_NUMBER
: ポリシー オーケストレーターを作成するフォルダのフォルダ番号。OS_POLICY_ASSIGNMENT_FILE
: 前の手順で作成した OS ポリシー割り当てファイルの絶対パス。POLICY_ID
: ポリシー オーケストレーターの一意の ID。値を指定しない場合、ポリシー オーケストレーターはオーケストレーター リソースに一意の ID を割り当てます。PROJECT_NUMBERS
: OS ポリシーの割り当てを適用するプロジェクトのリスト。プロジェクト番号(プロジェクトの一意の数値 ID)を指定する必要があります。
例
gcloud --billing-project=my-quota-project beta compute os-config policy-orchestrators create my-os-policy-orchestrator \ --folder=123456 \ --policy-type=os_policy_assignment_v1 \ --policy-file=/downloads/assignment-config.yaml \ --policy-id=policy-123 \ --include-projects=87654321,4567890
gcloud --billing-project=QUOTA_PROJECT_ID beta compute os-config policy-orchestrators createORCHESTRATOR_NAME \ --organization=ORGANIZATION_NUMBER \ --policy-type=os_policy_assignment_v1 \ --policy-file=OS_POLICY_ASSIGNMENT_YAML_FILE \ --policy-id=POLICY_ID \ --include-projects=PROJECT_NUMBERS
次のように置き換えます。
QUOTA_PROJECT_ID
: 割り当てまたは課金プロジェクトのプロジェクト ID。ORCHESTRATOR_NAME
: ポリシー オーケストレーターの名前。リソースの命名規則をご覧ください。FOLDER_NUMBER
: ポリシー オーケストレーターを作成するフォルダのフォルダ番号。OS_POLICY_ASSIGNMENT_FILE
: 前の手順で作成した OS ポリシー割り当てファイルの絶対パス。POLICY_ID
: ポリシー オーケストレーターの一意の ID。値を指定しない場合、ポリシー オーケストレーターはオーケストレーター リソースに一意の ID を割り当てます。PROJECT_NUMBERS
: OS ポリシーの割り当てを適用するプロジェクトのリスト。プロジェクト番号(プロジェクトの一意の数値 ID)を指定する必要があります。
例
gcloud --billing-project=my-quota-project beta compute os-config policy-orchestrators create my-os-policy-orchestrator \ --organization=123456 \ --policy-type=os_policy_assignment_v1 \ --policy-file=/downloads/assignment-config.yaml \ --policy-id=policy-123 \ --include-projects=87654321,4567890
ポリシー オーケストレーターを作成するには、次の操作を行います。
OS ポリシーの割り当てファイルを作成またはダウンロードします。これは JSON ファイルである必要があります。OS ポリシーの割り当ての作成、サンプルの OS ポリシー割り当ての表示については、OS ポリシーの割り当てをご覧ください。
ポリシー オーケストレーターを作成するスコープに応じて、次のいずれかの方法を使用します。
POST
リクエストを projects.locations.global.policyOrchestrators.create
メソッドに送信します。
リクエスト本文に、前の手順でコピーした OS ポリシーの割り当てを貼り付けます。
POST https://osconfig.googleapis.com/v2beta/projects/PROJECT_NUMBER /locations/global/policyOrchestrators {JSON_OS_POLICY_ORCHESTRATOR }
次のように置き換えます。
PROJECT_NUMBER
: ポリシー オーケストレーターを作成するプロジェクトの数値 ID。JSON_OS_POLICY_ORCHESTRATOR
: オーケストレーター スコープ、オーケストレートされたリソース、オーケストレーションの状態を定義する JSON 形式のポリシー オーケストレーター オブジェクト。パラメータと形式の詳細については、Resource: folders.locations.global.policyOrchestrators
をご覧ください。
例
たとえば、サンプル OS ポリシーの割り当てを使用して、Cloud Storage バケットからダウンロードした Windows MSI をインストールする OS ポリシーの割り当てを作成するには、次の操作を行います。
- サンプルを JSON に変換します。
次のリクエストを行います。
POST https://osconfig.googleapis.com/v2beta/projects/123456/locations/global/policyOrchestrators { "action": "UPSERT", "orchestratedResource": { "osPolicyAssignmentV1Payload": { "instanceFilter": { "inventories": [ { "osShortName": "windows" } ] }, "osPolicies": [ { "id": "install-msi-policy", "mode": "ENFORCEMENT", "resourceGroups": [ { "resources": [ { "id": "install-msi", "pkg": { "desiredState": "INSTALLED", "msi": { "source": { "gcs": { "bucket": "my-bucket", "generation": "1619136883923956", "object": "my-app.msi" } } } } } ] } ] } ], "rollout": { "disruptionBudget": { "fixed": 10 }, "minWaitDuration": "300s" } } }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }
POST
リクエストを folders.locations.global.policyOrchestrators.create
メソッドに送信します。
リクエスト本文に、前の手順でコピーした OS ポリシーの割り当てを貼り付けます。
POST https://osconfig.googleapis.com/v2beta/folders/FOLDER_NUMBER /locations/global/policyOrchestrators -H "x-goog-user-project:QUOTA_PROJECT_ID " {JSON_OS_POLICY_ORCHESTRATOR }
次のように置き換えます。
QUOTA_PROJECT_ID
: 割り当てまたは課金プロジェクトのプロジェクト ID。FOLDER_NUMBER
: ポリシー オーケストレーターを作成するフォルダの数値 ID。JSON_OS_POLICY_ORCHESTRATOR
: オーケストレーター スコープ、オーケストレートされたリソース、オーケストレーションの状態を定義する JSON 形式のポリシー オーケストレーター オブジェクト。パラメータと形式の詳細については、Resource: folders.locations.global.policyOrchestrators
をご覧ください。
例
たとえば、サンプル OS ポリシーの割り当てを使用して、Cloud Storage バケットからダウンロードした Windows MSI をインストールする OS ポリシーの割り当てを作成するには、次の操作を行います。
- サンプルを JSON に変換します。
次のリクエストを行います。
POST https://osconfig.googleapis.com/v2beta/folders/123456/locations/global/policyOrchestrators \ -H "x-goog-user-project: my-quota-project { "action": "UPSERT", "orchestratedResource": { "osPolicyAssignmentV1Payload": { "instanceFilter": { "inventories": [ { "osShortName": "windows" } ] }, "osPolicies": [ { "id": "install-msi-policy", "mode": "ENFORCEMENT", "resourceGroups": [ { "resources": [ { "id": "install-msi", "pkg": { "desiredState": "INSTALLED", "msi": { "source": { "gcs": { "bucket": "my-bucket", "generation": "1619136883923956", "object": "my-app.msi" } } } } } ] } ] } ], "rollout": { "disruptionBudget": { "fixed": 10 }, "minWaitDuration": "300s" } } }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }
POST
リクエストを organizations.locations.global.policyOrchestrators.create
メソッドに送信します。
リクエスト本文に、前の手順でコピーした OS ポリシーの割り当てを貼り付けます。
POST https://osconfig.googleapis.com/v2beta/organizations/ORGANIZATION_NUMBER /locations/global/policyOrchestrators \ -H "x-goog-user-project:QUOTA_PROJECT_ID " {JSON_OS_POLICY_ORCHESTRATOR }
次のように置き換えます。
QUOTA_PROJECT_ID
: 割り当てまたは課金プロジェクトのプロジェクト ID。ORGANIZATION_NUMBER
: ポリシー オーケストレーターを作成する組織の数値 ID。JSON_OS_POLICY_ORCHESTRATOR
: オーケストレーター スコープ、オーケストレートされたリソース、オーケストレーションの状態を定義する JSON 形式のポリシー オーケストレーター オブジェクト。パラメータと形式の詳細については、Resource: organizations.locations.global.policyOrchestrators
をご覧ください。
例
たとえば、サンプル OS ポリシーの割り当てを使用して、Cloud Storage バケットからダウンロードした Windows MSI をインストールする OS ポリシーの割り当てを作成するには、次の操作を行います。
- サンプルを JSON に変換します。
次のリクエストを行います。
POST https://osconfig.googleapis.com/v2beta/organizations/567890/locations/global/policyOrchestrators \ -H "x-goog-user-project: my-quota-project { "action": "UPSERT", "orchestratedResource": { "osPolicyAssignmentV1Payload": { "instanceFilter": { "inventories": [ { "osShortName": "windows" } ] }, "osPolicies": [ { "id": "install-msi-policy", "mode": "ENFORCEMENT", "resourceGroups": [ { "resources": [ { "id": "install-msi", "pkg": { "desiredState": "INSTALLED", "msi": { "source": { "gcs": { "bucket": "my-bucket", "generation": "1619136883923956", "object": "my-app.msi" } } } } } ] } ] } ], "rollout": { "disruptionBudget": { "fixed": 10 }, "minWaitDuration": "300s" } } }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }
複数のプロジェクトから OS ポリシーの割り当てを削除する
ポリシー オーケストレーターを使用して、OS ポリシー リソースの一意のポリシー ID を指定して、フォルダまたは組織内の複数のプロジェクトから OS ポリシーを削除できます。
フォルダ内の OS ポリシーを削除する手順は次のとおりです。
- ローカル クライアントで OS ポリシー ファイルを作成またはダウンロードします。このファイルは JSON または YAML ファイルである必要があります。OS ポリシーの作成または OS のサンプル ポリシーの表示については、OS ポリシーをご覧ください
Google Cloud コンソールで、[OS ポリシー] ページに移動します。
Google Cloud コンソールのアクションバーで [プロジェクト セレクタ] をクリックし、ポリシー オーケストレーターを作成するフォルダを選択します。
[Create Policy Orchestrator] をクリックします。
ポリシー オーケストレーターの名前と説明を指定します。リソースの命名規則をご覧ください。VM Manager は、ポリシー オーケストレーターに一意のオケストレーター ID を割り当てます。この ID は必要に応じて編集できます。
[OS ポリシー] セクションで、OS ポリシー ファイルを選択してアップロードします。
省略可: [状態] セクションで、次のいずれかのオプションを選択して、ポリシー オーケストレーターの動作を指定します。
ACTIVE
: 作成されると、ポリシー オーケストレーターはすぐにアクションを実行します。STOPPED
: この状態のポリシー オーケストレーターは、すぐにアクションを実行しません。ポリシー オーケストレーターは後で編集して状態を変更できます。
[アクション] フィールドで、[削除] アクションを選択します。
[オーケストレーション スコープ] セクションで、OS ポリシーをロールアウトするフォルダとプロジェクトを指定します。これらのフィールドには、プロジェクト番号とフォルダ番号のみを入力する必要があります(例:
123456,7654321
)。OS ポリシーを適用する VM を含むゾーンを選択します。
省略可: [ターゲット VM インスタンス] セクションで、OS ポリシーを適用するターゲット VM を指定します。
- OS ファミリーを選択します。
対象ラベルまたは除外ラベルを指定して、VM をさらにフィルタリングできます。
たとえば、次のように指定すると、テスト環境のすべての Ubuntu VM を対象にし、Google Kubernetes Engine を実行している VM を除外できます。
- OS ファミリー:
ubuntu
- 対象:
env:test
、env:staging
- 除外:
goog-gke-node
- OS ファミリー:
OS ポリシーの割り当てのロールアウト プランを指定します。
- ウェーブサイズ(停止予算)を指定します。例: 10%。
- 待ち時間を指定します。例: 15 分。
[作成] をクリックします。
ポリシー オーケストレーターを使用して複数のプロジェクトから OS ポリシーを削除するには、beta os-config policy-orchestrators create
コマンドを使用して、OS ポリシーの割り当てに関連付けられている policy-id
のアクションを delete
として指定します。
gcloud beta compute os-config policy-orchestrators createORCHESTRATOR_NAME \ --policy-type=os_policy_assignment_v1 \ --policy-file=OS_POLICY_ASSIGNMENT_YAML_FILE \ --policy-id=POLICY_ID \ --action=delete
次のように置き換えます。
FOLDER_NUMBER
: OS ポリシー リソースを削除するフォルダの数値 ID。POLICY_ID
: OS ポリシー オーケストレーター リソースのポリシー ID。
例
gcloud beta compute os-config policy-orchestrators create my-os-policy-orchestrator \ --policy-type=os_policy_assignment_v1 --policy-id=my-policy \ --action=delete
gcloud --billing-project=QUOTA_PROJECT_ID beta compute os-config policy-orchestrators createORCHESTRATOR_NAME \ --policy-type=os_policy_assignment_v1 \ --policy-id=POLICY_ID \ --action=delete
次のように置き換えます。
QUOTA_PROJECT_ID
: 割り当てまたは課金プロジェクトのプロジェクト ID。FOLDER_NUMBER
: OS ポリシー リソースを削除するフォルダの数値 ID。POLICY_ID
: OS ポリシー オーケストレーター リソースのポリシー ID。
例
gcloud --billing-project=my-quota-project beta compute os-config policy-orchestrators create my-os-policy-orchestrator \ --folder=123456 \ --policy-type=os_policy_assignment_v1 \ --policy-id=my-policy \ --action=delete
gcloud --billing-project=QUOTA_PROJECT_ID beta compute os-config policy-orchestrators createORCHESTRATOR_NAME \ --organization=ORGANIZATION_NUMBER \ --policy-type=os_policy_assignment_v1 \ --policy-id=POLICY_ID \ --action=delete
次のように置き換えます。
QUOTA_PROJECT_ID
: 割り当てまたは課金プロジェクトのプロジェクト ID。ORGANIZATION_NUMBER
: OS ポリシー リソースを削除する組織の数値 ID。POLICY_ID
: OS ポリシー オーケストレーター リソースのポリシー ID。
例
gcloud --billing-project=my-quota-project beta compute os-config policy-orchestrators create my-os-policy-orchestrator \ --organization=987654321 --policy-type=os_policy_assignment_v1 --policy-id=my-policy \ --action=delete
複数のプロジェクトから OS ポリシーを削除するポリシー オーケストレーターを作成するには、次のいずれかの方法を使用して、アクションを DELETE
として指定します。
POST
リクエストを projects.locations.global.policyOrchestrators.create
メソッドに送信します。
リクエスト本文で、OS ポリシーの割り当てに関連付けられているポリシー ID を指定します。
POST https://osconfig.googleapis.com/v2beta/projects/PROJECT_NUMBER /locations/global/policyOrchestrators {JSON_OS_POLICY_ORCHESTRATOR }
次のように置き換えます。
PROJECT_NUMBER
: ポリシー オーケストレーターを作成するプロジェクトの数値 ID。JSON_OS_POLICY_ORCHESTRATOR
: オーケストレーター スコープ、オーケストレートされたリソース、オーケストレーションの状態を定義する JSON 形式のポリシー オーケストレーター オブジェクト。パラメータと形式の詳細については、Resource: folders.locations.global.policyOrchestrators
をご覧ください。
例
POST https://osconfig.googleapis.com/v2beta/projects/567890/locations/global/policyOrchestrators { "action": "DELETE", "orchestratedResource": { "id": "my-policy", "osPolicyAssignmentV1Payload": {} }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }
POST
リクエストを folders.locations.global.policyOrchestrators.create
メソッドに送信します。
リクエスト本文で、OS ポリシーの割り当てに関連付けられているポリシー ID を指定します。
POST https://osconfig.googleapis.com/v2beta/folders/FOLDER_NUMBER /locations/global/policyOrchestrators -H "x-goog-user-project:QUOTA_PROJECT_ID " {JSON_OS_POLICY_ORCHESTRATOR }
次のように置き換えます。
QUOTA_PROJECT_ID
: 割り当てまたは課金プロジェクトのプロジェクト ID。FOLDER_NUMBER
: OS ポリシー リソースを削除するフォルダの数値 ID。JSON_OS_POLICY_ORCHESTRATOR
: ポリシー ID、オーケストレーター スコープ、オーケストレートされたリソース、オーケストレーションの状態を定義する JSON 形式のポリシー オーケストレーター オブジェクト。パラメータと形式の詳細については、Resource: folders.locations.global.policyOrchestrators
をご覧ください。
例
たとえば、複数のプロジェクトから OS ポリシー リソースを削除するには、次のリクエストを実行します。
POST https://osconfig.googleapis.com/v2beta/folders/567890/locations/global/policyOrchestrators -H "x-goog-user-project: my-quota-project { "action": "DELETE", "orchestratedResource": { "id": "my-policy", "osPolicyAssignmentV1Payload": {} }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }
POST
リクエストを organizations.locations.global.policyOrchestrators.create
メソッドに送信します。
リクエスト本文で、OS ポリシーの割り当てに関連付けられているポリシー ID を指定します。
POST https://osconfig.googleapis.com/v2beta/organizations/ORGANIZATION_NUMBER /locations/global/policyOrchestrators -H "x-goog-user-project:QUOTA_PROJECT_ID " {JSON_OS_POLICY_ORCHESTRATOR }
次のように置き換えます。
QUOTA_PROJECT_ID
: 割り当てまたは課金プロジェクトのプロジェクト ID。ORGANIZATION_NUMBER
: OS ポリシー リソースを削除する組織の数値 ID。JSON_OS_POLICY_ORCHESTRATOR
: ポリシー ID、オーケストレーター スコープ、オーケストレートされたリソース、オーケストレーションの状態を定義する JSON 形式のポリシー オーケストレーター オブジェクト。パラメータと形式の詳細については、Resource: organizations.locations.global.policyOrchestrators
をご覧ください。
例
たとえば、複数のプロジェクトから OS ポリシー リソースを削除するには、次のリクエストを実行します。
POST https://osconfig.googleapis.com/v2beta/organizations/567890/locations/global/policyOrchestrators -H "x-goog-user-project: my-quota-project { "action": "DELETE", "orchestratedResource": { "id": "my-policy", "osPolicyAssignmentV1Payload": {} }, "orchestrationScope": { "selectors": [ { "resourceHierarchySelector": { "includedProjects": [ "projects/87654321", "projects/4567890" ] } } ] }, "state": "ACTIVE" }