Nesta página, você encontra instruções para configurar políticas de rede no nível da carga de trabalho no Google Distributed Cloud (GDC) com isolamento físico.
As políticas de rede no nível da carga de trabalho oferecem controle granular sobre a comunicação entre cargas de trabalho individuais em um projeto. Essa granularidade permite um controle mais rígido do acesso à rede, melhorando a segurança e o uso de recursos.
As políticas de rede no nível da carga de trabalho podem aplicar o PNP em uma única zona. Rótulos específicos podem ser adicionados a cargas de trabalho em uma única zona, permitindo controlar a comunicação entre cargas de trabalho individuais em um projeto ou em projetos diferentes para essa zona. Para mais informações, consulte Política de rede no nível da carga de trabalho de uma única zona.
Criar uma política de tráfego intraprojeto no nível da carga de trabalho
É possível criar uma política de tráfego intraprojeto no nível da carga de trabalho para ativar ou desativar o acesso à rede para o tráfego entre cargas de trabalho em um projeto.
Política de rede de tráfego intraprojeto no nível da carga de trabalho de entrada
Ao criar um projeto, você cria implicitamente um recurso ProjectNetworkPolicy
básico padrão que permite a comunicação entre todas as cargas de trabalho dentro do projeto. Essa política
permite o tráfego de entrada de outras cargas de trabalho no mesmo projeto.
Para criar uma política de tráfego intraprojeto no nível da carga de trabalho, primeiro é necessário excluir a política de base padrão. Caso contrário, pode ocorrer um comportamento inesperado.
Para excluir a política de base padrão, execute o seguinte comando:
kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
Para criar uma política de rede de tráfego intraprojeto no nível da carga de trabalho de entrada, crie e aplique o seguinte recurso personalizado:
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
Substitua:
GLOBAL_API_SERVER
: o caminho do kubeconfig do servidor de API global. Para mais informações, consulte Servidores de API globais e zonais. Se você ainda não gerou um arquivo kubeconfig para o servidor da API, consulte Fazer login para mais detalhes.PROJECT
: o nome do projeto em que você quer permitir o tráfego de entrada intraprojeto no nível da carga de trabalho.SUBJECT_LABEL_KEY
: a chave do rótulo usado para selecionar as cargas de trabalho de origem. Por exemplo,app
,tier
ourole
.SUBJECT_LABEL_VALUE
: o valor associado aoSUBJECT_LABEL_KEY
. Ele especifica quais cargas de trabalho são a origem do tráfego permitido. Por exemplo, seSUBJECT_LABEL_KEY
forapp
eSUBJECT_LABEL_VALUE
forbackend
, as cargas de trabalho com o rótuloapp: backend
serão a origem do tráfego.TARGET_LABEL_KEY
: a chave do rótulo usado para selecionar as cargas de trabalho de destino.TARGET_LABEL_VALUE
: o valor associado aoTARGET_LABEL_KEY
. Ele especifica quais cargas de trabalho são o destino do tráfego permitido.
Criar uma política de tráfego entre projetos no nível da carga de trabalho
É possível criar uma política de tráfego entre projetos no nível da carga de trabalho para ativar ou desativar o acesso à rede para o tráfego entre cargas de trabalho em projetos diferentes.
Política de rede de tráfego entre projetos no nível da carga de trabalho de saída
Para criar uma política de rede de tráfego entre projetos no nível da carga de trabalho de saída, crie e aplique o seguinte recurso personalizado:
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
Substitua:
GLOBAL_API_SERVER
: o caminho do kubeconfig do servidor de API global. Para mais informações, consulte Servidores de API globais e zonais. Se você ainda não gerou um arquivo kubeconfig para o servidor da API, consulte Fazer login para mais detalhes.PROJECT_1
: o nome do projeto em que você quer permitir o tráfego de saída entre projetos no nível da carga de trabalho.PROJECT_2
: o nome do projeto em que você quer enviar o tráfego de saída entre projetos no nível da carga de trabalho.SUBJECT_LABEL_KEY
: a chave do rótulo usado para selecionar as cargas de trabalho de origem. Por exemplo,app
,tier
ourole
.SUBJECT_LABEL_VALUE
: o valor associado aoSUBJECT_LABEL_KEY
. Ele especifica quais cargas de trabalho são a origem do tráfego permitido. Por exemplo, seSUBJECT_LABEL_KEY
forapp
eSUBJECT_LABEL_VALUE
forbackend
, as cargas de trabalho com o rótuloapp: backend
serão a origem do tráfego.TARGET_LABEL_KEY
: a chave do rótulo usado para selecionar as cargas de trabalho de destino.TARGET_LABEL_VALUE
: o valor associado aoTARGET_LABEL_KEY
. Ele especifica quais cargas de trabalho são o destino do tráfego permitido.
Criar uma política de tráfego intraprojeto no nível da carga de trabalho de uma única zona
É possível criar uma política de tráfego intraprojeto no nível da carga de trabalho de uma única zona para ativar ou desativar o acesso à rede para o tráfego entre cargas de trabalho em um projeto em uma zona específica.
Política de rede de tráfego intraprojeto no nível da carga de trabalho de entrada de zona única
Ao criar um projeto, você cria implicitamente um recurso ProjectNetworkPolicy
básico padrão que permite a comunicação entre todas as cargas de trabalho dentro do projeto. Essa política
permite o tráfego de entrada de outras cargas de trabalho no mesmo projeto.
Para criar uma política de rede de tráfego intraprojeto no nível da carga de trabalho de entrada de uma única zona, primeiro é preciso excluir a política básica padrão. Caso contrário, pode ocorrer um comportamento inesperado.
Para excluir a política de base padrão, execute o seguinte comando:
kubectl --kubeconfig GLOBAL_API_SERVER delete pnp base-policy-allow-intra-project-traffic -n PROJECT
Para criar uma política de rede de tráfego intraprojeto no nível da carga de trabalho de entrada de uma única zona, crie e aplique o seguinte recurso personalizado:
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
Substitua:
GLOBAL_API_SERVER
: o caminho do kubeconfig do servidor de API global. Para mais informações, consulte Servidores de API globais e zonais. Se você ainda não gerou um arquivo kubeconfig para o servidor da API, consulte Fazer login para mais detalhes.PROJECT
: o nome do projeto em que você quer permitir o tráfego de entrada intraprojeto no nível da carga de trabalho de uma única zona.SUBJECT_LABEL_KEY
: a chave do rótulo usado para selecionar as cargas de trabalho de origem. Por exemplo,app
,tier
ourole
.SUBJECT_LABEL_VALUE
: o valor associado aoSUBJECT_LABEL_KEY
. Ele especifica quais cargas de trabalho são a origem do tráfego permitido. Por exemplo, seSUBJECT_LABEL_KEY
forapp
eSUBJECT_LABEL_VALUE
forbackend
, as cargas de trabalho com o rótuloapp: backend
serão a origem do tráfego.TARGET_LABEL_KEY
: a chave do rótulo usado para selecionar as cargas de trabalho de destino.TARGET_LABEL_VALUE
: o valor associado aoTARGET_LABEL_KEY
. Ele especifica quais cargas de trabalho são o destino do tráfego permitido.ZONE_SUBJECT_LABEL_KEY
: a chave do rótulo usada para selecionar a zona de origem. Por exemplo,zone
ouregion
.ZONE_SUBJECT_LABEL_VALUE
: o valor associado aoZONE_SUBJECT_LABEL_KEY
. Ela especifica qual zona é a origem do tráfego permitido. Por exemplo, seZONE_SUBJECT_LABEL_KEY
forzone
eZONE_SUBJECT_LABEL_VALUE
forus-central1-a
, as cargas de trabalho com o rótulozone: us-central1-a
serão a origem do tráfego.ZONE_TARGET_LABEL_KEY
: a chave do rótulo usado para selecionar a zona de destino.ZONE_TARGET_LABEL_VALUE
: o valor associado aoZONE_TARGET_LABEL_KEY
. Ela especifica qual zona é o destino do tráfego permitido.
Criar uma política de tráfego entre projetos no nível da carga de trabalho de uma única zona
É possível criar uma política de tráfego entre projetos no nível da carga de trabalho de uma única zona para ativar ou desativar o acesso à rede para tráfego entre cargas de trabalho em projetos diferentes em uma zona específica.
Política de rede de tráfego entre projetos no nível da carga de trabalho de saída de uma única zona
Para criar uma política de rede de tráfego intraprojeto no nível da carga de trabalho de saída de uma única zona, crie e aplique o seguinte recurso personalizado:
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
Substitua:
GLOBAL_API_SERVER
: o caminho do kubeconfig do servidor de API global. Para mais informações, consulte Servidores de API globais e zonais. Se você ainda não gerou um arquivo kubeconfig para o servidor da API, consulte Fazer login para mais detalhes.PROJECT_1
: o nome do projeto em que você quer permitir o tráfego de saída entre projetos no nível da carga de trabalho de uma única zona.PROJECT_2
: o nome do projeto em que você quer enviar o tráfego de saída entre projetos no nível da carga de trabalho de uma única zona.SUBJECT_LABEL_KEY
: a chave do rótulo usado para selecionar as cargas de trabalho de origem. Por exemplo,app
,tier
ourole
.SUBJECT_LABEL_VALUE
: o valor associado aoSUBJECT_LABEL_KEY
. Ele especifica quais cargas de trabalho são a origem do tráfego permitido. Por exemplo, seSUBJECT_LABEL_KEY
forapp
eSUBJECT_LABEL_VALUE
forbackend
, as cargas de trabalho com o rótuloapp: backend
serão a origem do tráfego.TARGET_LABEL_KEY
: a chave do rótulo usado para selecionar as cargas de trabalho de destino.TARGET_LABEL_VALUE
: o valor associado aoTARGET_LABEL_KEY
. Ele especifica quais cargas de trabalho são o destino do tráfego permitido.ZONE_SUBJECT_LABEL_KEY
: a chave do rótulo usada para selecionar a zona de origem. Por exemplo,zone
ouregion
.ZONE_SUBJECT_LABEL_VALUE
: o valor associado aoZONE_SUBJECT_LABEL_KEY
. Ela especifica qual zona é a origem do tráfego permitido. Por exemplo, seZONE_SUBJECT_LABEL_KEY
forzone
eZONE_SUBJECT_LABEL_VALUE
forus-central1-a
, as cargas de trabalho com o rótulozone: us-central1-a
serão a origem do tráfego.ZONE_TARGET_LABEL_KEY
: a chave do rótulo usado para selecionar a zona de destino.ZONE_TARGET_LABEL_VALUE
: o valor associado aoZONE_TARGET_LABEL_KEY
. Ela especifica qual zona é o destino do tráfego permitido.