Eventarc Advanced リソースを無効にする

このガイドでは、カスタム組織のポリシーを使用して Eventarc Advanced リソースを無効にする方法について説明します。

Eventarc Advanced は、Eventarc Standard でサポートされている認証と標準に準拠していません。組織でこれらの標準への準拠が必要な場合は、Eventarc Advanced リソースの作成または更新を無効にできます。

始める前に

Eventarc Advanced リソースを無効にする前に、次の前提条件を満たしていることを確認してください。

  • Google Cloud 組織 ID を把握している。
  • カスタムの組織のポリシーを管理するために必要な権限を取得するには、組織のリソースに対する組織ポリシー管理者roles/orgpolicy.policyAdmin)の IAM ロールを付与するよう管理者に依頼してください。

カスタム制約を作成する

カスタム制約を作成し、組織のポリシーでこのカスタム制約を使用して、新しい Eventarc Advanced リソースの作成と更新を禁止できます。

次の Eventarc Advanced リソースタイプを使用して、カスタム制約を作成できます。

  • Enrollment
  • GoogleApiSource
  • MessageBus
  • Pipeline

カスタム制約を設定する

コンソール

カスタム制約を作成する手順は次のとおりです。

  1. Google Cloud コンソールで [組織のポリシー] ページに移動します。

    [組織のポリシー] に移動

  2. プロジェクト選択ツールで、組織のポリシーを設定するプロジェクトを選択します。
  3. [ カスタム制約] をクリックします。
  4. [表示名] ボックスに、人が読める形式で制約の名前を入力します。この名前はエラー メッセージで使用されるほか、識別やデバッグにも使用できます。エラー メッセージで公開される可能性があるため、表示名に個人を特定できる情報(PII)やセンシティブ データを使用しないでください。このフィールドには、最大 200 文字まで入力できます。
  5. [制約 ID] ボックスに、新しいカスタム制約の ID を入力します。カスタム制約の名前に使用できるのは、英字(大文字と小文字)と数字のみです(例: custom.disableEventarcAdvancedResources)。このフィールドには、接頭辞(custom.)を除き、最大 70 文字まで入力できます(例: organizations/123456789/customConstraints/custom)。エラー メッセージで公開される可能性があるため、制約 ID に個人情報(PII)や機密データを含めないでください。
  6. [説明] ボックスに、人が読める形式で制約の説明を入力します。この説明は、ポリシー違反の際にエラー メッセージとして使用されます。ポリシー違反が発生した理由と、ポリシー違反を解決する方法に関する詳細を含めてください。エラー メッセージで公開される可能性があるため、説明に個人情報(PII)や機密データを含めないでください。 このフィールドには、最大 2,000 文字まで入力できます。
  7. [リソースの種類] ボックスで、制限するオブジェクトとフィールドを含む Google Cloud REST リソースの名前を選択します(例: container.googleapis.com/NodePool)。ほとんどの種類のリソースは、最大 20 個のカスタム制約をサポートしています。これより多くのカスタム制約を作成しようとすると、オペレーションは失敗します。
  8. この制約は、REST CREATE メソッドにのみ適用できます。
  9. 各サービスでサポートされているメソッドを確認するには、 カスタム制約をサポートするサービスをご覧ください。

  10. 条件を定義するには、[ 条件を編集] をクリックします。
    1. [条件を追加] パネルで、サポートされているサービス リソースを参照する CEL 条件を作成します(例: resource.management.autoUpgrade == false)。このフィールドには、最大 1,000 文字まで入力できます。CEL の使用方法の詳細については、Common Expression Language をご覧ください。 カスタム制約で使用できるサービス リソースの詳細については、カスタム制約のサポート サービスをご覧ください。
    2. [保存] をクリックします。
  11. [アクション] で、条件が満たされた場合に評価対象のメソッドを許可するか拒否するかを選択します。
  12. 拒否アクションは、条件が true と評価された場合に、リソースを作成または更新するオペレーションがブロックされることを意味します。

    許可アクションは、条件が true と評価された場合にのみ、リソースを作成または更新するオペレーションが許可されることを意味します。条件に明記されているケースを除き、他のケースはすべてブロックされます。

  13. [制約を作成] をクリックします。
  14. 各フィールドに値を入力すると、このカスタム制約に対応する YAML 構成が右側に表示されます。

gcloud

  1. カスタム制約を作成するには、次の形式で YAML ファイルを作成します。
  2. name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
    resourceTypes: RESOURCE_NAME
    methodTypes:
      - CREATE
    condition: "CONDITION"
    actionType: ACTION
    displayName: DISPLAY_NAME
    description: DESCRIPTION

    次のように置き換えます。

    • ORGANIZATION_ID: 組織 ID(例: 123456789)。
    • CONSTRAINT_NAME: 新しいカスタム制約の名前。カスタム制約の名前に使用できるのは、英字(大文字と小文字)と数字のみです(例: custom.disableEventarcAdvancedResources)。このフィールドには、接頭辞(custom.)を除き、最大 70 文字まで入力できます(例: organizations/123456789/customConstraints/custom)。エラー メッセージで公開される可能性があるため、制約 ID に個人情報(PII)やセンシティブ データを含めないでください。
    • RESOURCE_NAME: 制限するオブジェクトとフィールドを含む Google Cloudリソースの完全修飾名。たとえば、eventarc.googleapis.com/Enrollment のようにします。ほとんどの種類のリソースは、最大 20 個のカスタム制約をサポートしています。これより多くのカスタム制約を作成しようとすると、オペレーションは失敗します。
    • methodTypes: 制約が適用される REST メソッド。CREATE のみです。
    • 各サービスでサポートされているメソッドを確認するには、 カスタム制約をサポートするサービスをご覧ください。

    • CONDITION: サポート対象のサービス リソースの表現に対して記述する CEL 条件。このフィールドには、最大 1,000 文字まで入力できます。例: true
    • 条件を記述できるリソースの詳細については、サポートされているリソースをご覧ください。

    • ACTION: condition が満たされている場合に実行するアクション。ALLOW のみを設定できます。
    • 許可アクションは、条件が true と評価された場合に、リソースを作成または更新するオペレーションが許可されることを意味します。つまり、条件に明記されているケース以外はすべてブロックされます。

    • DISPLAY_NAME: 制約の名前。わかりやすい名前を入力してください。この名前はエラー メッセージで使用されるほか、識別やデバッグにも使用できます。エラー メッセージで公開される可能性があるため、表示名に個人情報(PII)やセンシティブ データを使用しないでください。このフィールドには、最大 200 文字まで入力できます。
    • DESCRIPTION: ポリシー違反の際にエラー メッセージとして表示される制約の説明。わかりやすい説明を入力してください。このフィールドには、最大 2,000 文字まで入力できます。
  3. 新しいカスタム制約の YAML ファイルを作成したら、組織内で組織のポリシーとして使用できるように設定する必要があります。カスタム制約を設定するには、gcloud org-policies set-custom-constraint コマンドを使用します。
  4. gcloud org-policies set-custom-constraint CONSTRAINT_PATH

    CONSTRAINT_PATH は、カスタム制約ファイルのフルパスに置き換えます。例: /home/user/customconstraint.yaml

    この操作が完了すると、カスタム制約が Google Cloud の組織ポリシーのリストに表示され、組織のポリシーとして使用できるようになります。

  5. カスタム制約が存在することを確認するには、gcloud org-policies list-custom-constraints コマンドを使用します。
  6. gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID

    ORGANIZATION_ID は組織リソースの ID に置き換えます。

    詳細については、組織のポリシーの表示をご覧ください。

カスタムの組織のポリシーを適用する

制約を適用するには、それを参照する組織のポリシーを作成し、その組織のポリシーを Google Cloud リソースに適用します。

コンソール

  1. Google Cloud コンソールで [組織のポリシー] ページに移動します。

    [組織のポリシー] に移動

  2. プロジェクト選択ツールで、組織のポリシーを設定するプロジェクトを選択します。
  3. [組織のポリシー] ページのリストで制約を選択して、その制約の [ポリシーの詳細] ページを表示します。
  4. このリソースの組織のポリシーを構成するには、[ポリシーを管理] をクリックします。
  5. [ポリシーの編集] ページで、[Override parent's policy] を選択します。
  6. [ルールを追加] をクリックします。
  7. [適用] セクションで、この組織のポリシーを適用するかどうかを選択します。
  8. 省略可: タグで組織のポリシーに条件を設定するには、[条件を追加] をクリックします。組織のポリシーに条件付きルールを追加する場合は、少なくとも 1 つは無条件のルールを追加する必要があります。そうしないとポリシーを保存できないのでご注意ください。詳細については、 タグを使用して組織のポリシーのスコープを設定するをご覧ください。
  9. [変更内容をテスト] をクリックして、組織のポリシーの効果をシミュレートします。詳細については、Policy Simulator で組織のポリシーの変更をテストするをご覧ください。
  10. ドライラン モードで組織のポリシーを適用するには、[ドライラン ポリシーを設定] をクリックします。詳細については、 組織のポリシーをテストするをご覧ください。
  11. ドライラン モードで組織のポリシーが想定どおりに動作することを確認したら、[ポリシーを設定] をクリックして有効なポリシーを設定します。

gcloud

  1. ブール値のルールを含む組織のポリシーを作成するには、制約を参照するポリシーの YAML ファイルを作成します。
  2. name: projects/PROJECT_ID/policies/CONSTRAINT_NAME
    spec:
      rules:
      - enforce: true
    
    dryRunSpec:
      rules:
      - enforce: true

    次のように置き換えます。

    • PROJECT_ID: 制約を適用するプロジェクト。
    • CONSTRAINT_NAME: カスタム制約に定義した名前。例: custom.disableEventarcAdvancedResources
  3. ドライラン モードで組織のポリシーを適用するには、dryRunSpec フラグを指定して次のコマンドを実行します。
  4. gcloud org-policies set-policy POLICY_PATH --update-mask=dryRunSpec

    POLICY_PATH は、組織のポリシーの YAML ファイルのフルパスに置き換えます。ポリシーが有効になるまでに最大 15 分かかります。

  5. ドライラン モードで組織のポリシーが想定どおりに動作することを確認したら、org-policies set-policy コマンドと spec フラグを使用して有効なポリシーを設定します。
  6. gcloud org-policies set-policy POLICY_PATH --update-mask=spec

    POLICY_PATH は、組織のポリシーの YAML ファイルのフルパスに置き換えます。ポリシーが有効になるまでに最大 15 分かかります。

次のステップ