セキュリティ ポリシー ルールを作成する

このページでは、インフラストラクチャ オペレーター(IO)がセキュリティ ポリシールールを作成して構成し、組織内のトラフィックを管理して、顧客ワークロード トラフィックの侵入検知 / 防御システム(IDPS)を有効にする手順について説明します。Firewall API を介して SecurityPolicyRule カスタム リソースを使用して、セキュリティ ポリシー ルールを構成できます。

始める前に

続行する前に、次の点をご確認ください。

  • kustomization.yaml ファイルを含む iac リポジトリ。
  • セキュリティ ポリシー ルールを含むファイルを保存する security-policy-rule という名前のフォルダ。

任意の住所が組織にアクセスできるようにする

セキュリティ ポリシー ルールを作成するには、次の 2 つの方法があります。

IP アドレス範囲または IP アドレス ネットマスクを使用してセキュリティ ポリシー ルールを作成する

  1. AddressGroup リソースの YAML ファイルを作成します。AddressGroup には、SecurityPolicyRule で使用できる IP アドレス範囲または IP アドレス ネットマスクが保持されます。

  2. 次の内容を追加して、AddressGroup カスタム リソースを作成します。

    apiVersion: firewall.private.gdc.goog/v1alpha2
    kind: AddressGroup
    metadata:
      labels:
        firewall.private.gdc.goog/type: idps
      name: SOURCE_AG_OBJECT_NAME
      namespace: NAMESPACE
    spec:
      addressGroupName: SOURCE_ADDRESS_GROUP
      firewallVirtualSystemRef:
        name: FIREWALL_VIRTUAL_SYSTEM_NAME
      members:
      - name: SOURCE_MEMBER_NAME
        type: SOURCE_MEMBER_TYPE
        value: SOURCE_MEMBER_VALUE
    ---
    apiVersion: firewall.private.gdc.goog/v1alpha2
    kind: AddressGroup
    metadata:
      labels:
        firewall.private.gdc.goog/type: idps
      name: DESTINATION_AG_OBJECT_NAME
      namespace: NAMESPACE
    spec:
      addressGroupName: DESTINATION_ADDRESS_GROUP
      firewallVirtualSystemRef:
        name: FIREWALL_VIRTUAL_SYSTEM_NAME
      members:
      - name: DESTINATION_MEMBER_NAME
        type: DESTINATION_MEMBER_TYPE
        value: DESTINATION_MEMBER_VALUE
    
  3. アドレス グループを保存して security-policy-rule フォルダに保存します。

  4. 次の内容を追加して、SecurityPolicyRule カスタム リソースを作成します。

    apiVersion: firewall.private.gdc.goog/v1alpha2
    kind: SecurityPolicyRule
    metadata:
      labels:
        firewall.private.gdc.goog/policy-type: idps
      name: RULE_NAME
      namespace: NAMESPACE
    spec:
      firewallVirtualSystemRef:
        name: FIREWALL_VIRTUAL_SYSTEM_NAME
      priority: PRIORITY
      source:
        zones:
        - SOURCE_ZONE
        addresses:
        - SOURCE_ADDRESS_GROUP
      destination:
        zones:
        - DESTINATION_ZONE
        addresses:
        - DESTINATION_ADDRESS_GROUP
      action: ACTION
      service:
        option: OPTION
        ports:
        - protocol: PROTOCOL
          ports: "PORT"
      profile:
        type: PROFILE_TYPE
    

    次の変数を置き換えます。

    変数 説明
    SOURCE_AG_OBJECT_NAME アドレス グループ オブジェクトの名前。例: vsys2-org-1-org-infra-group
    NAMESPACE Namespace は組織の名前と一致する必要があります。例: org-1
    SOURCE_ADDRESS_GROUP 送信元 IP アドレスを含むアドレス グループの名前。例: org-infra-group
    FIREWALL_VIRTUAL_SYSTEM_NAME 組織に関連付けられているファイアウォール仮想システムの名前。たとえば、「vsys2-org-1」のようになります。kubectl get firewallvirtualsystems -A を使用して、すべての vsys 名を一覧表示します。
    SOURCE_MEMBER_NAME アドレス グループのメンバーの名前。たとえば、「org-infra-group-0」のようになります。メンバーは複数存在でき、各メンバーには一意の名前が付けられます。
    SOURCE_MEMBER_TYPE アドレス グループのメンバーのタイプ。使用可能な値は IPRangeIPNetmask です。
    SOURCE_MEMBER_VALUE メンバーの IP アドレス。たとえば、メンバー タイプが IPNetmask の場合、値は 169.254.0.0/21 になります。メンバー タイプが IPrange の場合、値は 192.168.1.1-192.168.1.10 になります。
    DESTINATION_AG_OBJECT_NAME アドレス グループ オブジェクトの名前。例: vsys2-org-1-org-data-external-all-group
    DESTINATION_ADDRESS_GROUP 送信元 IP アドレスを含むアドレス グループの名前。例: org-data-external-all-group
    DESTINATION_MEMBER_NAME アドレス グループのメンバーの名前。たとえば、「org-data-external-all-group-0」のようになります。メンバーは複数存在でき、各メンバーには一意の名前が付けられます。
    DESTINATION_MEMBER_TYPE アドレス グループのメンバーのタイプ。使用可能な値は IPRangeIPNetmask です。
    DESTINATION_MEMBER_VALUE メンバーの IP アドレス。たとえば、メンバー タイプが IPNetmask の場合、値は 169.254.0.0/21 になります。メンバー タイプが IPrange の場合、値は 192.168.1.1-192.168.1.10 になります。
    RULE_NAME ルールの名前。例: allow-ingress-org-1
    PRIORITY 優先度レベルを定義する 100060000 の整数。最も高い優先度は 1000 で、最も低い優先度は 60000 です。この例では、最優先レベルの 1000 を使用しています。
    SOURCE_ZONE トラフィックの送信元となるファイアウォール ゾーン。例: vsys2-oc
    DESTINATION_ZONE トラフィックの宛先となるファイアウォール ゾーン。例: vsys2-gpc
    ACTION トラフィックを許可するか拒否するかを定義するアクション。たとえば、アクション allow を使用します。
    OPTION サービスを設定するオプション。サービスを設定する省略可能な値は次のとおりです。
    • any: 任意のポートを使用するように定義します。
    • application-default: アプリケーションの標準ポート。
    • selected: 選択したプロトコルとポート。
    PROTOCOL 定義するネットワーク プロトコル。たとえば、TCPUDP などのプロトコル
    PORT ポート番号。例: 1234
    PROFILE_TYPE プロファイルのタイプ(nonegroupprofiles など)。
  5. セキュリティ ポリシー ルールを保存して security-policy-rule フォルダに保存します。

  6. iac リポジトリに移動し、セキュリティ ポリシー ルールを main ブランチに commit します。

    ls IAC_REPO_PATH/iac/infrastructure/global/orgs/root/kustomization.yaml
    

    ファイルが存在しない場合は、IAC を使用して組織を作成するの手順 8 ~ 12 を行います。

  7. ランブック FW-G0003 の手順 3 ファイアウォールの完全な構成の置き換えをトリガーするに沿って、ファイアウォールの構成の置き換えを処理します。

特定の IP アドレスを使用してセキュリティ ポリシー ルールを作成する

  1. SecurityPolicyRule リソースの YAML ファイルを作成します。

  2. 次の内容を追加して、SecurityPolicyRule カスタム リソースを作成します。

    apiVersion: firewall.private.gdc.goog/v1alpha2
    kind: SecurityPolicyRule
    metadata:
      labels:
        firewall.private.gdc.goog/policy-type: idps
      name: RULE_NAME
      namespace: NAMESPACE
    spec:
      firewallVirtualSystemRef:
        name: FIREWALL_VIRTUAL_SYSTEM_NAME
      priority: PRIORITY
      source:
        zones:
        - SOURCE_ZONE
        addresses:
        - SOURCE_IP_ADDRESS
      destination:
        zones:
        - DESTINATION_ZONE
        addresses:
        - DESTINATION_IP_ADDRESS
      action: ACTION
      service:
        option: OPTION
        ports:
        - protocol: PROTOCOL
          ports: "PORT"
      profile:
        type: PROFILE_TYPE
    

    次の変数を置き換えます。

    変数 説明
    RULE_NAME ルールの名前。例: allow-ingress-org-1
    NAMESPACE Namespace は組織の名前と一致する必要があります。例: org-1
    FIREWALL_VIRTUAL_SYSTEM_NAME ファイアウォールの名前。例: vsys2-org1
    PRIORITY 優先度レベルを定義する 100060000 の整数。最も高い優先度は 1000 で、最も低い優先度は 60000 です。たとえば、ルールに最優先レベルが必要な場合は、1000 を使用します。
    SOURCE_ZONE トラフィックの送信元となるファイアウォール ゾーン。例: vsys2-oc
    SOURCE_IP_ADDRESS トラフィックを許可する IP アドレス。IP アドレスの形式は、単一の IP アドレス 10.250.10.1、クラスレス ドメイン間ルーティング(CIDR)10.250.10.0/27、IP アドレス範囲 10.250.10.1-10.250.10.8、または any にできます。

    たとえば、172.21.0.0/20 は、172.21.0.0/20 CIDR 内の任意の送信元 IP アドレスがこのルールと一致することを示します。
    DESTINATION_ZONE トラフィックの宛先となるファイアウォール ゾーン。例: vsys2-gpc
    DESTINATION_IP_ADDRESS トラフィックを許可する IP アドレス。IP アドレスの形式は、単一の IP アドレス 10.250.10.1、クラスレス ドメイン間ルーティング(CIDR)10.250.10.0/27、IP アドレス範囲 10.250.10.1-10.250.10.8、または any にできます。

    たとえば、値 any は、任意の宛先 IP アドレスがルールと一致することを示します。
    ACTION トラフィックを allow するか deny するかを定義するアクション。たとえば、allow はトラフィックを許可します。
    OPTION サービスを設定するオプション。サービスを設定する省略可能な値は次のとおりです。
    • any: 任意のポートを使用するように定義します。
    • application-default: アプリケーションの標準ポート。
    • selected: 選択したプロトコルとポート。
    詳しくは、API リファレンスをご覧ください。
    PROTOCOL 定義するネットワーク プロトコル。たとえば、伝送制御プロトコルの場合は TCP です。
    PORT ポート番号。例: 443
    PROFILE_TYPE プロファイルのタイプ(nonegroupprofiles など)。たとえば、プロファイル タイプに none を使用すると、IDPS は適用されません。
  3. セキュリティ ポリシー ルールを保存して security-policy-rule フォルダに保存します。

  4. iac リポジトリに移動し、セキュリティ ポリシー ルールを main ブランチに commit します。

    ls IAC_REPO_PATH/iac/infrastructure/global/orgs/root/kustomization.yaml
    

    ファイルが存在しない場合は、IAC を使用して組織を作成するの手順 8 ~ 12 を行います。

  5. ランブック FW-G0003 の手順 3 ファイアウォールの完全な構成の置き換えをトリガーするに沿って、ファイアウォールの構成の置き換えを処理します。