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

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

그룹

사용자가 생성하는 모든 프로젝트에 대한 기본 그룹이 시스템에서 생성됩니다. 기본 그룹은 프로젝트 자체를 나타냅니다. 프로젝트에서 생성된 모든 세그먼트는 시스템에 의해 프로젝트의 기본 그룹에 추가됩니다. 그룹의 세그먼트에 연결된 VM만 그룹에 추가됩니다. 기본 그룹은 규칙의 범위를 특정 프로젝트로 제한하는 데 도움이 됩니다.

기본 그룹에는 그룹 범위의 경로를 정의하는 그룹 범위 표현식이 있습니다. 관리자는 직접 또는 /infra 공간에서 그룹의 고정 멤버 자격을 통해 기본 그룹의 프로젝트에만 /infra 공간의 규칙을 적용할 수 있습니다.

생성한 추가 그룹에 대해 다음이 지원됩니다.

  • 고정 멤버 – VM, 세그먼트, 세그먼트 포트, IP 주소
  • 동적 멤버 - VM
다음 API 호출을 수행하여 그룹을 생성합니다.
PATCH /policy/api/v1/orgs/default/projects/<project-id>/infra/domains/default/groups/<group-id>
VM 기반 그룹 생성을 위한 샘플 요청:
URL:
PATCH https://{{nsx-manager-ip}}/policy/api/v1/orgs/default/projects/project-1/infra/domains/default/groups/group-1
본문:
{
  "expression": [
  {
    "member_type": "VirtualMachine",    
    "key": "Name",
    "operator": "CONTAINS",
    "value": "App",
    "resource_type": "Condition"
  }
  ],
  "description": "my group",
  "display_name": "g1",
  "_revision": 0
}

분산 방화벽

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

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

일부 기본 정책은 프로젝트가 생성될 때 시스템에서 생성됩니다. 기본 정책은 정책의 범위를 특정 프로젝트로 제한하는 데 도움이 됩니다.

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

다음 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
}