OS ポリシーを使用して、Linux および Windows 仮想マシン(VM)インスタンス全体で一貫したソフトウェア構成を維持します。
始める前に
- OS ポリシーとその割り当てを確認します。
- OS Config の割り当てを確認します。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- OSPolicyAssignment 管理者(
roles/osconfig.osPolicyAssignmentAdmin
)。OS ポリシーの割り当てを作成、削除、更新、取得、一覧表示する権限が含まれます。 - OSPolicyAssignment 編集者(
roles/osconfig.osPolicyAssignmentEditor
)。OS ポリシーの割り当てを更新、取得、一覧表示する権限が含まれます。 - OSPolicyAssignment 閲覧者(
roles/osconfig.osPolicyAssignmentViewer
)。OS ポリシーの割り当てを取得して一覧表示するための読み取り専用アクセス権が含まれます。 PROJECT_ID
: プロジェクト IDUSER_ID
: ユーザーの Google Workspace のユーザー名。- VM Manager を設定します。
- ユーザーに必要な権限を割り当てます。
- OS ポリシーとその割り当てを確認します。
- OS ポリシー リソースを作成します。
OS ポリシーの割り当てを作成してロールアウトするには、次のいずれかの方法を使用します。
コンソール
OS ポリシーの割り当てを作成してロールアウトするには、次の手順を行います。
- ローカル クライアントで OS ポリシーを作成またはダウンロードします。これは JSON または YAML ファイルです。OS ポリシーの作成または OS のサンプル ポリシーの表示については、OS ポリシーをご覧ください。
Google Cloud コンソールで、[OS ポリシー] ページに移動します。
[OS ポリシーの割り当ての作成] をクリックします。
[割り当て ID] セクションで、OS ポリシーの割り当ての名前を入力します。リソースの命名規則をご覧ください。
[OS ポリシー] セクションで、OS ポリシー ファイルをアップロードします。
[ターゲット VM インスタンス] セクションで、ターゲット VM を指定します。
- ポリシーを適用する VM を含むゾーンを選択します。
- OS ファミリーを選択します。
- (省略可)対象ラベルまたは除外ラベルを指定して、VM をさらにフィルタリングできます。
たとえば、テスト環境のすべての Ubuntu VM を選択して、Google Kubernetes Engine を実行している VM を除外できます。
- OS ファミリー:
ubuntu
- 対象:
env:test
、env:staging
- 除外:
goog-gke-node
ロールアウト プランを指定します。
- ウェーブサイズ(停止予算)を指定します。例: 10%。
- 待ち時間を指定します。例: 15 分。
[ロールアウトを開始] をクリックします。
gcloud
ゾーンに OS ポリシーの割り当てを作成してロールアウトするには、次の手順を行います。
JSON または YAML 形式で OS ポリシー割り当てリソースを作成します。このファイルは、VM に適用する OS ポリシー、ポリシーを適用するターゲット VM、OS ポリシーを適用するロールアウト スピードを定義します。このファイルとサンプル割り当ての詳細については、OS ポリシーの割り当てをご覧ください。
os-config os-policy-assignments create
コマンドを使用して、指定したロケーションに OS ポリシーの割り当てを作成してロールアウトします。gcloud compute os-config os-policy-assignments create OS_POLICY_ASSIGNMENT_ID \ --location=ZONE \ --file=OS_POLICY_ASSIGNMENT_FILE \ --async
次のように置き換えます。
OS_POLICY_ASSIGNMENT_ID
: OS ポリシー割り当ての名前。リソースの命名規則をご覧ください。ZONE
: OS ポリシーの割り当てを作成するゾーン。OS_POLICY_ASSIGNMENT_FILE
: 前の手順で作成した OS ポリシー割り当てファイルの絶対パス。
例
gcloud compute os-config os-policy-assignments create my-os-policy-assignment \ --location=asia-south1-a \ --file=/downloads/assignment-config.yaml \ --async
出力は次のようになります。
Create request issued for: [my-os-policy-assignment] Check operation [projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa] for status.
オペレーションの完全修飾リソース名をメモします。上述の例では、完全修飾リソース名は次のようになります。
projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa
この完全修飾リソース名は、ロールアウトの詳細取得やキャンセルに使用できます。ロールアウトをご覧ください。
Terraform
OS ポリシーの割り当てを作成するには、
google_os_config_os_policy_assignment
リソースを使用します。次の例では、CentOS VM で Apache ウェブサーバーが実行されているかどうかを確認します。
Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
REST
ローカル クライアントで OS ポリシーの割り当てを作成するには、次の操作を行います。
OS ポリシーの割り当てを作成します。これは JSON ファイルである必要があります。OS ポリシーの割り当ての作成、サンプルの OS ポリシー割り当ての表示については、OS ポリシーの割り当てをご覧ください。
サンプル YAML OS ポリシーの割り当てを使用する場合は、JSON に変換する必要があります。
API で、
projects.locations.osPolicyAssignments.create
メソッドに対するPOST
リクエストを作成します。リクエスト本文に、前の手順でコピーした OS ポリシーの割り当てを貼り付けます。
POST https://osconfig.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/OSPolicyAssignments?osPolicyAssignmentId=OS_POLICY_ASSIGNMENT_ID { JSON_OS_POLICY }
次のように置き換えます。
PROJECT_ID
: プロジェクト IDOS_POLICY_ASSIGNMENT_ID
: OS ポリシー割り当ての名前JSON_OS_POLICY
: 前の手順で作成した OS ポリシーの割り当ての仕様。JSON 形式にする必要があります。パラメータと形式の詳細については、Resource: OSPolicyAssignment
をご覧ください。ZONE
: OS ポリシーの割り当てを作成するゾーン
例
たとえば、サンプル OS ポリシーの割り当てを使用して、特定の VM にモニタリング エージェントとロギング エージェントをインストールする Google Cloud のオペレーション スイートに OS ポリシーの割り当てを作成するには、次の操作を行います。
- サンプルを JSON に変換します。
- 次のリクエストを行います。
POST https://osconfig.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/OSPolicyAssignments?osPolicyAssignmentId=OS_POLICY_ASSIGNMENT_ID { "osPolicies": [ { "id": "setup-repo-and-install-package-policy", "mode": "ENFORCEMENT", "resourceGroups": [ { "resources": [ { "id": "setup-repo", "repository": { "yum": { "id": "google-cloud-monitoring", "displayName": "Google Cloud Monitoring Agent Repository", "baseUrl": "https://packages.cloud.google.com/yum/repos/google-cloud-monitoring-el8-x86_64-all", "gpgKeys": [ "https://packages.cloud.google.com/yum/doc/yum-key.gpg", "https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg" ] } } }, { "id": "install-pkg", "pkg": { "desiredState": "INSTALLED", "yum": { "name": "stackdriver-agent" } } } ] } ] } ], "instanceFilter": { "inclusionLabels": [ { "labels": { "used_for": "testing" } } ] }, "rollout": { "disruptionBudget": { "fixed": 10 }, "minWaitDuration": { "seconds": 300 } } }
Google Cloud コンソールで、[OS ポリシー] ページに移動します。
[OS ポリシーの割り当て] タブをクリックします。
ロールアウトをキャンセルする OS ポリシーの割り当てで、[アクション( > [ロールアウトをキャンセル] をクリックします。
)][ロールアウトをキャンセル] をクリックします。
- OS ポリシーの詳細を確認する。
- OS ポリシーの割り当てを管理する。
Terraform
ローカル開発環境でこのページの Terraform サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については Set up authentication for a local development environment をご覧ください。
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 ポリシーを使用して VM にソフトウェア パッケージをインストールして管理できるため、OS ポリシーを作成して管理することは VM でリモートコード実行アクセス権を付与することと同等です。
OS ポリシーを設定すると、IAM 権限を使用してポリシー リソースとアクセスが制御され、アクティビティが監査ログに記録されます。引き続き VM でコードを実行することは可能ですが、これは潜在的なセキュリティ リスクをもたらす可能性があります。この問題を軽減するため、必要なアクセス権のみを各ユーザーに付与することをおすすめします。
プロジェクトのオーナーは、OS ポリシーの割り当てを作成、管理するための完全アクセス権を持ちます。他のすべてのユーザーには、権限を付与する必要があります。次のいずれかの詳細なロールを付与できます。
権限を設定するコマンドの例
OS ポリシーを割り当てるための管理者権限をユーザーに付与するには、次のコマンドを実行します。
gcloud projects add-iam-policy-binding PROJECT_ID \ --member user:USER_ID@gmail.com \ --role roles/osconfig.osPolicyAssignmentAdmin
次のように置き換えます。
OS ポリシーの割り当てを作成する
OS ポリシーの割り当てを作成してロールアウトするには、次の手順を行います。
ロールアウト
OS ポリシーの割り当ては、ロールアウト率に従ってデプロイされます。つまり、一連の VM をターゲットとする割り当ては段階的にデプロイでき、すべての VM にすぐに適用されるわけではありません。変更は段階的にロールアウトされます。新しい変更で問題が発生した場合は、ロールアウトをキャンセルして元に戻すことができます。
API がメソッド呼び出しの完了に時間がかかる場合、API は長時間実行オペレーション(LRO)を返します。LRO の詳細については、長時間実行オペレーションをご覧ください。
OS ポリシーの割り当てを作成、更新、削除するたびに、OS Config Service API が LRO を作成します。各 LRO はオペレーション リソースを返します。このオペレーション リソースは次のようになります。
Create request issued for: [my-os-policy-assignment] Check operation [projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa] for status.
作成、更新、削除の各オペレーションでも、OS ポリシー割り当ての新しいバージョンが生成されます。OS ポリシーの割り当てのリビジョンを表示するには、OS ポリシー割り当てのリビジョンの一覧表示をご覧ください。
Google Cloud CLI を使用して、ロールアウトの詳細を取得することや、ロールアウトをキャンセルできます。
ロールアウトの詳細を取得する
ロールアウトの詳細を取得するには、
os-config os-policy-assignments operations describe
コマンドを使用します。gcloud compute os-config os-policy-assignments operations describe FULLY_QUALIFIED_OPERATION_NAME
FULLY_QUALIFIED_OPERATION_NAME
は、作成、更新、削除の各オペレーションで返される完全修飾リソース名に置き換えます。例
gcloud compute os-config os-policy-assignments operations describe \ projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa
出力例
done: true metadata: '@type': type.googleapis.com/google.cloud.osconfig.$$api-version$$.OSPolicyAssignmentOperationMetadata apiMethod: CREATE osPolicyAssignment: projects/3841234882888/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment@cfb78790-41d8-40d1-b8a1-1eaf6011b909 rolloutStartTime: '2021-04-15T00:53:52.963569Z' rolloutState: SUCCEEDED rolloutUpdateTime: '2021-04-15T00:53:53.094041Z' name: projects/3841234882888/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/cfb78790-41d8-40d1-b8a1-1eaf6011b909 response: '@type': type.googleapis.com/google.cloud.osconfig.$$api-version$$.OSPolicyAssignment baseline: true description: My test policy instanceFilter: inclusionLabels: - labels: label-key-not-targeting-instances: label-value-not-targeting-instances name: projects/3841234882888/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment osPolicies: - id: q-test-policy mode: ENFORCEMENT resourceGroups: - osFilter: osShortName: centos osVersion: '7' resources: - id: add-repo repository: yum: baseUrl: https://packages.cloud.google.com/yum/repos/google-cloud-ops-agent-el7-x86_64-all
ロールアウトのキャンセル
コンソール
gcloud
ロールアウトをキャンセルするには、
gcloud compute os-config os-policy-assignments operations cancel
コマンドを使用します。gcloud compute os-config os-policy-assignments operations cancel FULLY_QUALIFIED_OPERATION_NAME
FULLY_QUALIFIED_OPERATION_NAME
は、作成、更新、削除の各オペレーションで返される完全修飾リソース名に置き換えます。例
gcloud compute os-config os-policy-assignments operations cancel \ projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa
コマンドが成功した場合、出力は返されません。
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-12-22 UTC。
-