Cloud Armor 보안 정책 규칙 관리

이 페이지에서는 개별 규칙 업데이트, 여러 규칙을 원자적으로 업데이트, 규칙 삭제를 포함하여 Google Cloud Armor 보안 정책 내에서 규칙을 관리하는 방법을 설명합니다.

보안 정책에서 새 규칙을 만들거나 기존 규칙을 보려면 Cloud Armor 보안 정책 규칙 만들기 및 보기를 참조하세요. 보안 정책 컨테이너 자체를 관리하려면 Cloud Armor 보안 정책 관리를 참조하세요.

보안 정책 규칙 관리

다음 섹션에서는 보안 정책 규칙을 업데이트하거나 삭제하는 방법을 설명합니다.

보안 정책의 단일 규칙 업데이트

이 섹션에서는 Cloud Armor 보안 정책에서 규칙 하나를 업데이트하는 방법을 설명합니다. 여러 규칙을 원자적으로 업데이트하려면 보안 정책의 여러 규칙을 원자적으로 업데이트를 참조하세요.

콘솔

  1. Google Cloud 콘솔에서 Cloud Armor 정책 페이지로 이동합니다.

    Cloud Armor 정책으로 이동

  2. 보안 정책 이름을 클릭하여 정책 세부정보 페이지를 엽니다.

  3. 규칙 탭을 클릭합니다.

  4. 업데이트할 규칙 옆에 있는 수정을 클릭합니다. 규칙 수정 페이지가 표시됩니다.

  5. 변경한 다음 업데이트를 클릭합니다.

gcloud

다음 명령어를 사용하여 규칙을 업데이트합니다. 한 번에 하나의 보안 정책만 업데이트할 수 있습니다.

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를 참고하세요.

보안 정책의 여러 규칙을 원자적으로 업데이트

원자 업데이트 기능을 사용하여 단일 업데이트에서 여러 규칙에 변경사항을 적용할 수 있습니다. 단일 규칙 업데이트는 이전 규칙과 새 규칙이 단기간 동안 겹칠 수 있으므로 오류와 같은 의도하지 않은 동작을 일으킬 수 있습니다.

여러 규칙을 원자적으로 업데이트하려면 현재 보안 정책을 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

다음 명령어를 사용하여 규칙을 삭제합니다. 한 번에 보안 정책 하나만 수정할 수 있지만 한 번에 규칙 여러 개를 삭제할 수 있습니다.

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

예를 들면 다음과 같습니다.

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

다음 단계