組織管理者は、コードとしてのインフラストラクチャを適用する際にデベロッパーが遵守すべきポリシーを定義する必要があります。一連の組織のポリシーは、ポリシー ライブラリとして表します。このページでは、一元化されたポリシー リポジトリを作成して制約を追加する方法について説明します。
始める前に
- 組織のポリシー ライブラリを保存する空の Git リポジトリを準備します。
- 安全に接続できるように Git を構成する必要があります。たとえば、Git リポジトリが GitHub にある場合、SSH を使用した GitHub への接続に記載されているプロセスに従います。
サンプル ライブラリを複製する
Google では、個人用に修正できる事前定義の制約テンプレートを含むサンプル リポジトリを用意しています。
ポリシー ライブラリのサンプル リポジトリのクローンを作成し、POLICY_LIBRARY_REPO に複製します。
git clone https://github.com/GoogleCloudPlatform/policy-library.git cd policy-library git remote set-url origin POLICY_LIBRARY_REPO git push origin main
次のコマンドを実行して、
policies/templates
で使用可能な制約テンプレートを確認します。ls policies/templates
使用する制約テンプレートを選択します。この例では、Cloud Storage バケットのロケーションを適用する
gcp_storage_location_v1.yaml
を選択します。これらのテンプレートに対応する制約 YAML ファイルを
policies/constraints
に作成します。policy-library
リポジトリのローカルコピーから、次のコマンドで変更を commit して push します。git add --all . git commit -m "Initial commit of policy library constraints" git push -u origin main
ライブラリ構造
ポリシー ライブラリ リポジトリには、以下のディレクトリが含まれています。
policies/
- このディレクトリには 2 つのサブディレクトリがあります。constraints/
- 初期状態では、このディレクトリは空です。ここに制約ファイルを配置します。templates/
- このディレクトリには、事前定義済みの制約テンプレートが含まれます。
validator/
- このディレクトリには、.rego
ファイルとそれに関連付けられた単体テストが含まれます。既存の制約テンプレートの変更や、新しい制約テンプレートの作成を行わない限り、このディレクトリを操作する必要はありません。make build
を実行すると、対応する制約テンプレート ファイルの Rego コンテンツがインライン化されます。
定期的な更新
公開リポジトリから定期的に変更を pull する必要があります。この変更に新しいテンプレートと Rego ファイルが含まれている場合があります。
git remote add public https://github.com/GoogleCloudPlatform/policy-library.git
git pull public main
git push origin main
次のステップ
ポリシー ライブラリには、いくつかの制約テンプレートと制約の例を含む samples
フォルダがあります。制約テンプレートと制約の作成方法と使用方法については、Terraform の制約を作成するまたは CAI 制約を作成するをご覧ください。