보안 정책 규칙 만들기

이 페이지에서는 인프라 운영자 (IO)가 조직의 트래픽을 관리하고 고객 워크로드 트래픽에 침입 감지 및 방지 시스템 (IDPS)을 사용 설정하기 위해 보안 정책 규칙을 만들고 구성하는 방법을 설명합니다. 방화벽 API를 통해 SecurityPolicyRule 커스텀 리소스를 사용하여 보안 정책 규칙을 구성할 수 있습니다.

시작하기 전에

계속하기 전에 다음 사항을 확인하세요.

  • kustomization.yaml 파일이 있는 iac 저장소
  • 보안 정책 규칙이 포함된 파일을 저장하는 security-policy-rule 폴더

모든 주소에서 조직에 액세스하도록 허용

보안 정책 규칙을 만드는 방법에는 두 가지가 있습니다.

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 네임스페이스는 조직 이름과 일치해야 합니다. 예를 들면 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 주소 그룹의 회원 유형입니다. 사용 가능한 값은 IPRange, IPNetmask입니다.
    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 주소 그룹의 회원 유형입니다. 사용 가능한 값은 IPRange, IPNetmask입니다.
    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 우선순위 수준을 정의하는 1000~60000 사이의 정수입니다. 가장 높은 우선순위는 1000이고 가장 낮은 우선순위는 60000입니다. 이 예에서는 가장 높은 우선순위 수준인 1000를 사용합니다.
    SOURCE_ZONE 트래픽의 소스인 방화벽 영역입니다. 예를 들면 vsys2-oc입니다.
    DESTINATION_ZONE 트래픽의 대상인 방화벽 영역입니다. 예를 들면 vsys2-gpc입니다.
    ACTION 트래픽을 허용할지 거부할지를 정의하는 작업입니다. 예를 들어 allow 작업을 사용합니다.
    OPTION 서비스를 설정하는 옵션입니다. 서비스를 설정하는 선택적 값은 다음과 같습니다.
    • any: 모든 포트 사용을 정의합니다.
    • application-default: 애플리케이션의 표준 포트입니다.
    • selected: 선택한 프로토콜 및 포트입니다.
    PROTOCOL 정의한 네트워크 프로토콜입니다. 예를 들어 TCP 또는 UDP과 같은 프로토콜
    PORT 포트 번호입니다. 예를 들면 1234입니다.
    PROFILE_TYPE 프로필 유형입니다(예: none, group, profiles).
  5. 보안 정책 규칙을 security-policy-rule 폴더에 저장합니다.

  6. iac 저장소로 이동하여 보안 정책 규칙을 main 브랜치에 커밋합니다.

    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 네임스페이스는 조직 이름과 일치해야 합니다. 예를 들면 org-1입니다.
    FIREWALL_VIRTUAL_SYSTEM_NAME 방화벽의 이름입니다. 예를 들면 vsys2-org1입니다.
    PRIORITY 우선순위 수준을 정의하는 1000~60000 사이의 정수입니다. 가장 높은 우선순위는 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/20172.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 프로필 유형입니다(예: none, group, profiles). 예를 들어 프로필 유형 none를 사용하면 IDPS가 적용되지 않습니다.
  3. 보안 정책 규칙을 security-policy-rule 폴더에 저장합니다.

  4. iac 저장소로 이동하여 보안 정책 규칙을 main 브랜치에 커밋합니다.

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

    파일이 없으면 IAC로 조직 만들기의 8~12단계를 따르세요.

  5. 런북 FW-G0003의 3단계 방화벽 전체 구성 교체 트리거에 따라 방화벽 구성 교체를 처리합니다.