NSX는 환경에서 다중 테넌시를 설정할 때 정책 생성을 지원합니다.

프로젝트의 방화벽 규칙은 프로젝트의 VM, 즉 프로젝트의 네트워크에 연결된 VM에만 적용됩니다. DFW에 적용된 임의 규칙을 포함하여 프로젝트 내의 규칙은 프로젝트 외부의 워크로드에 영향을 주지 않습니다.
참고: /infra 공간의 그룹화 및 방화벽 규칙은 프로젝트에 포함된 VM을 포함하여 NSX 배포의 모든 VM에 적용됩니다. 예를 들어 태그를 기준으로 하는 그룹에는 프로젝트 내부 및 외부에서 멤버와 동일한 태그를 가진 모든 VM이 포함됩니다.

프로젝트에 대한 분산 방화벽

긴급, 인프라, 환경 및 애플리케이션 DFW 범주는 조직 내의 프로젝트에 대해 지원됩니다. /infra 정책의 우선순위가 가장 높고 프로젝트 정책이 그다음으로 높습니다. /infra 공간의 DFW 규칙은 프로젝트로 확장될 수 있습니다.

  • /infra 공간에서 생성된 규칙은 기본적으로 환경의 모든 워크로드에 적용됩니다.
    • 규칙의 범위를 정의하려면 NSX UI에서 적용 대상에 대한 적합한 옵션을 선택합니다. 예를 들어 적용 대상 옵션을 사용하여 규칙을 특정 워크로드로 제한할 수 있습니다.
    • /infra 공간에서 생성된 그룹 또는 시스템에서 생성되고 프로젝트의 모든 VM을 포함하는 프로젝트 기본 그룹(ORG-default-PROJECT-<project-name>)에 대해 적용 대상 옵션을 사용할 수도 있습니다.
  • 다음은 /infra 공간에서 생성된 그룹에 적용됩니다.
    • 동적 멤버 자격은 프로젝트의 VM을 포함하여 시스템의 모든 VM을 평가합니다. 예를 들어 그룹 멤버 자격에 web 태그가 지정된 모든 VM이 포함된 경우 그룹에는 프로젝트 내부와 외부 모두에서 web 태그가 있는 VM이 포함됩니다.
    • 고정 멤버 자격의 경우 Vm(메모리메모리 > 가상 시스템)을 명시적으로 참조하거나 프로젝트 기본 그룹(ORG-default-PROJECT-<project-name>)을 사용하여 프로젝트에 연결된 워크로드를 추가할 수 있습니다. 프로젝트에서 생성된 다른 리소스는 /infra 공간의 그룹에서 지원되지 않습니다.

기본 규칙

프로젝트 생성 시 기본 보안 정책은 애플리케이션 범주의 정책 목록 맨 아래에 있는 프로젝트 내에 생성됩니다. 기본 정책은 다른 규칙이 발생하지 않는 경우 프로젝트 내의 VM에 대한 동작을 정의합니다.

기본 정책에는 다음 규칙이 포함됩니다.

  • DHCP에 대한 통신을 허용하는 규칙.

    (src:ANY dst:ANY services:DHCP Client|DHCP Server Action Allow)

  • 프로젝트 내 워크로드 간 통신을 허용하는 규칙.

    (src:Project default groups (ORG-default-PROJECT-<project-name> dst:Project default groups (ORG-default-PROJECT-<project-name> services:ANY Action Allow)

  • 다른 모든 통신을 거부하는 규칙.

    (src:ANY dst:ANY services:ANY Action Deny)

기본 정책은 프로젝트 내의 VM이 DHCP 서버를 포함하여 동일한 프로젝트(및 DHCP)의 다른 VM에만 연결할 수 있도록 합니다. 프로젝트 외부 또는 다른 시스템 생성 IP 주소와의 VM과의 통신은 차단되며 기본 보안 정책에서 규칙을 추가하거나 규칙을 수정해야만 허용됩니다.

프로젝트에 대한 분산 방화벽 추가

프로젝트 정책의 경우 범위가 [임의]로 설정되면 정책이 해당 프로젝트로 제한됩니다. 프로젝트 규칙은 프로젝트의 그룹 및 프로젝트와 공유된 그룹에만 액세스할 수 있습니다.

다음 API 호출을 수행하여 보안 정책을 적용합니다.
PATCH /policy/api/v1/orgs/default/projects/<project-id>/infra/domains/default/security-policies/<security-policy-id>

샘플 요청:

URL:
PATCH https://{{nsx-manager-ip}}/policy/api/v1/orgs/default/projects/project-1/infra/domains/default/security-policies/web-db
본문:
{
  "resource_type": "SecurityPolicy",
    "description": "web-db",
    "display_name": "web-db",
    "rules": [
    {
      "resource_type": "Rule",
      "description": "web-db-rule-1",
      "display_name": "web-db-rule-1",
      "sequence_number": 1,
      "source_groups": [
        "/orgs/default/projects/project-1/infra/domains/default/groups/group-1"
      ],
      "destination_groups": [
        "/orgs/default/projects/project-1/infra/domains/default/groups/group-1"
      ],
      "services" : ["/infra/services/HTTP"],
      "action" : "ALLOW",
      "_revision": 0
    }
  ],
  "sequence_number": 1,
  "_revision": 0
}