ポリシー ライブラリの作成

組織管理者は、コードとしてのインフラストラクチャを適用する際にデベロッパーが遵守すべきポリシーを定義する必要があります。一連の組織のポリシーは、ポリシー ライブラリとして表します。このページでは、一元化されたポリシー リポジトリを作成して制約を追加する方法について説明します。

始める前に

  • 組織のポリシー ライブラリを保存する空の Git リポジトリを準備します。
  • 安全に接続できるように Git を構成する必要があります。たとえば、Git リポジトリが GitHub にある場合、SSH を使用した GitHub への接続に記載されているプロセスに従います。

サンプル ライブラリを複製する

Google では、個人用に修正できる事前定義の制約テンプレートを含むサンプル リポジトリを用意しています。

  1. ポリシー ライブラリのサンプル リポジトリのクローンを作成し、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
    
  2. 次のコマンドを実行して、policies/templates で使用可能な制約テンプレートを確認します。 ls policies/templates

  3. 使用する制約テンプレートを選択します。この例では、Cloud Storage バケットのロケーションを適用する gcp_storage_location_v1.yaml を選択します。

  4. これらのテンプレートに対応する制約 YAML ファイルを policies/constraints に作成します。

  5. 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 制約を作成するをご覧ください。