계층식 방화벽 정책

계층식 방화벽 정책을 사용하면 조직 전체에 일관된 방화벽 정책을 만들고 적용할 수 있습니다. 계층식 방화벽 정책을 조직 전체 또는 개별 폴더에 할당할 수 있습니다. 이러한 정책에는 Virtual Private Cloud(VPC) 방화벽 규칙과 같이 연결을 명시적으로 거부하거나 허용할 수 있는 규칙이 포함됩니다. 또한 계층식 방화벽 정책 규칙은 goto_next 작업을 통해 하위 수준 정책 또는 VPC 네트워크 방화벽 규칙에 평가를 위임할 수 있습니다.

하위 수준 규칙은 리소스 계층 구조의 상위에서 규칙을 재정의할 수 없습니다. 이렇게 하면 조직 전체 관리자가 중요한 방화벽 규칙을 한 곳에서 관리할 수 있습니다.

사양

  • 계층식 방화벽 정책은 조직 및 폴더 노드에서 생성됩니다. 정책을 만들어도 노드에 규칙이 자동으로 적용되지는 않습니다.
  • 생성된 정책은 조직 내 모든 노드에 적용(연결)될 수 있습니다.
  • 계층식 방화벽 정책은 방화벽 규칙의 컨테이너입니다. 정책을 조직 또는 폴더와 연결하면 모든 규칙이 즉시 적용됩니다. 노드의 정책을 바꿀 수 있으며, 이는 해당 노드에 속한 가상 머신(VM) 인스턴스에 적용되는 모든 방화벽 규칙을 원자적으로 바꿉니다.
  • 규칙 평가는 리소스 계층 구조를 기반으로 합니다. 조직 노드와 연결된 모든 규칙이 평가된 다음 첫 번째 수준의 폴더 규칙이 평가됩니다.
  • 계층식 방화벽 정책 규칙에는 연결 평가를 계층 구조의 하위 수준에 위임하는 데 사용할 수 있는 새로운 goto_next 작업이 있습니다.
  • 계층식 방화벽 정책 규칙을 사용하여 침입 방지 서비스와 같은 일치하는 트래픽의 레이어 7 검사를 구성할 수 있습니다.

    apply_security_profile_group 작업과 보안 프로필 그룹 이름을 사용하여 방화벽 정책 규칙을 만듭니다. 방화벽 정책 규칙과 일치하는 트래픽은 가로채기되고 레이어 7 검사를 할 수 있도록 방화벽 엔드포인트로 투명하게 전달됩니다. 방화벽 정책 규칙을 만드는 방법은 방화벽 규칙 만들기를 참조하세요.

  • 계층식 방화벽 정책 규칙은 네트워크의 대상 리소스 및 VM의 대상 서비스 계정을 사용하여 특정 VPC 네트워크 및 VM을 대상으로 지정할 수 있습니다. 이렇게 하면 VM 그룹에 대한 예외를 만들 수 있습니다. 계층식 방화벽 정책 규칙은 인스턴스 태그별 타겟팅을 지원하지 않습니다.
  • 각 계층식 방화벽 정책 규칙에는 IPv4 또는 IPv6 범위 중 하나만 포함될 수 있습니다.
  • 규정 준수 및 디버깅을 위해 VPC 네트워크 세부정보 페이지와 VM 인스턴스의 네트워크 인터페이스 세부정보 페이지를 사용하여 VM 인스턴스에 적용되는 방화벽 규칙을 감사할 수 있습니다.

리소스 계층 구조

방화벽 정책을 별도의 단계로 만들고 적용합니다. 리소스 계층 구조의 조직 또는 폴더 노드에서 방화벽 정책을 만들고 적용할 수 있습니다. 방화벽 정책 규칙은 연결을 차단하거나 연결을 허용하거나 방화벽 규칙 평가를 VPC 네트워크에 정의된 하위 수준 폴더 또는 VPC 방화벽 규칙으로 연기할 수 있습니다.

  • 조직은 계층식 방화벽 정책을 만들거나 연결할 수 있는 Google Cloud 리소스 계층 구조의 최상위 노드입니다. 조직의 모든 폴더 및 VPC 네트워크가 이 정책을 상속합니다.

  • 폴더는 계층식 방화벽 정책을 만들거나 할당할 수 있는 조직과 프로젝트 사이 Google Cloud 리소스 계층 구조의 중간 노드입니다. 폴더의 모든 폴더와 VPC 네트워크는 연결된 정책을 상속합니다.

  • 프로젝트는 폴더나 조직에 속합니다. 조직의 노드 간에 프로젝트를 이동할 수 있습니다. 프로젝트에는 VPC 네트워크가 포함됩니다. 계층식 방화벽 정책은 프로젝트에 할당할 수 없으며 조직 또는 폴더에만 할당할 수 있습니다.

  • VPC 네트워크는 격리된 내부 IP 공간 통신을 위한 Google Cloud 파티션입니다. 이 수준에서 경로, 네트워크 방화벽 정책, 기존 VPC 방화벽 규칙이 지정되고 적용됩니다. 계층식 방화벽 정책 규칙에서 전역 네트워크 방화벽 정책과 규칙에 대한 연결 평가를 재정의하거나 위임할 수 있습니다.

기본적으로 모든 계층식 방화벽 정책 규칙은 정책이 연결된 조직 또는 폴더의 모든 프로젝트에 있는 모든 VM에 적용됩니다. 하지만 대상 네트워크 또는 대상 서비스 계정을 지정하여 특정 규칙을 가져올 VM을 제한할 수 있습니다.

이제 방화벽 규칙을 적용할 수 있는 계층 구조 수준이 다음 다이어그램에 표시됩니다. 노란색 상자는 방화벽 규칙이 포함된 계층식 방화벽 정책을 나타내며 흰색 상자는 VPC 방화벽 규칙을 나타냅니다.

조직 및 폴더 수준의 규칙(노란색 상자)과 VPC 네트워크 수준의 VPC 방화벽 규칙이 포함된 계층식 방화벽 정책
규칙이 포함된 계층식 방화벽 정책(노란색 상자)이 조직 및 폴더 수준에서 적용됩니다. VPC 방화벽 규칙은 VPC 네트워크 수준에서 적용됩니다.

계층식 방화벽 정책 세부정보

계층식 방화벽 정책 규칙은 방화벽 규칙의 컨테이너 역할을 하는 방화벽 정책 리소스에 정의되어 있습니다. 방화벽 정책에 정의된 규칙은 정책이 노드(조직 또는 폴더)와 연결될 때까지 적용되지 않습니다.

단일 정책은 여러 노드와 연결될 수 있습니다. 정책에서 규칙을 수정하면 해당 규칙 변경사항이 현재 연결된 모든 노드에 적용됩니다.

노드 하나에는 하나의 방화벽 정책만 연결할 수 있습니다. 계층식 방화벽 정책 규칙과 VPC 방화벽 규칙은 잘 정의된 순서로 평가됩니다.

노드와 연결되지 않은 방화벽 정책은 연결되지 않은 계층식 방화벽 정책입니다.

정책 이름

새 정책을 만들면 Google Cloud에서 해당 정책의 ID가 자동으로 생성됩니다. 또한 정책의 닉네임을 지정할 수 있습니다. gcloud 인터페이스를 사용하여 기존 정책을 업데이트할 때 시스템 생성 ID 또는 닉네임과 조직 ID의 조합을 참조할 수 있습니다. API를 사용하여 정책을 업데이트하는 경우 시스템 생성 ID를 제공해야 합니다.

계층식 방화벽 정책 규칙 세부정보

계층식 방화벽 정책 규칙은 방화벽 정책 규칙VPC 방화벽 규칙과 동일하게 작동하지만 몇 가지 차이점이 있습니다.

  • 계층식 방화벽 정책은 대상 네트워크를 지원하지만 전역 네트워크 방화벽 정책은 지원하지 않습니다. 대상 네트워크를 지정하여 방화벽 정책 규칙을 지정된 네트워크의 VM으로 제한할 수 있습니다. 규칙에서 VPC 네트워크를 지정하면 해당 규칙으로 구성된 네트워크를 제어할 수 있습니다.

    goto_next 또는 allow와 함께 대상 네트워크를 지정하면 다른 제한적인 정책을 정의할 때 특정 네트워크에 대한 예외를 만들 수 있습니다.

  • 계층식 방화벽 정책에는 보안 태그 통합이 없습니다.

  • 계층식 방화벽 정책은 조직 수준 리소스이고 전역 네트워크 방화벽 정책은 프로젝트 수준 리소스입니다.

사전 정의된 규칙

계층적 방화벽 정책을 만들면 Cloud Next Generation Firewall은 우선순위가 가장 낮은 사전 정의된 규칙을 정책에 추가합니다. 이러한 규칙은 정책에서 명시적으로 정의된 규칙과 일치하지 않는 연결에 적용되어 이러한 연결이 하위 수준 정책 또는 네트워크 규칙으로 전달됩니다.

사전 정의된 다양한 유형의 규칙과 특성에 대해 알아보려면 사전 정의된 규칙을 참조하세요.

Identity and Access Management(IAM) 역할

IAM 역할은 계층식 방화벽 정책과 관련하여 다음 작업을 적용합니다.

  • 특정 노드에 있는 정책 만들기
  • 정책을 특정 노드와 연결
  • 기존 정책 수정
  • 특정 네트워크 또는 VM에 대한 유효한 방화벽 규칙 보기

다음 표에서는 각 단계에 필요한 역할을 설명합니다.

기능 필수 역할
새 계층식 방화벽 정책 만들기 정책이 있는 노드의 compute.orgFirewPolicyPolicyAdmin 역할
정책을 노드와 연결 대상 노드에 대한 compute.orgSecurityResourceAdmin 역할 및 정책이 적용되는 노드나 정책 자체에 대한 compute.orgFirewallPolicyAdmin 또는 compute.orgFirewallPolicyUser 역할
정책 방화벽 규칙을 추가, 업데이트 또는 삭제하여 정책 수정 정책이 있는 노드 또는 정책 자체의 compute.orgFirewallPolicyAdmin 역할
정책 삭제 정책이 있는 노드 또는 정책 자체의 compute.orgFirewallPolicyAdmin 역할
VPC 네트워크의 유효한 방화벽 규칙 보기 네트워크에 대한 다음 역할 중 하나입니다.
compute.networkAdmin
compute.networkViewer
compute.securityAdmin
compute.viewer
네트워크에서 VM의 유효한 방화벽 규칙 보기 VM에 대한 다음 역할 중 하나입니다.
compute.instanceAdmin
compute.securityAdmin
compute.viewer

다음 역할은 계층식 방화벽 정책과 관련이 있습니다.

역할 이름 설명
compute.orgFirewallPolicyAdmin 노드 또는 개별 정책에서 부여할 수 있습니다. 노드에서 부여하면 사용자가 계층식 방화벽 정책과 해당 규칙을 생성, 업데이트, 삭제할 수 있습니다. 개별 정책에 부여하면 사용자가 정책 규칙을 업데이트할 수 있지만 정책을 만들거나 삭제할 수는 없습니다. 이 역할에서는 사용자에게 노드의 compute.orgSecurityResourceAdmin 역할도 있다면 정책을 노드에 연결할 수도 있습니다.
compute.orgSecurityResourceAdmin 조직 수준 또는 폴더에 부여된 폴더 수준 관리자는 정책을 해당 노드에 연결할 수 있습니다. 또한 관리자는 정책을 소유한 노드 또는 정책 자체에 대한 compute.orgFirewallPolicyUser 또는 compute.orgFirewallPolicyAdmin 역할이 있어야 정책을 사용할 수 있습니다.
compute.orgFirewallPolicyUser 노드 또는 개별 정책에 부여된 관리자는 노드와 연결된 개별 정책 또는 여러 정책을 사용할 수 있습니다. 또한 사용자가 이 노드에 정책을 연결하려면 대상 노드에 대한 compute.orgSecurityResourceAdmin 역할이 있어야 합니다.
compute.securityAdmin
compute.viewer
compute.networkUser
compute.networkViewer
사용자는 네트워크 또는 인스턴스에 적용된 방화벽 규칙을 볼 수 있습니다.
네트워크의 compute.networks.getEffectiveFirewalls 권한과 인스턴스의 compute.instances.getEffectiveFirewalls 권한이 포함됩니다.

다음 예시에서 Joe는 policies 폴더에서 계층식 방화벽 정책을 만들고 수정하고 삭제할 수 있지만 폴더에 대한 orgSecurityResourceAdmin 역할이 없으므로 계층식 방화벽 정책을 폴더에 연결할 수 없습니다.

하지만 Joe가 Mary에게 policy-1 사용 권한을 부여했기 때문에 Mary는 이 계층식 방화벽 정책을 나열하고 dev-projects 폴더 또는 그 하위 항목과 연결할 수 있습니다. orgFirewallPolicyUser 역할은 정책을 폴더에 연결할 수 있는 권한을 부여하지 않습니다. 또한 사용자에게 대상 폴더에 대한 orgSecurityResourceAdmin 역할이 있어야 합니다.

policy-1 예시
policy-1 예시

계층식 방화벽 정책 리소스 관리

계층식 방화벽 정책은 적용되는 위치가 아닌 방화벽 규칙 집합만 정의하므로 이러한 리소스는 적용되는 노드와 계층 구조의 다른 부분에 만들 수 있습니다. 이렇게 하면 하나의 계층식 방화벽 정책 리소스를 조직의 여러 폴더와 연결할 수 있습니다.

다음 예시에서는 policy-1dev-projectscorp-projects 폴더에 적용되므로 해당 폴더의 모든 프로젝트에 적용됩니다.

정책 위치 및 연결
정책 위치 및 연결

정책 규칙 수정

정책의 규칙을 추가, 삭제, 수정할 수 있습니다. 각 변경사항은 개별적으로 수행되며 정책의 일괄 업데이트 메커니즘은 없습니다. 변경사항 적용 순서와 명령어가 실행되는 순서는 거의 동일하지만 보장되지는 않습니다.

계층식 방화벽 정책을 광범위하게 변경하고 동시에 적용되도록 해야 하는 경우 정책을 임시 정책에 클론하여 동일한 노드에 임시 정책을 할당할 수 있습니다. 그런 다음 원본을 변경하고 원래 항목을 노드에 다시 할당할 수 있습니다. 자세한 방법은 정책 간 규칙 클론을 참조하세요.

다음 예시에서는 policy-1dev-projects 폴더에 연결되어 있으며 원자적으로 적용되는 여러 변경 사항을 적용하려고 합니다. 이름이 scratch-policy인 새 정책을 만든 다음 기존 규칙을 모두 policy-1에서 scratch-policy로 복사하여 수정합니다. 수정을 완료한 후 scratch-policy에서 policy-1로 모든 규칙을 복사합니다.

정책 수정
정책 수정

정책 이동

프로젝트와 같은 계층식 방화벽 정책은 폴더 또는 조직 리소스에서 상위 항목으로 지정됩니다. 폴더 스키마가 발전함에 따라 폴더를 삭제하기 전에 계층식 방화벽 정책을 새 폴더로 이동해야 할 수 있습니다. 폴더가 삭제되면 폴더가 소유한 정책이 삭제됩니다.

다음 다이어그램은 노드 간 정책 이동 또는 정책의 규칙 평가를 보여줍니다.

정책 이동
정책 이동

계층식 방화벽 정책과 폴더 연결

계층식 방화벽 정책은 조직 또는 폴더 노드와 연결되지 않는 한 시행되지 않습니다. 연결이 완료되면 해당 조직 또는 폴더에 속한 모든 네트워크의 모든 VM에 적용됩니다.

정책 연결
정책 연결

리소스 계층 구조 변경사항

리소스 계층 구조의 변경사항이 시스템에 전파되는 데 다소 시간이 걸릴 수 있습니다. 네트워크는 계층 구조의 새 위치에 정의된 계층식 방화벽 정책을 즉시 상속하지 않을 수 있으므로 계층식 방화벽 정책 연결 및 리소스 계층 구조에 대한 동시 업데이트를 방지하는 것이 좋습니다.

정책 이동
정책 이동

예를 들어 dept-A 폴더를 dev-projects 폴더에서 eng-projects 폴더로 이동하고 policy-1 연결을 dev-projects 대신 eng-projects으로 변경하려면 dev-projects에서 policy-1의 연결을 동시에 해제하지 마세요. dev-projects 폴더의 모든 VPC 네트워크의 상위 항목이 업데이트되기 전에 계층식 방화벽 정책 연결이 끊어지면 잠시 해당 VPC 네트워크가 policy-1로 보호되지 않습니다.

공유 VPC에 계층식 방화벽 정책 사용

공유 VPC 시나리오에서 호스트 프로젝트 네트워크에 연결된 VM 인터페이스는 서비스 프로젝트가 아닌 호스트 프로젝트의 계층식 방화벽 정책 규칙에 의해 관리됩니다.

공유 VPC의 VM
공유 VPC의 VM

서비스 프로젝트가 호스트 프로젝트와 다른 폴더에 있는 경우에도 공유 네트워크의 VM 인터페이스는 호스트 프로젝트 폴더 규칙에서 상속됩니다.

호스트 프로젝트 규칙을 상속하는 서비스 프로젝트 VM
호스트 프로젝트 규칙을 상속하는 서비스 프로젝트 VM

VPC 네트워크 피어링에 계층식 방화벽 정책 사용

VPC 네트워크 피어링 시나리오에서 각 VPC 네트워크에 연결된 VM 인터페이스는 해당 VPC 네트워크의 계층 구조에 있는 정책을 상속합니다. 다음은 VPC 피어링된 네트워크가 다른 조직에 속하는 VPC 네트워크 피어링의 예시입니다.

각 네트워크에서 상속되는 VM
각 네트워크에서 상속되는 VM

다음 단계