Criar políticas de rede de tráfego entre organizações

Nesta página, você encontra instruções para configurar políticas de rede de tráfego entre organizações no Google Distributed Cloud (GDC) com isolamento físico.

O tráfego entre organizações se refere à comunicação entre serviços e cargas de trabalho de diferentes organizações.

Antes de começar

Para configurar políticas de rede de tráfego entre organizações, você precisa ter o seguinte:

Criar uma política de tráfego entre organizações

É possível definir políticas de tráfego de entrada ou saída entre organizações para gerenciar a comunicação entre serviços e cargas de trabalho de diferentes organizações.

O tráfego entre organizações se refere à comunicação entre serviços e cargas de trabalho de diferentes organizações.

É possível criar políticas de rede de projeto de tráfego global entre organizações que se aplicam ao tráfego em todas as zonas da sua organização. Para mais informações sobre recursos globais em um universo do GDC, consulte Visão geral de várias zonas.

Conectar serviços e cargas de trabalho a um destino fora do seu projeto em uma organização diferente exige aprovação explícita. É necessário desativar a proteção contra exfiltração de dados para permitir o tráfego entre organizações.

Criar uma regra de firewall de entrada global para tráfego entre organizações

Ao expor cargas de trabalho no seu projeto usando um balanceador de carga externo, também é necessário criar uma política de entrada ProjectNetworkPolicy para permitir que endereços IP de clientes externos acessem as cargas de trabalho.

Essa política global de entrada se aplica a todas as zonas da sua organização.

Siga estas etapas para criar uma regra de firewall e permitir o tráfego de entrada de cargas de trabalho em um projeto de outra organização:

Console

  1. No console do GDC do projeto que você está configurando, acesse Rede > Firewall no menu de navegação para abrir a página Firewall.
  2. Clique em Criar na barra de ações para começar a criar uma regra de firewall.
  3. Na página Detalhes da regra de firewall, preencha as seguintes informações:

    1. No campo Nome, insira um nome válido para a regra de firewall.
    2. Na seção Direção do tráfego, selecione Entrada para permitir o tráfego de entrada de cargas de trabalho em outras organizações.
    3. Na seção Segmentar, selecione uma das seguintes opções:
      • Todas as cargas de trabalho do usuário:permite conexões com as cargas de trabalho do projeto que você está configurando.
      • Serviço:indica que essa regra de firewall tem como destino um serviço específico no projeto que você está configurando.
    4. Se o destino for um serviço do projeto, selecione o nome dele no menu suspenso Serviço.
    5. Na seção De, selecione Fora da organização e insira o bloco CIDR de outra organização no campo CIDR para permitir conexões da rede dessa organização.
    6. Se o destino for todas as cargas de trabalho do usuário, selecione uma das seguintes opções na seção Protocolos e portas:
      • Permitir tudo:permite conexões usando qualquer protocolo ou porta.
      • Protocolos e portas especificados:permitem conexões usando apenas os protocolos e portas especificados nos campos correspondentes da regra de firewall de entrada.
  4. Na página Detalhes da regra de firewall, clique em Criar.

Agora você permitiu conexões de cargas de trabalho de projetos de uma organização diferente. Depois de criar a regra de firewall, ela fica visível em uma tabela na página Firewall.

API

Configure e aplique sua própria política de entrada ProjectNetworkPolicy personalizada:

kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
  namespace: PROJECT
  name: allow-inbound-traffic-from-external
spec:
  policyType: Ingress
  subject:
    subjectType: UserWorkload
  ingress:
  - from:
    - ipBlock:
        cidr: CIDR
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 do GDC.
  • CIDR: o bloco CIDR de outra organização.

Essa política é necessária porque o balanceador de carga externo usa o retorno direto do servidor (DSR), que preserva o endereço IP externo de origem e ignora o balanceador de carga no caminho de retorno.

Criar uma regra de firewall de saída global para tráfego entre organizações

Para transferir dados para serviços fora da organização, primeiro desative a proteção contra exfiltração de dados. Em seguida, configure uma regra de firewall de saída para permitir o tráfego de saída das cargas de trabalho ou serviços do projeto.

Esta seção descreve o processo para ativar o tráfego de saída no nível do projeto. Para informações sobre como gerenciar a conectividade de saída no nível da carga de trabalho, consulte Gerenciar o tráfego de saída das cargas de trabalho.

Essa regra global de firewall de saída se aplica a todas as zonas da sua organização.

Siga estas etapas para criar uma regra de firewall e permitir o tráfego de saída de serviços ou cargas de trabalho do projeto para cargas de trabalho em outra organização:

Console

  1. No console do GDC do projeto que você está configurando, acesse Rede > Firewall no menu de navegação para abrir a página Firewall.
  2. Clique em Criar na barra de ações para começar a criar uma regra de firewall.
  3. Na página Detalhes da regra de firewall, preencha as seguintes informações:

    1. No campo Nome, insira um nome válido para a regra de firewall.
    2. Na seção Direção do tráfego, selecione Saída para indicar que essa regra de firewall está controlando o tráfego de saída.
    3. Na seção Segmentar, selecione uma das seguintes opções:
      • Todas as cargas de trabalho do usuário:permite conexões das cargas de trabalho do projeto que você está configurando.
      • Serviço:indica que essa regra de firewall tem como destino um serviço específico no projeto que você está configurando.
    4. Se o destino for um serviço do projeto, selecione o nome dele no menu suspenso Serviço.
    5. Na seção Para, selecione Fora da organização e insira o bloco CIDR de outra organização no campo CIDR para permitir conexões com a rede dessa organização.
    6. Se o destino for todas as cargas de trabalho do usuário, selecione uma das seguintes opções na seção Protocolos e portas:
      • Permitir tudo:permite conexões usando qualquer protocolo ou porta.
      • Protocolos e portas especificados:permite conexões usando apenas os protocolos e portas especificados nos campos correspondentes da regra de firewall de saída.
  4. Na página Detalhes da regra de firewall, clique em Criar.

Agora você permitiu conexões com outra organização. Depois de criar a regra de firewall, ela fica visível em uma tabela na página Firewall.

API

Para ativar o tráfego de saída para serviços fora da organização, personalize o recurso ProjectNetworkPolicy. No entanto, como a prevenção contra exfiltração de dados está ativada por padrão, sua política de saída ProjectNetworkPolicy personalizada mostra um erro de validação no campo de status, e o plano de dados o ignora. Esse comportamento acontece por design.

É possível transferir cargas de trabalho de um projeto específico quando você permite a exfiltração de dados dele. O tráfego de saída permitido é uma conversão de endereços de rede (NAT) de origem usando um endereço IP conhecido alocado para o projeto.

Para ativar sua política de saída personalizada, siga estas etapas:

  1. Configure e aplique sua própria política de saída ProjectNetworkPolicy personalizada em todas as cargas de trabalho do usuário em um projeto.

    Use o exemplo a seguir:

    kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
    apiVersion: networking.global.gdc.goog/v1
    kind: ProjectNetworkPolicy
    metadata:
      namespace: PROJECT
      name: allow-outbound-traffic-to-external
    spec:
      subject:
        subjectType: UserWorkload
      egress:
      - to:
        - ipBlock:
            cidr: CIDR
    EOF
    

    A política permite o tráfego de saída para todos os hosts no bloco CIDR que residem fora da organização. A primeira tentativa precisa causar um erro de status intencional e necessário.

  2. Confirme se há um erro de validação no seu status.

  3. Peça ao administrador do IAM da organização para desativar a prevenção contra exfiltração de dados. Essa ação ativa sua configuração e impede todo o outro tráfego de saída.

  4. Verifique a ProjectNetworkPolicy que você criou e confira se o erro no campo de status de validação desapareceu e se o status Ready é True, indicando que sua política está em vigor:

    kubectl --kubeconfig GLOBAL_API_SERVER \
        get projectnetworkpolicy allow-outbound-traffic-to-external \
        -n PROJECT -o yaml
    

    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 do GDC.

Depois de aplicar essa política, e desde que você não tenha definido outras políticas de saída, todo o tráfego de saída será negado para PROJECT.