Cloud Armor セキュリティ ポリシー ルールを管理する

このページでは、Google Cloud Armor セキュリティ ポリシー内のルールを管理する方法について説明します。これには、個々のルールの更新、複数のルールのアトミックな更新、ルールの削除が含まれます。

セキュリティ ポリシーで新しいルールを作成する、または既存のルールを表示するには、Cloud Armor セキュリティ ポリシー ルールを作成して表示するをご覧ください。セキュリティ ポリシー コンテナ自体を管理するには、Cloud Armor セキュリティ ポリシーを管理するをご覧ください。

セキュリティ ポリシーのルールを管理する

以降のセクションでは、セキュリティ ポリシー ルールを更新または削除する方法について説明します。

セキュリティ ポリシー内の単一のルールを更新する

このセクションでは、Cloud Armor セキュリティ ポリシーの単一のルールを更新する方法について説明します。複数のルールをアトミックに更新するには、セキュリティ ポリシーで複数のルールをアトミックに更新するをご覧ください。

コンソール

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

    [Cloud Armor ポリシー] に移動

  2. セキュリティ ポリシーの名前をクリックして、[ポリシーの詳細] ページを開きます。

  3. [ルール] タブをクリックします。

  4. 更新するルールの横にある [編集] をクリックします。[ルールの編集] ページが表示されます。

  5. 変更を加え、[更新] をクリックします。

gcloud

ルールを更新するには、次のコマンドを使用します。一度に更新できるセキュリティ ポリシーは 1 つだけです。

gcloud compute security-policies rules update PRIORITY [ \
    --security-policy POLICY_NAME  \
    --description DESCRIPTION  \
    --src-ip-ranges IP_RANGES  | --expression EXPRESSION \
    --action=[ allow | deny-403 | deny-404 | deny-502 ]  \
    --preview
  ]
  

たとえば、次のコマンドは、IP アドレス範囲 192.0.2.0/24 からのトラフィックを許可する優先度 1111 のルールを更新します。

gcloud compute security-policies rules update 1111 \
    --security-policy my-policy \
    --description "allow traffic from 192.0.2.0/24" \
    --src-ip-ranges "192.0.2.0/24" \
    --action "allow"

上記のコマンドの詳細については、gcloud compute security-policies rules update をご覧ください。

ルールの優先度を更新するには、REST API を使用します。securityPolicies.patchRule をご覧ください。

セキュリティ ポリシーの複数のルールをアトミックに更新する

アトミック更新機能を使用すると、1 回の更新で複数のルールに変更を適用できます。単一ルールの更新では、古いルールと新しいルールが短期間重複する可能性があるため、エラーなどの意図しない動作が発生する可能性があります。

複数のルールをアトミックに更新するには、現在のセキュリティ ポリシーを JSON ファイルまたは YAML ファイルにエクスポートして、ファイルを変更します。変更したファイルを使用してセキュリティ ポリシーを作成し、バックエンド サービスのセキュリティ ポリシーを切り替えます。

gcloud

  1. 次の例に示すように、更新するポリシーをエクスポートします。

    gcloud compute security-policies export my-policy \
        --file-name my-file \
        --file-format yaml
    

    エクスポートされたポリシーは、次の例のようになります。

        description: my description
        fingerprint: PWfLGDWQDLY=
        id: '123'
        name: my-policy
        rules:
        - action: deny(404)
          description: my-rule-1
          match:
            expr:
              expression: evaluatePreconfiguredWaf('xss-v422-stable')
            versionedExpr: SRC_IPS_V1
          preview: false
          priority: 1
        - action: allow
          description: my-rule-2
          match:
            config:
              srcIpRanges:
              - '1.2.3.4'
            versionedExpr: SRC_IPS_V1
          preview: false
          priority: 2
        - action: deny
          description: default rule
          kind: compute#securityPolicyRule
          match:
            config:
              srcIpRanges:
              - '*'
            versionedExpr: SRC_IPS_V1
          preview: false
          priority: 2147483647
        selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policy
    
  2. テキスト エディタを使用してポリシーを変更します。たとえば、既存のルールの優先度を変更したり、ルールを追加したりできます。

        description: my description
        fingerprint: PWfLGDWQDLY=
        id: '123'
        name: my-policy
        rules:
        - action: deny(404)
          description: my-rule-1
          match:
            expr:
              expression: evaluatePreconfiguredWaf('xss-v422-stable')
            versionedExpr: SRC_IPS_V1
          preview: false
          priority: 1
        - action: allow
          description: my-new-rule
          match:
            config:
              srcIpRanges:
              - '1.2.3.1'
            versionedExpr: SRC_IPS_V1
          preview: false
          priority: 10
        - action: allow
          description: my-rule-2
          match:
            config:
              srcIpRanges:
              - '1.2.3.4'
            versionedExpr: SRC_IPS_V1
          preview: false
          priority: 11
        - action: deny
          description: default rule
          kind: compute#securityPolicyRule
          match:
            config:
              srcIpRanges:
              - '*'
            versionedExpr: SRC_IPS_V1
          preview: false
          priority: 2147483647
        selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policy
    
  3. 次の例に示すように、新しい Cloud Armor セキュリティ ポリシーを作成し、変更したファイルの名前と形式を指定します。

    gcloud compute security-policies create new-policy \
        --file-name modified-policy \
        --file-format yaml
    
  4. 次の例に示すように、関連するバックエンド サービスから古いセキュリティ ポリシーを削除します。

    gcloud compute backend-services update my-backend \
        --security-policy ""
    
  5. 次の例に示すように、新しいセキュリティ ポリシーをバックエンド サービスに追加します。

    gcloud compute backend-services update my-backend \
        --security-policy new-policy
    
  6. 古いポリシーが使用されていない場合は、ポリシーを削除します。

    gcloud compute security-policies delete my-policy
    

セキュリティ ポリシーからルールを削除する

このセクションの手順に沿って、Cloud Armor セキュリティ ポリシーからルールを削除します。

コンソール

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

    [Cloud Armor ポリシー] に移動

  2. セキュリティ ポリシーの名前をクリックして、[ポリシーの詳細] ページを開きます。

  3. [ルール] タブで、削除するルールの横にあるチェックボックスをオンにします。

  4. [削除] をクリックします。

gcloud

ルールを削除するには、次のコマンドを使用します。一度に変更できるセキュリティ ポリシーは 1 つだけですが、複数のルールを一度に削除できます。

gcloud compute security-policies rules delete PRIORITY [...] [
    --security-policy POLICY_NAME \
  ]

次に例を示します。

gcloud compute security-policies rules delete 1000 \
    --security-policy my-policy

次のステップ