Google Cloud コンソールを使用してポリシーを構成する

このページでは、Google Cloud コンソールを使用して Binary Authorization ポリシーを構成する手順について説明します。これらのタスクは、Google Cloud CLI または REST API でも行うことができます。この手順は Binary Authorization の設定の一部です。

ポリシーとは、コンテナ イメージのデプロイを規定する一連のルールです。

始める前に

  1. Binary Authorization を有効にします

  2. プラットフォームで Binary Authorization を有効にします。

  3. 証明書を使用する場合は、ポリシーを構成する前に認証者を作成することをおすすめします。認証者を作成するには、Google Cloud コンソールまたはコマンドライン ツールを使用します。

  4. Binary Authorization を有効にしたプロジェクトのプロジェクト ID を選択します。

デフォルト ルールを設定する

このセクションの内容は、GKE、GKE Multi-Cloud、Distributed Cloud、Cloud Run、Cloud Service Mesh を対象としています。

ルールは、イメージをデプロイする前に満たす必要がある制約を定義するポリシーの一部です。デフォルト ルールは、独自のクラスタ固有のルールがなく、すべての対象コンテナ イメージに適用される制約を定義します。すべてのポリシーにはデフォルト ルールがあります。

デフォルト ルールを設定するには、次のようにします。

  1. Google Cloud コンソールで [Binary Authorization] ページに移動します。

    [Binary Authorization] ページに移動

  2. [ポリシー] タブをクリックします。

  3. [ポリシーの編集] をクリックします。

  4. デフォルト ルールの評価モードを選択します。

    評価モードにより、デプロイ時に Binary Authorization が適用する制約のタイプが指定されます。評価モードを設定するには、次のいずれかのオプションを選択します。

    • すべてのイメージを許可: すべてのイメージのデプロイを許可します。
    • すべてのイメージを禁止: すべてのイメージのデプロイを禁止します。
    • 次の認証者によって承認されたイメージのみを許可: このルールに追加したすべての認証者が検証できる証明書がイメージに含まれている場合に、イメージのデプロイを許可します。認証者の作成方法については、認証者の作成をご覧ください。

    [Allow only images that have been approved by the following attestors] を選択した場合:

    1. 認証者の名前またはリソース ID を取得します。

      Google Cloud Console の [認証者] ページでは、既存の認証者を確認するか、新しい認証者を作成できます。

      Binary Authorization 認証者の設定ページに移動

    2. [認証者の追加] をクリックします。

    3. 次のオプションのいずれかを選択します。

      • プロジェクトと認証者の名前により追加

        プロジェクトは、認証者を保存するプロジェクトのプロジェクト ID を参照します。認証者の名前の例は build-qa です。

      • 認証者リソース ID により追加

        リソース ID の形式は次のとおりです。

        projects/PROJECT_ID/attestors/ATTESTOR_NAME
        
    4. [認証者] で、選択したオプションに適切な値を入力します。

    5. さらに認証者を追加する場合は、[別の認証者を追加] をクリックします。

    6. [認証者の追加] をクリックしてルールを保存します。

ドライラン モードを有効にする場合は、次の操作を行います。

  1. [ドライラン モード] を選択します。

  2. [ポリシーを保存] をクリックします。

クラスタ固有のルールを設定する(省略可)

このセクションの内容は、GKE、Distributed Cloud、Cloud Service Mesh を対象としています。

ポリシーには、1 つ以上のクラスタ固有のルールも設定できます。このタイプのルールは、特定の Google Kubernetes Engine(GKE)クラスタにのみデプロイされるコンテナ イメージに適用されます。クラスタ固有のルールはポリシーのオプション部分です。

クラスタ固有のルールを追加する(GKE)

このセクションの内容は、GKE と Distributed Cloud を対象としています。

GKE クラスタにクラスタ固有のルールを追加するには、次の操作を行います。

  1. Google Cloud コンソールで [Binary Authorization] ページに移動します。

    [Binary Authorization] ページに移動

  2. [ポリシー] タブをクリックします。

  3. [ポリシーの編集] をクリックします。

  4. [Additional settings for GKE and GKE Enterprise deployments] セクションを開きます。

  5. 特定のルールの種類が設定されていない場合は、[特定のルールを作成] をクリックします。

    1. ルールの種類を選択するには、[固有のルールの種類] をクリックします。

    2. ルールの種類を変更するには、[変更] をクリックします。

  6. [固定のルールを追加] をクリックします。

  7. [クラスタ リソース ID] に、クラスタのリソース ID を入力します。

    クラスタのリソース ID の形式は、LOCATION.NAME です(例: us-central1-a.test-cluster)。

  8. デフォルト ルールの評価モードを選択します。

    評価モードにより、デプロイ時に Binary Authorization が適用する制約のタイプが指定されます。評価モードを設定するには、次のいずれかのオプションを選択します。

    • すべてのイメージを許可: すべてのイメージのデプロイを許可します。
    • すべてのイメージを禁止: すべてのイメージのデプロイを禁止します。
    • 次の認証者によって承認されたイメージのみを許可: このルールに追加したすべての認証者が検証できる証明書がイメージに含まれている場合に、イメージのデプロイを許可します。認証者の作成方法については、認証者の作成をご覧ください。

    [Allow only images that have been approved by the following attestors] を選択した場合:

    1. 認証者の名前またはリソース ID を取得します。

      Google Cloud Console の [認証者] ページでは、既存の認証者を確認するか、新しい認証者を作成できます。

      Binary Authorization 認証者の設定ページに移動

    2. [認証者の追加] をクリックします。

    3. 次のオプションのいずれかを選択します。

      • プロジェクトと認証者の名前により追加

        プロジェクトは、認証者を保存するプロジェクトのプロジェクト ID を参照します。認証者の名前の例は build-qa です。

      • 認証者リソース ID により追加

        リソース ID の形式は次のとおりです。

        projects/PROJECT_ID/attestors/ATTESTOR_NAME
        
    4. [認証者] で、選択したオプションに適切な値を入力します。

    5. さらに認証者を追加する場合は、[別の認証者を追加] をクリックします。

    6. [認証者の追加] をクリックしてルールを保存します。

  9. [追加] をクリックして、クラスタ固有のルールを追加します。

    次のようなメッセージが表示されることがあります「このクラスタは存在しないようです。このクラスタが GKE で使用可能になると、このルールは有効になります。」その場合は、[追加] をもう一度クリックしてルールを保存します。

  10. ドライラン モードを有効にする場合は、[ドライラン モード] を選択します。

  11. [ポリシーを保存] をクリックします。

クラスタ固有のルールを追加する(GKE Multi-cloud、Distributed Cloud)

このセクションの内容は、Distributed Cloud を対象としています。

GKE クラスタにクラスタ固有のルールを追加するには、次の操作を行います。

  1. Google Cloud コンソールで [Binary Authorization] ページに移動します。

    [Binary Authorization] ページに移動

  2. [ポリシー] タブをクリックします。

  3. [ポリシーの編集] をクリックします。

  4. [Additional settings for GKE and GKE Enterprise deployments] セクションを開きます。

  5. 特定のルールの種類が設定されていない場合は、[特定のルールを作成] をクリックします。

    1. ルールの種類を選択するには、[固有のルールの種類] をクリックします。

    2. ルールの種類を更新するには、[変更] をクリックします。

  6. [固定のルールを追加] をクリックします。

  7. [クラスタ リソース ID] に、クラスタのリソース ID を入力します。

    • GKE 接続クラスタと GKE on AWS の場合、形式は CLUSTER_LOCATION.CLUSTER_NAME です(例: us-central1-a.test-cluster)。
    • Google Distributed Cloud と Google Distributed Cloud の場合、形式は FLEET_MEMBERSHIP_LOCATION.FLEET_MEMBERSHIP_ID です(例: global.test-membership)。
  8. デフォルト ルールの評価モードを選択します。

    評価モードにより、デプロイ時に Binary Authorization が適用する制約のタイプが指定されます。評価モードを設定するには、次のいずれかのオプションを選択します。

    • すべてのイメージを許可: すべてのイメージのデプロイを許可します。
    • すべてのイメージを禁止: すべてのイメージのデプロイを禁止します。
    • 次の認証者によって承認されたイメージのみを許可: このルールに追加したすべての認証者が検証できる証明書がイメージに含まれている場合に、イメージのデプロイを許可します。認証者の作成方法については、認証者の作成をご覧ください。

    [Allow only images that have been approved by the following attestors] を選択した場合:

    1. 認証者の名前またはリソース ID を取得します。

      Google Cloud Console の [認証者] ページでは、既存の認証者を確認するか、新しい認証者を作成できます。

      Binary Authorization 認証者の設定ページに移動

    2. [認証者の追加] をクリックします。

    3. 次のオプションのいずれかを選択します。

      • プロジェクトと認証者の名前により追加

        プロジェクトは、認証者を保存するプロジェクトのプロジェクト ID を参照します。認証者の名前の例は build-qa です。

      • 認証者リソース ID により追加

        リソース ID の形式は次のとおりです。

        projects/PROJECT_ID/attestors/ATTESTOR_NAME
        
    4. [認証者] で、選択したオプションに適切な値を入力します。

    5. さらに認証者を追加する場合は、[別の認証者を追加] をクリックします。

    6. [認証者の追加] をクリックしてルールを保存します。

  9. [追加] をクリックしてルールを保存します。

    次のようなメッセージが表示されることがあります「このクラスタは存在しないようです。指定したクラスタが GKE で使用可能になると、このルールは有効になります。」その場合は、もう一度 [追加] をクリックしてルールを保存します。

  10. ドライラン モードを有効にする場合は、[ドライラン モード] を選択します。

  11. [ポリシーを保存] をクリックします。

固有のルールを追加する

メッシュ サービス ID、Kubernetes サービス アカウント、または Kubernetes Namespace のいずれかをスコープとするルールを作成できます。特定のルールを追加または変更するには、次のようにします。

  1. Google Cloud コンソールで [Binary Authorization] ページに移動します。

    [Binary Authorization] ページに移動

  2. [ポリシー] タブをクリックします。

  3. [ポリシーの編集] をクリックします。

  4. [GKE と Anthos のデプロイ向けの追加設定] セクションを開きます。

  5. 特定のルールの種類が設定されていない場合は、[特定のルールを作成] をクリックします。

    1. [固有のルールの種類] をクリックして、ルールの種類を選択します。

    2. [変更] をクリックして、ルールの種類を更新します。

  6. 特定のルールの種類が存在する場合は、[タイプの編集] をクリックしてルールの種類を変更できます。

  7. 特定のルールを追加するには、[固有のルールを追加] をクリックします。選択したルールの種類に応じて、次のように ID を入力します。

    • ASM Service Identity: ASM サービス ID を入力します。これは、PROJECT_ID.svc.id/goog/ns/NAMESPACE/sa/SERVICE_ACCOUNT のような形式になります。
    • Kubernetes サービス アカウント: Kubernetes サービス アカウントを入力します(形式: NAMESPACE:SERVICE_ACCOUNT)。
    • Kubernetes Namespace: Kubernetes の Namespace を入力します(形式: NAMESPACE)。

    ルールの種類によって、必要に応じて次のように置き換えます。

    • PROJECT_ID: Kubernetes リソースを定義するプロジェクト ID。
    • NAMESPACE: Kubernetes の Namespace。
    • SERVICE_ACCOUNT: サービス アカウント。
  8. デフォルト ルールの評価モードを選択します。

    評価モードにより、デプロイ時に Binary Authorization が適用する制約のタイプが指定されます。評価モードを設定するには、次のいずれかのオプションを選択します。

    • すべてのイメージを許可: すべてのイメージのデプロイを許可します。
    • すべてのイメージを禁止: すべてのイメージのデプロイを禁止します。
    • 次の認証者によって承認されたイメージのみを許可: このルールに追加したすべての認証者が検証できる証明書がイメージに含まれている場合に、イメージのデプロイを許可します。認証者の作成方法については、認証者の作成をご覧ください。

    [Allow only images that have been approved by the following attestors] を選択した場合:

    1. 認証者の名前またはリソース ID を取得します。

      Google Cloud Console の [認証者] ページでは、既存の認証者を確認するか、新しい認証者を作成できます。

      Binary Authorization 認証者の設定ページに移動

    2. [認証者の追加] をクリックします。

    3. 次のオプションのいずれかを選択します。

      • プロジェクトと認証者の名前により追加

        プロジェクトは、認証者を保存するプロジェクトのプロジェクト ID を参照します。認証者の名前の例は build-qa です。

      • 認証者リソース ID により追加

        リソース ID の形式は次のとおりです。

        projects/PROJECT_ID/attestors/ATTESTOR_NAME
        
    4. [認証者] で、選択したオプションに適切な値を入力します。

    5. さらに認証者を追加する場合は、[別の認証者を追加] をクリックします。

    6. [認証者の追加] をクリックしてルールを保存します。

  9. [ドライラン モード] をクリックして、ドライラン モードを有効にします。

  10. [追加] をクリックして、そのルールを保存します。

  11. [ポリシーを保存] をクリックします。

除外イメージを管理する

このセクションの内容は、GKE、Distributed Cloud、Cloud Run、Cloud Service Mesh を対象としています。

除外イメージは、パスで指定され、ポリシールールの対象外となるイメージです。Binary Authorization では、除外イメージのデプロイが常に許可されます。

このパスは、Container Registry 内の場所か、別のコンテナ イメージ レジストリを指定できます。

Cloud Run

このセクションは Cloud Run に該当する内容です。

タグを含むイメージ名を直接指定することはできません。たとえば、IMAGE_PATH:latest は指定できません。

タグを含むイメージ名を指定する場合は、次のようにワイルドカードを使用してイメージ名を指定する必要があります。

  • *: 単一イメージのすべてのバージョン。例: us-docker.pkg.dev/myproject/container/hello@*
  • **: プロジェクト内のすべてのイメージ。例: us-docker.pkg.dev/myproject/**

パス名を使用して IMAGE_PATH@DIGEST の形式でダイジェストを指定できます。

システム ポリシーを有効にする

このセクションの内容は、GKE と Distributed Cloud を対象としています。

Google 提供のシステム イメージをすべて信頼する」は、Binary Authorization システム ポリシーを有効にするポリシー設定です。この設定をデプロイ時に有効にすると、Binary Authorization は、GKE で必要とされる Google 管理のシステム イメージのリストをポリシー評価から除外します。システム ポリシーは、他のポリシー設定よりも先に評価されます。

システム ポリシーを有効にする方法は次のとおりです。

  1. Google Cloud コンソールの [Binary Authorization] ページに移動します。

    [Binary Authorization] に移動

  2. [ポリシーの編集] をクリックします。

  3. [GKE と Anthos のデプロイ向けの追加設定] セクションを開きます。

  4. [Google システム イメージの除外] セクションで、[Google 提供のシステム イメージをすべて信頼する] を選択します。

    システム ポリシーによって除外されたイメージを表示するには、[詳細を表示] をクリックします。

  5. 除外するイメージを手動で指定するには、[このポリシーから除外するイメージ] の [カスタム除外ルール] セクションを開きます。

    次に、[イメージ パターンを追加] をクリックして、除外するイメージのレジストリパスを入力します。

  6. [ポリシーを保存] をクリックします。

次のステップ