이 페이지에서는 Google Distributed Cloud (GDC) 에어 갭에서 프로젝트 간 트래픽 네트워크 정책을 구성하는 방법을 설명합니다.
교차 프로젝트 트래픽은 서로 다른 프로젝트 네임스페이스에 있지만 동일한 조직 내에 있는 서비스와 워크로드 간의 통신을 의미합니다.
프로젝트의 서비스와 워크로드는 기본적으로 외부 서비스 및 워크로드와 격리됩니다. 하지만 서로 다른 프로젝트 네임스페이스에 있고 동일한 조직 내에 있는 서비스와 워크로드는 교차 프로젝트 트래픽 네트워크 정책을 적용하여 서로 통신할 수 있습니다.
단일 영역 내에서 프로젝트 간 트래픽 시행이 필요한 경우 워크로드 수준 네트워크 정책 만들기를 참고하세요.
시작하기 전에
프로젝트 내 트래픽 네트워크 정책을 구성하려면 다음이 필요합니다.
- 필요한 ID 및 액세스 역할입니다. 자세한 내용은 사전 정의된 역할 및 액세스 준비를 참고하세요.
- 기존 프로젝트입니다. 자세한 내용은 프로젝트 만들기를 참조하세요.
프로젝트 간 트래픽 정책 만들기
인그레스 또는 이그레스 교차 프로젝트 트래픽 정책을 정의하여 프로젝트 간 통신을 관리할 수 있습니다.
GDC 유니버스의 모든 영역에 적용되는 전역 교차 프로젝트 네트워크 정책을 만들 수 있습니다. 자세한 내용은 유니버스란 무엇인가요?를 참고하세요.
프로젝트 간 트래픽을 위한 전역 인그레스 방화벽 규칙 만들기
조직 내 다른 프로젝트의 워크로드에서 연결을 허용하려면 다른 프로젝트 워크로드의 인바운드 트래픽을 허용하도록 인그레스 방화벽 규칙을 구성해야 합니다.
이 전역 수신 정책은 조직의 모든 영역에 적용됩니다.
다음 단계에 따라 새 방화벽 규칙을 만들고 다른 프로젝트의 워크로드에서 인바운드 트래픽을 허용합니다.
콘솔
- 구성 중인 프로젝트의 GDC 콘솔에서 탐색 메뉴의 네트워킹 > 방화벽으로 이동하여 방화벽 페이지를 엽니다.
- 작업 표시줄에서 만들기를 클릭하여 새 방화벽 규칙을 만듭니다.
방화벽 규칙 세부정보 페이지에서 다음 정보를 입력합니다.
- 이름 필드에 방화벽 규칙의 유효한 이름을 입력합니다.
- 트래픽 방향 섹션에서 인그레스를 선택하여 다른 프로젝트의 워크로드에서 인바운드 트래픽을 허용합니다.
- 타겟 섹션에서 다음 옵션 중 하나를 선택합니다.
- 모든 사용자 워크로드: 구성 중인 프로젝트의 워크로드에 대한 연결을 허용합니다.
- 서비스: 이 방화벽 규칙이 구성 중인 프로젝트 내의 특정 서비스를 타겟팅함을 나타냅니다.
- 타겟이 프로젝트 서비스인 경우 서비스 드롭다운 메뉴의 사용 가능한 서비스 목록에서 서비스 이름을 선택합니다.
- 보낸 사람 섹션에서 다음 두 가지 옵션 중 하나를 선택합니다.
- 모든 프로젝트: 동일한 조직의 모든 프로젝트에 있는 워크로드에서 연결을 허용합니다.
- 다른 프로젝트 및 모든 사용자 워크로드: 동일한 조직의 다른 프로젝트에 있는 워크로드에서 연결을 허용합니다.
- 다른 프로젝트의 워크로드만 전송하려면 프로젝트 ID 드롭다운 메뉴의 프로젝트 목록에서 액세스할 수 있는 프로젝트를 선택합니다.
- 타겟이 모든 사용자 워크로드인 경우 프로토콜 및 포트 섹션에서 다음 옵션 중 하나를 선택합니다.
- 모두 허용: 모든 프로토콜 또는 포트를 사용하여 연결을 허용합니다.
- 지정된 프로토콜 및 포트: 인그레스 방화벽 규칙의 해당 필드에 지정된 프로토콜 및 포트만 사용하여 연결을 허용합니다.
방화벽 규칙 세부정보 페이지에서 만들기를 클릭합니다.
이제 동일한 조직 내 다른 프로젝트 워크로드의 연결이 허용됩니다. 방화벽 규칙을 만들면 방화벽 페이지의 표에 규칙이 표시됩니다.
API
다음 정책은 PROJECT_1
프로젝트의 워크로드가 PROJECT_2
프로젝트의 워크로드에서 연결을 허용하고 동일한 흐름의 반환 트래픽을 허용하도록 합니다. 정책을 적용합니다.
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT_1
name: allow-inbound-traffic-from-PROJECT_2
spec:
policyType: Ingress
subject:
subjectType: UserWorkload
ingress:
- from:
- projectSelector:
projects:
matchNames:
- PROJECT_2
EOF
GLOBAL_API_SERVER
를 전역 API 서버의 kubeconfig 경로로 바꿉니다. 자세한 내용은 전역 및 영역별 API 서버를 참고하세요.
API 서버의 kubeconfig 파일을 아직 생성하지 않은 경우 로그인에서 자세한 내용을 확인하세요.
위 명령어는 PROJECT_2
가 PROJECT_1
로 이동하는 것을 허용하지만 PROJECT_1
에서 PROJECT_2
로 시작된 연결은 허용하지 않습니다. 후자의 경우 PROJECT_2
프로젝트에 상호 정책이 필요합니다. 상호 정책을 적용합니다.
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT_2
name: allow-inbound-traffic-from-PROJECT_1
spec:
policyType: Ingress
subject:
subjectType: UserWorkload
ingress:
- from:
- projectSelector:
projects:
matchNames:
- PROJECT_1
EOF
이제 PROJECT_1
및 PROJECT_2
와의 연결이 허용됩니다.
프로젝트 간 트래픽에 대한 전역 이그레스 방화벽 규칙 만들기
한 프로젝트의 워크로드가 다른 프로젝트의 워크로드로부터 연결을 허용하도록 인그레스 교차 프로젝트 트래픽 정책을 부여하면 이 작업은 동일한 흐름의 반환 트래픽도 부여합니다. 따라서 원래 프로젝트에는 이그레스 교차 프로젝트 트래픽 네트워크 정책이 필요하지 않습니다.
이 전역 이그레스 정책은 GDC 유니버스의 모든 영역에만 적용됩니다.
예를 들어 PROJECT_1
에서 PROJECT_2
로의 트래픽을 허용하는 정책을 만들고 데이터 무단 반출 보호가 사용 중지된 경우 PROJECT_2
에 인그레스 정책을 만들고 PROJECT_1
에 이그레스 정책을 만들어야 합니다. 하지만 응답 패킷은 정책 시행에서 제외되므로 추가 정책이 필요하지 않습니다.
다음 단계에 따라 새 방화벽 규칙을 만들고 프로젝트의 워크로드에서 아웃바운드 트래픽을 허용합니다.
- 구성 중인 프로젝트의 GDC 콘솔에서 탐색 메뉴의 네트워킹 > 방화벽으로 이동하여 방화벽 페이지를 엽니다.
- 작업 표시줄에서 만들기를 클릭하여 새 방화벽 규칙을 만듭니다.
방화벽 규칙 세부정보 페이지에서 다음 정보를 입력합니다.
- 이름 필드에 방화벽 규칙의 유효한 이름을 입력합니다.
- 트래픽 방향 섹션에서 이그레스를 선택하여 이 방화벽 규칙이 아웃바운드 트래픽을 제어하고 있음을 나타냅니다.
- 타겟 섹션에서 다음 옵션 중 하나를 선택합니다.
- 모든 사용자 워크로드: 구성 중인 프로젝트의 워크로드에서 연결을 허용합니다.
- 서비스: 이 방화벽 규칙이 구성 중인 프로젝트 내의 특정 서비스를 타겟팅함을 나타냅니다.
- 타겟이 프로젝트 서비스인 경우 서비스 드롭다운 메뉴의 사용 가능한 서비스 목록에서 서비스 이름을 선택합니다.
- 받는 사람 섹션에서 다음 두 가지 옵션 중 하나를 선택합니다.
- 모든 프로젝트: 동일한 조직의 모든 프로젝트에 있는 워크로드에 대한 연결을 허용합니다.
- 다른 프로젝트 및 모든 사용자 워크로드: 동일한 조직의 다른 프로젝트에 있는 워크로드에 연결을 허용합니다.
- 워크로드를 다른 프로젝트로만 전송하려면 프로젝트 ID 드롭다운 메뉴의 프로젝트 목록에서 액세스할 수 있는 프로젝트를 선택합니다.
- 타겟이 모든 사용자 워크로드인 경우 프로토콜 및 포트 섹션에서 다음 옵션 중 하나를 선택합니다.
- 모두 허용: 모든 프로토콜 또는 포트를 사용하여 연결을 허용합니다.
- 지정된 프로토콜 및 포트: 이그레스 방화벽 규칙의 해당 필드에 지정된 프로토콜 및 포트만 사용하여 연결을 허용합니다.
방화벽 규칙 세부정보 페이지에서 만들기를 클릭합니다.
이제 동일한 조직 내의 다른 프로젝트 워크로드에 대한 연결이 허용되었습니다. 방화벽 규칙을 만들면 방화벽 페이지의 표에 규칙이 표시됩니다.