이 페이지에서는 Google Distributed Cloud (GDC) 에어 갭에서 워크로드 수준 네트워크 정책을 구성하는 방법을 설명합니다.
워크로드 수준 네트워크 정책은 프로젝트 내 개별 워크로드 간 통신을 세부적으로 제어할 수 있습니다. 이 세분화된 기능을 사용하면 네트워크 액세스를 더 엄격하게 제어하여 보안과 리소스 사용을 개선할 수 있습니다.
워크로드 수준 네트워크 정책은 단일 영역에서 PNP를 적용할 수 있습니다. 단일 영역 내의 워크로드에 특정 라벨을 추가하여 해당 영역의 프로젝트 내 또는 여러 프로젝트 간 개별 워크로드 간 통신을 제어할 수 있습니다. 자세한 내용은 단일 영역 워크로드 수준 네트워크 정책을 참고하세요.
워크로드 수준 프로젝트 내 트래픽 정책 만들기
워크로드 수준 프로젝트 내 트래픽 정책을 만들어 프로젝트 내 워크로드 간 트래픽의 네트워크 액세스를 사용 설정하거나 중지할 수 있습니다.
인그레스 워크로드 수준 프로젝트 내 트래픽 네트워크 정책
프로젝트를 만들면 모든 워크로드 간의 프로젝트 내 통신을 허용하는 기본 기본 ProjectNetworkPolicy
리소스가 암시적으로 생성됩니다. 이 정책은 동일한 프로젝트의 다른 워크로드로부터의 인바운드 트래픽을 허용합니다.
워크로드 수준 프로젝트 내 트래픽 정책을 만들려면 먼저 기본 기본 정책을 삭제해야 합니다. 그렇지 않으면 예기치 않은 동작이 발생할 수 있습니다.
기본 기본 정책을 삭제하려면 다음 명령어를 실행합니다.
kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
인그레스 워크로드 수준 프로젝트 내 트래픽 네트워크 정책을 만들려면 다음 커스텀 리소스를 만들고 적용하세요.
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: PROJECT name: allow-intra-project-inbound-traffic-from-target-to-subject spec: policyType: Ingress subject: subjectType: UserWorkload workloadSelector: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE ingress: - from: - projectSelector: projects: matchNames: - PROJECT workloads: matchLabels: TARGET_LABEL_KEY: TARGET_LABEL_VALUE EOF
다음을 바꿉니다.
GLOBAL_API_SERVER
: 전역 API 서버의 kubeconfig 경로입니다. 자세한 내용은 전역 및 영역별 API 서버를 참고하세요. API 서버의 kubeconfig 파일을 아직 생성하지 않은 경우 로그인에서 자세한 내용을 확인하세요.PROJECT
: 워크로드 수준의 프로젝트 내 인바운드 트래픽을 허용할 프로젝트의 이름입니다.SUBJECT_LABEL_KEY
: 소스 워크로드를 선택하는 데 사용되는 라벨의 키입니다. 예를 들면app
,tier
,role
입니다.SUBJECT_LABEL_VALUE
:SUBJECT_LABEL_KEY
와 연결된 값입니다. 허용된 트래픽의 소스인 워크로드를 지정합니다. 예를 들어SUBJECT_LABEL_KEY
이app
이고SUBJECT_LABEL_VALUE
이backend
이면 라벨이app: backend
인 워크로드가 트래픽 소스입니다.TARGET_LABEL_KEY
: 대상 워크로드를 선택하는 데 사용되는 라벨의 키입니다.TARGET_LABEL_VALUE
:TARGET_LABEL_KEY
와 연결된 값입니다. 허용된 트래픽의 대상이 되는 워크로드를 지정합니다.
워크로드 수준 교차 프로젝트 트래픽 정책 만들기
워크로드 수준 교차 프로젝트 트래픽 정책을 만들어 서로 다른 프로젝트의 워크로드 간 트래픽에 대한 네트워크 액세스를 사용 설정하거나 사용 중지할 수 있습니다.
이그레스 워크로드 수준 교차 프로젝트 트래픽 네트워크 정책
이그레스 워크로드 수준 교차 프로젝트 트래픽 네트워크 정책을 만들려면 다음 커스텀 리소스를 만들고 적용하세요.
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: PROJECT_1 name: allow-cross-project-outbound-traffic-to-subject-from-target spec: policyType: Egress subject: subjectType: UserWorkload workloadSelector: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE egress: - to: - projectSelector: projects: matchNames: - PROJECT_2 workloads: matchLabels: TARGET_LABEL_KEY: TARGET_LABEL_VALUE EOF
다음을 바꿉니다.
GLOBAL_API_SERVER
: 전역 API 서버의 kubeconfig 경로입니다. 자세한 내용은 전역 및 영역별 API 서버를 참고하세요. API 서버의 kubeconfig 파일을 아직 생성하지 않은 경우 로그인에서 자세한 내용을 확인하세요.PROJECT_1
: 워크로드 수준 교차 프로젝트 아웃바운드 트래픽을 허용할 프로젝트의 이름입니다.PROJECT_2
: 워크로드 수준 교차 프로젝트 아웃바운드 트래픽을 전송할 프로젝트의 이름입니다.SUBJECT_LABEL_KEY
: 소스 워크로드를 선택하는 데 사용되는 라벨의 키입니다. 예를 들면app
,tier
,role
입니다.SUBJECT_LABEL_VALUE
:SUBJECT_LABEL_KEY
와 연결된 값입니다. 허용된 트래픽의 소스인 워크로드를 지정합니다. 예를 들어SUBJECT_LABEL_KEY
이app
이고SUBJECT_LABEL_VALUE
이backend
이면 라벨이app: backend
인 워크로드가 트래픽 소스입니다.TARGET_LABEL_KEY
: 대상 워크로드를 선택하는 데 사용되는 라벨의 키입니다.TARGET_LABEL_VALUE
:TARGET_LABEL_KEY
와 연결된 값입니다. 허용된 트래픽의 대상이 되는 워크로드를 지정합니다.
단일 영역 워크로드 수준 프로젝트 내 트래픽 정책 만들기
단일 영역 워크로드 수준 프로젝트 내 트래픽 정책을 만들어 특정 영역의 프로젝트 내 워크로드 간 트래픽의 네트워크 액세스를 사용 설정하거나 사용 중지할 수 있습니다.
단일 영역 인그레스 워크로드 수준 프로젝트 내 트래픽 네트워크 정책
프로젝트를 만들면 모든 워크로드 간의 프로젝트 내 통신을 허용하는 기본 기본 ProjectNetworkPolicy
리소스가 암시적으로 생성됩니다. 이 정책은 동일한 프로젝트의 다른 워크로드로부터의 인바운드 트래픽을 허용합니다.
단일 영역 인그레스 워크로드 수준 프로젝트 내 트래픽 네트워크 정책을 만들려면 먼저 기본 기본 정책을 삭제해야 합니다. 그렇지 않으면 예기치 않은 동작이 발생할 수 있습니다.
기본 기본 정책을 삭제하려면 다음 명령어를 실행합니다.
kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
단일 영역 인그레스 워크로드 수준 프로젝트 내 트래픽 네트워크 정책을 만들려면 다음 커스텀 리소스를 만들어 적용하세요.
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: PROJECT name: allow-single-zone-intra-project-inbound-traffic-from-target-to-subject spec: policyType: Ingress subject: subjectType: UserWorkload workloadSelector: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE ZONE_SUBJECT_LABEL_KEY: ZONE_SUBJECT_LABEL_VALUE ingress: - from: - projectSelector: projects: matchNames: - PROJECT workloads: matchLabels: TARGET_LABEL_KEY: TARGET_LABEL_VALUE ZONE_TARGET_LABEL_KEY: ZONE_TARGET_LABEL_VALUE EOF
다음을 바꿉니다.
GLOBAL_API_SERVER
: 전역 API 서버의 kubeconfig 경로입니다. 자세한 내용은 전역 및 영역별 API 서버를 참고하세요. API 서버의 kubeconfig 파일을 아직 생성하지 않은 경우 로그인에서 자세한 내용을 확인하세요.PROJECT
: 단일 영역 워크로드 수준 프로젝트 내 인바운드 트래픽을 허용할 프로젝트의 이름입니다.SUBJECT_LABEL_KEY
: 소스 워크로드를 선택하는 데 사용되는 라벨의 키입니다. 예를 들면app
,tier
,role
입니다.SUBJECT_LABEL_VALUE
:SUBJECT_LABEL_KEY
와 연결된 값입니다. 허용된 트래픽의 소스인 워크로드를 지정합니다. 예를 들어SUBJECT_LABEL_KEY
이app
이고SUBJECT_LABEL_VALUE
이backend
이면 라벨이app: backend
인 워크로드가 트래픽 소스입니다.TARGET_LABEL_KEY
: 대상 워크로드를 선택하는 데 사용되는 라벨의 키입니다.TARGET_LABEL_VALUE
:TARGET_LABEL_KEY
와 연결된 값입니다. 허용된 트래픽의 대상이 되는 워크로드를 지정합니다.ZONE_SUBJECT_LABEL_KEY
: 소스 영역을 선택하는 데 사용되는 라벨의 키입니다. 예를 들면zone
또는region
입니다.ZONE_SUBJECT_LABEL_VALUE
:ZONE_SUBJECT_LABEL_KEY
와 연결된 값입니다. 허용된 트래픽의 소스 영역을 지정합니다. 예를 들어ZONE_SUBJECT_LABEL_KEY
이zone
이고ZONE_SUBJECT_LABEL_VALUE
이us-central1-a
이면 라벨이zone: us-central1-a
인 워크로드가 트래픽 소스입니다.ZONE_TARGET_LABEL_KEY
: 대상 영역을 선택하는 데 사용되는 라벨의 키입니다.ZONE_TARGET_LABEL_VALUE
:ZONE_TARGET_LABEL_KEY
와 연결된 값입니다. 허용된 트래픽의 대상이 되는 영역을 지정합니다.
단일 영역 워크로드 수준 교차 프로젝트 트래픽 정책 만들기
단일 영역 워크로드 수준 교차 프로젝트 트래픽 정책을 만들어 특정 영역의 서로 다른 프로젝트 내 워크로드 간 트래픽의 네트워크 액세스를 사용 설정하거나 사용 중지할 수 있습니다.
단일 영역 이그레스 워크로드 수준 교차 프로젝트 트래픽 네트워크 정책
단일 영역 이그레스 워크로드 수준 프로젝트 내 트래픽 네트워크 정책을 만들려면 다음 커스텀 리소스를 만들고 적용하세요.
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: PROJECT_1 name: allow-single-zone-cross-project-outbound-traffic-to-subject-from-target spec: policyType: Egress subject: subjectType: UserWorkload workloadSelector: matchLabels: SUBJECT_LABEL_KEY: SUBJECT_LABEL_VALUE ZONE_SUBJECT_LABEL_KEY: ZONE_SUBJECT_LABEL_VALUE egress: - to: - projectSelector: projects: matchNames: - PROJECT_2 workloads: matchLabels: TARGET_LABEL_KEY: TARGET_LABEL_VALUE ZONE_TARGET_LABEL_KEY: ZONE_TARGET_LABEL_VALUE EOF
다음을 바꿉니다.
GLOBAL_API_SERVER
: 전역 API 서버의 kubeconfig 경로입니다. 자세한 내용은 전역 및 영역별 API 서버를 참고하세요. API 서버의 kubeconfig 파일을 아직 생성하지 않은 경우 로그인에서 자세한 내용을 확인하세요.PROJECT_1
: 단일 영역 워크로드 수준 교차 프로젝트 아웃바운드 트래픽을 허용하려는 프로젝트의 이름입니다.PROJECT_2
: 단일 영역 워크로드 수준 교차 프로젝트 아웃바운드 트래픽을 전송할 프로젝트의 이름입니다.SUBJECT_LABEL_KEY
: 소스 워크로드를 선택하는 데 사용되는 라벨의 키입니다. 예를 들면app
,tier
,role
입니다.SUBJECT_LABEL_VALUE
:SUBJECT_LABEL_KEY
와 연결된 값입니다. 허용된 트래픽의 소스인 워크로드를 지정합니다. 예를 들어SUBJECT_LABEL_KEY
이app
이고SUBJECT_LABEL_VALUE
이backend
이면 라벨이app: backend
인 워크로드가 트래픽 소스입니다.TARGET_LABEL_KEY
: 대상 워크로드를 선택하는 데 사용되는 라벨의 키입니다.TARGET_LABEL_VALUE
:TARGET_LABEL_KEY
와 연결된 값입니다. 허용된 트래픽의 대상이 되는 워크로드를 지정합니다.ZONE_SUBJECT_LABEL_KEY
: 소스 영역을 선택하는 데 사용되는 라벨의 키입니다. 예를 들면zone
또는region
입니다.ZONE_SUBJECT_LABEL_VALUE
:ZONE_SUBJECT_LABEL_KEY
와 연결된 값입니다. 허용된 트래픽의 소스 영역을 지정합니다. 예를 들어ZONE_SUBJECT_LABEL_KEY
이zone
이고ZONE_SUBJECT_LABEL_VALUE
이us-central1-a
이면 라벨이zone: us-central1-a
인 워크로드가 트래픽 소스입니다.ZONE_TARGET_LABEL_KEY
: 대상 영역을 선택하는 데 사용되는 라벨의 키입니다.ZONE_TARGET_LABEL_VALUE
:ZONE_TARGET_LABEL_KEY
와 연결된 값입니다. 허용된 트래픽의 대상이 되는 영역을 지정합니다.