カスタム制約を使用して VPC ファイアウォール ルール リソースを管理する

Google Cloud 組織のポリシーを使用すると、組織のリソースをプログラマティックに一元管理できます。組織のポリシー管理者は組織のポリシーを定義できます。組織のポリシーは、Google Cloud リソース階層内のGoogle Cloud リソースやそれらのリソースの子孫に適用される、制約と呼ばれる一連の制限です。組織のポリシーは、組織レベル、フォルダレベル、またはプロジェクト レベルで適用できます。

組織のポリシーでは、さまざまなGoogle Cloud サービス用に事前定義された制約を利用できます。ただし、組織のポリシーで制限されている特定のフィールドをさらに細かく制御する必要がある場合は、カスタム制約を作成してカスタムの組織ポリシーで適用することもできます。

ポリシーの継承

デフォルトでは、組織のポリシーは、そのポリシーを適用したリソースの子孫に継承されます。たとえば、フォルダにポリシーを適用した場合、 Google Cloud ではそのフォルダ内のすべてのプロジェクトにそのポリシーが適用されます。この動作の詳細と変更方法については、階層評価ルールをご覧ください。

Cloud NGFW でサポートされているリソース

VPC ファイアウォール ルールでは、次のリソースとフィールドにカスタム制約を設定できます。

  • ファイアウォール: compute.googleapis.com/Firewall
    • 名前: resource.name
    • 説明: resource.description
    • ネットワーク: resource.network
    • 優先度: resource.priority
    • ソース範囲: resource.sourceRanges[]
    • 宛先範囲: resource.destinationRanges[]
    • ソースタグ: resource.sourceTags[]
    • ターゲットタグ: resource.targetTags[]
    • 許可ルール: resource.allowed[]
      • プロトコル: resource.allowed[].IPProtocol
      • ポート: resource.allowed[].ports[]
    • 拒否ルール: resource.denied[]
      • プロトコル: resource.denied[].IPProtocol
      • ポート: resource.denied[].ports[]
    • 方向: resource.direction
    • 無効かどうか: resource.disabled

カスタム制約の定義

カスタム制約は、組織のポリシーを適用しているサービスでサポートされるリソース、メソッド、条件、アクションによって定義されます。カスタム制約の条件は、Common Expression Language(CEL)を使用して定義されます。CEL を使用してカスタム制約で条件を作成する方法については、組織のポリシーの作成と管理の CEL セクションをご覧ください。

標準の CEL 関数に加えて、カスタム CEL 関数 containsFirewallPort を使用してファイアウォール ルールのカスタム制約を作成することもできます。この関数を使用して、特定のプロトコル、またはプロトコルとポートの組み合わせを参照する制約を作成できます。

  • プロトコルのみ: resource.allowed.containsFirewallPort('PROTOCOL')
  • プロトコルとポート: resource.allowed.containsFirewallPort('PROTOCOL', 'PORT_NUMBER')

許可されるプロトコルについては、プロトコルとポートをご覧ください。

始める前に

  • まだ設定していない場合は、認証を設定します。認証では、 Google Cloud サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    コンソール

    Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

    gcloud

    1. Google Cloud CLI をインストールします。インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。

      gcloud init

      外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  • デフォルトのリージョンとゾーンを設定します。
  • REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Google Cloud CLI をインストールします。

      外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

    詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。

* 組織 ID を確認します。

必要なロール

Cloud Next Generation Firewall リソースの組織のポリシーを管理するために必要な権限を取得するには、管理者に次の IAM ロールを付与するよう依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

これらの事前定義ロールには、Cloud Next Generation Firewall リソースの組織のポリシーを管理するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

Cloud Next Generation Firewall リソースの組織のポリシーを管理するには、次の権限が必要です。

  • orgpolicy.constraints.list
  • orgpolicy.policies.create
  • orgpolicy.policies.delete