OS ポリシーは、パッケージ、リポジトリ、ファイルなどの OS リソースや、スクリプトで定義されたカスタム リソースの宣言型構成を含むファイルです。詳細については、OSPolicy
のリソース定義をご覧ください。
OS ポリシーの割り当ては、VM Manager が OS ポリシーを VM に適用するために使用する API リソースです。詳細については、OSPolicyAssignment
のリソース定義をご覧ください。
OS ポリシー
OS ポリシーは、次の 3 つのセクションを持つ JSON または YAML ファイルです。
モード。ポリシーの動作。次の 2 つのモードがあります。
Validation
: このモードでは、リソースが選択された状態かどうかをチェックします。アクションは実行されません。Enforcement
: このモードでは、リソースが選択された状態かどうかをチェックし、選択された状態でなければ、その状態にするために必要なアクションを実行します。
どちらのモードでも、VM Manager は OS ポリシーとその関連リソースのコンプライアンスを報告します。
リソース グループ。関連するリソース仕様が適用されるオペレーティング システムの名前とバージョン。たとえば、1 つのポリシーを定義して、エージェントを異なる OS ディストリビューションとバージョンにインストールまたはデプロイできます。
リソース。VM が選択された構成を実現するために必要な仕様。各リソース グループに指定できるリソース ID は最大 10 個です。サポートされるリソースタイプは次のとおりです。
pkg
: Linux パッケージと Windows パッケージのインストールまたは削除に使用されます。repository
: インストール元のリポジトリ ソフトウェア パッケージを指定するために使用されます。exec
: アドホック シェル(/bin/sh
)または PowerShell スクリプトを実行するために使用します。file
: システム上のファイルを管理する場合に使用します。
OS ポリシーの例
以下に、OS ポリシーの作成例を示します。これらの OS ポリシーは、OS ポリシーの割り当てを作成するときに Google Cloud コンソールにアップロードできます。
- 例 1: パッケージをインストールする。
- 例 2: スクリプトを実行する。
- 例 3: ダウンロード リポジトリを指定して、そのリポジトリからパッケージをインストールする。
- 例 4: Container-Optimized OS(COS)を実行している VM で CIS ベンチマーク スキャンを構成する。CIS ベンチマーク スキャンに OS ポリシーを使用する方法については、CIS コンプライアンス ステータスの有効化と確認を自動化するをご覧ください。
環境に適用可能な OS ポリシーのサンプルの完全なリストについては、GitHub の GoogleCloudPlatform/osconfig リポジトリをご覧ください。
例 1
Cloud Storage バケットからダウンロードした Windows MSI をインストールする OS ポリシーを作成します。
例 2
Linux VM 上で Apache ウェブサーバーが実行されているかどうかを確認する OS ポリシーを作成します。
例 3
Google Cloud Observability エージェントを CentOS VM にインストールする OS ポリシーを作成します。
例 4
CIS レベル 1 の定期的なスキャンを 1 日 1 回のデフォルトの間隔で構成します。
OS ポリシーの割り当て
OS ポリシーの割り当ては、次のセクションから構成されています。
OS ポリシー。VM に適用する 1 つ以上の OS ポリシー。ポリシーをダウンロードまたは作成する方法については、OS ポリシーをご覧ください。
ターゲット VM。ポリシーの適用先となる単一ゾーン内の VM のセット。ゾーン内で OS ファミリーと対象 / 除外ラベルを使用して、VM を制限することもできます。次のオプションの組み合わせを選択できます。
- OS ファミリー: OS ポリシーが適用されるターゲット オペレーティング システムを指定します。OS ポリシーをサポートするオペレーティング システムとバージョンの完全なリストについては、オペレーティング システムの詳細をご覧ください。
- 対象セット: VM またはシステムのラベルに基づいて OS ポリシーが適用される VM を指定します。
- 除外セット: VM またはシステムのラベルに基づいて OS ポリシーが無視する VM を指定します。
システムの命名規則に違反していなければ、対象と除外の両方のラベルセットで単一文字列のラベルを使用できます。ただし、ほとんどのラベルは
key:value
ペアで指定します。ラベルの詳細については、リソースのラベル付けをご覧ください。たとえば、次のように指定すると、テスト環境のすべての Ubuntu VM を対象にし、Google Kubernetes Engine を実行している VM を除外できます。
- OS ファミリー:
ubuntu
- 対象:
env:test
、env:staging
- 除外:
goog-gke-node
ロールアウト率。OS ポリシーを VM に適用するペースを指定します。OS ポリシーを段階的にロールアウトすると、システムの健全性を追跡し、更新によって環境内に問題が発生した場合に適切な修正を行うことができます。ロールアウト計画には次の要素が含まれます。
- ウェーブのサイズ(停止予算): 一度にロールアウトが可能な VM の固定数または割合。つまり、ロールアウトの時点で、指定した数の VM のみがターゲットに設定されます。
- 待機時間: サービスが VM にポリシーを適用してから、VM が停止しきい値から削除されるまでの時間。たとえば、待機時間を 15 分に設定した場合、VM にポリシーが適用された後、VM が停止しきい値から除外されてロールアウト処理が開始するまでに 15 分待機しなければなりません。この待機時間により、ロールアウトの速度を調整するだけでなく、ロールアウトの潜在的な問題を早期に検出し、解決できます。ロールアウトのステータスをモニタリングするのに十分な時間を選択してください。
たとえば、10 個のターゲットを設定し、停止しきい値を 20%、ベーキング タイムを 15 分に設定した場合、任意の時間内に 2 つの VM のみを更新するようにスケジューリングされます。各 VM が更新されてから 15 分が経過すると、VM の停止しきい値が解除され、別の VM がロールアウトに追加されます。
ロールアウトの詳細については、ロールアウトをご覧ください。
OS ポリシーの割り当ての例
以下に、OS ポリシーの割り当ての作成例を示します。これらの例を使用すると、Google Cloud CLI または OS Config API から OS ポリシーの割り当てを作成できます。
- 例 1: パッケージをインストールする。
- 例 2: スクリプトを実行する。
- 例 3: ダウンロード リポジトリを指定して、そのリポジトリからパッケージをインストールする。
環境に適用可能な OS ポリシーの割り当てのサンプルリストについては、GitHub の GoogleCloudPlatform/osconfig リポジトリをご覧ください。
例 1
Cloud Storage バケットからダウンロードした Windows MSI をインストールする OS ポリシーの割り当てを作成します。
例 2
すべての Linux VM 上で Apache ウェブサーバーが実行されているかどうかを確認する OS ポリシーの割り当てを作成します。
例 3
Google Cloud Observability エージェントを CentOS VM にインストールする OS ポリシーの割り当てを作成します。
次のステップ
- OS ポリシーの詳細を確認する。
- OS ポリシーの割り当てを作成する。
- OS ポリシーを管理する。