Restrições da política da organização para o Cloud Load Balancing

Nesta página, você encontra informações complementares sobre as restrições da política da organização que se aplicam ao Cloud Load Balancing. Use as restrições da política da organização para aplicar configurações em todo um projeto, uma pasta ou uma organização.

As políticas da organização só são válidas para novos recursos. As restrições não são aplicadas de maneira retroativa. Se você tiver recursos de balanceamento de carga preexistentes que violam uma nova política da organização, precisará lidar com essas violações manualmente.

Para ver uma lista completa das restrições disponíveis, consulte Restrições da política da organização.

Restringir tipos de balanceadores de carga

Use uma política da organização para restringir os tipos de Cloud Load Balancing que podem ser criados na sua organização. Defina a seguinte restrição de política da organização:

  • Nome: restringir a criação de balanceadores de carga com base em tipos de balanceador de carga
  • ID: constraints/compute.restrictLoadBalancerCreationForTypes

Ao definir a restrição compute.restrictLoadBalancerCreationForTypes, você especifica uma lista de permissões ou uma lista de bloqueio dos tipos do Cloud Load Balancing. A lista de valores permitidos ou negados só pode incluir valores da seguinte lista:

  • Balanceadores de carga de aplicativo
    • GLOBAL_EXTERNAL_MANAGED_HTTP_HTTPS para o balanceador de carga de aplicativo externo global
    • EXTERNAL_HTTP_HTTPS para o balanceador de carga clássico do aplicativo
    • EXTERNAL_MANAGED_HTTP_HTTPS para o balanceador de carga regional externo
    • GLOBAL_INTERNAL_MANAGED_HTTP_HTTPS para o balanceador de carga interno interregional do aplicativo entre regiões
    • INTERNAL_HTTP_HTTPS para o balanceador de carga interno regional do aplicativo
  • Balanceadores de carga de rede de proxy
    • GLOBAL_EXTERNAL_MANAGED_TCP_PROXY para o balanceador de carga de rede do proxy externo global com um proxy TCP
    • GLOBAL_EXTERNAL_MANAGED_SSL_PROXY para o balanceador de carga de rede do proxy externo global com um proxy SSL
    • EXTERNAL_TCP_PROXY para o balanceador de carga de rede do proxy clássico com um proxy TCP
    • EXTERNAL_SSL_PROXY para o balanceador de carga de rede do proxy clássico com um proxy SSL
    • REGIONAL_EXTERNAL_MANAGED_TCP_PROXY para o balanceador de carga de rede do proxy externo regional com um proxy TCP
    • REGIONAL_INTERNAL_MANAGED_TCP_PROXY para o balanceador de carga de rede de proxy interno regional com um proxy TCP
    • GLOBAL_INTERNAL_MANAGED_TCP_PROXY para o balanceador de carga de rede de proxy interno entre regiões com um proxy TCP
  • Balanceadores de carga de rede de passagem
    • EXTERNAL_NETWORK_TCP_UDP para o balanceador de carga de rede de passagem externa
    • INTERNAL_TCP_UDP para o balanceador de carga de rede de passagem interna

Para incluir todos os tipos internos ou externos de balanceador de carga, use o prefixo in: seguido de INTERNAL ou EXTERNAL. Por exemplo, permitir in:INTERNAL permite que todos os balanceadores de carga internos da lista anterior sejam permitidos.

Para ver instruções de exemplo sobre como usar essa restrição, consulte Configurar restrições de lista com políticas da organização.

Depois de definir a política, ela será aplicada ao adicionar as respectivas regras de encaminhamento do Google Cloud. A restrição não é aplicada nas configurações existentes do Cloud Load Balancing.

Se você tentar criar um balanceador de carga de um tipo que viole a restrição, a tentativa falhará e uma mensagem de erro será gerada. A mensagem de erro tem o seguinte formato:

Constraint constraints/compute.restrictLoadBalancerCreationForTypes
violated for projects/PROJECT_NAME. Forwarding Rule projects/PROJECT_NAME/region/REGION/forwardingRules/FORWARDING_RULE_NAME
of type SCHEME is not allowed.

Se você definir várias restrições restrictLoadBalancerCreationForTypes em diferentes níveis de recursos, elas serão aplicadas hierarquicamente. Por isso, recomendamos definir o campo inheritFromParent como true, o que garante que as políticas nas camadas superiores também sejam consideradas.

Mensagens de erro do GKE

Se você estiver usando objetos de Serviço e Entrada do Google Kubernetes Engine (GKE), o uso desta política de organização para restringir resultados de criação de balanceador de carga em uma mensagem de erro será semelhante a esta:

Warning  Sync    28s   loadbalancer-controller  Error during sync: error running
load balancer syncing routine: loadbalancer FORWARDING_RULE_NAME
does not exist: googleapi: Error 412:
Constraint constraints/compute.restrictLoadBalancerCreationForTypes violated for
projects/PROJECT_ID. Forwarding Rule
projects/PROJECT_ID/global/forwardingRules/FORWARDING_RULE_NAME
of type LOAD_BALANCER_TYPE is not allowed, conditionNotMet

É possível ver as mensagens de erro do GKE executando os seguintes comandos:

kubectl get events -w
kubectl describe RESOURCE_KIND NAME

Substitua:

  • RESOURCE_KIND: o tipo de balanceador de carga, ingress ou service
  • NAME: o nome do balanceador de carga.

Desativar balanceamento de carga global

Essa restrição booleana desativa a criação de produtos de balanceamento de carga global. Quando aplicada, só podem ser criados produtos de balanceamento de carga regionais sem dependências globais.

  • * Nome: desative o balanceamento de carga global.
  • * ID: constraints/compute.disableGlobalLoadBalancing

Por padrão, os usuários podem criar produtos de balanceamento de carga global.

Para ver instruções de exemplo sobre como usar essa restrição, consulte Configurar restrições booleanas com políticas da organização.

Restringir tipos de encaminhamento de protocolo

Use uma política da organização para restringir os tipos de encaminhamento de protocolo que podem ser criados na organização. Defina a seguinte restrição de política da organização:

  • Nome: restringir encaminhamento de protocolo com base no tipo de endereço IP
  • ID: constraints/compute.restrictProtocolForwardingCreationForTypes

Quando você define a restrição compute.restrictProtocolForwardingCreationForTypes, você especifica uma lista de permissões ou uma lista de bloqueio dos tipos de encaminhamento de protocolo. A lista de valores permitidos ou negados só pode incluir valores da seguinte lista:

  • INTERNAL
  • EXTERNAL

Para ver instruções de exemplo sobre como usar essa restrição, consulte Configurar restrições de lista com políticas da organização.

Depois de definir a política, ela será aplicada ao adicionar as respectivas regras de encaminhamento do Google Cloud. A restrição não é aplicada às configurações de encaminhamento de protocolo atuais.

Se você tentar criar um encaminhamento de protocolo de implantação de um tipo que viole a restrição, a tentativa falhará, e uma mensagem de erro será gerada. A mensagem de erro tem o seguinte formato:

Constraint constraints/compute.restrictProtocolForwardingCreationForTypes
violated for projects/PROJECT_NAME. Forwarding Rule
projects/PROJECT_NAME/region/REGION/forwardingRules/FORWARDING_RULE_NAME
of type SCHEME is not allowed.

Se você definir várias restrições restrictProtocolForwardingCreationForTypes em diferentes níveis de recursos e definir o campo inheritFromParent como true, as restrições serão aplicadas hierarquicamente.

Aplicar restrições de VPC compartilhada

Use as políticas da organização a seguir para restringir como os usuários podem configurar implantações de VPC compartilhada.

Restringir projetos de host de VPC compartilhada

Com essa restrição de lista, é possível restringir os projetos host da VPC compartilhada aos quais um recurso pode ser anexado.

  • Nome: restrinja projetos host de VPC compartilhada
  • ID: constraints/compute.restrictSharedVpcHostProjects

Por padrão, um projeto pode ser anexado a qualquer projeto host na mesma organização, tornando-se um projeto de serviço. Ao definir a restrição compute.restrictSharedVpcHostProjects, você especifica uma lista de permissões ou negação de projetos host das seguintes maneiras:

  • Especifique um projeto no seguinte formato:
    • projects/PROJECT_ID
  • Especifique um projeto, uma pasta ou uma organização. A restrição se aplica a todos os projetos no recurso especificado na hierarquia de recursos. Use o seguinte formato:
      .
    • under:organizations/ORGANIZATION_ID
    • under:folders/FOLDER_ID

Para ver instruções de exemplo sobre como usar essa restrição, consulte Configurar restrições de lista com políticas da organização.

Restringir as sub-redes de VPC compartilhadas

Esta restrição de lista define o conjunto de sub-redes VPC compartilhadas que pode ser usado por recursos qualificados. Esta restrição não se aplica a recursos dentro do mesmo projeto.

  • Nome: restringir sub-redes VPC compartilhadas
  • ID: constraints/compute.restrictSharedVpcSubnetworks

Por padrão, os recursos qualificados podem usar qualquer sub-rede VPC compartilhada. Ao definir a restrição de compute.restrictSharedVpcSubnetworks, você especifica uma lista restrita de sub-redes das seguintes maneiras:

  • Especifique uma sub-rede no seguinte formato:
    • projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME.
  • Especifique um projeto, uma pasta ou uma organização. A restrição se aplica a todas as sub-redes no recurso especificado na hierarquia de recursos. Use o seguinte formato:
      .
    • under:organizations/ORGANIZATION_ID
    • under:folders/FOLDER_ID
    • under:projects/PROJECT_ID

Para ver instruções de exemplo sobre como usar essa restrição, consulte Configurar restrições de lista com políticas da organização.

Restringir serviços de back-end entre projetos

Use essa restrição para limitar os serviços de back-end que um mapa de URL pode referenciar. Essa restrição não se aplica a serviços de back-end no mesmo projeto que o mapa de URLs.

  • Nome: restrinja os serviços de back-end entre projetos
  • ID: constraints/compute.restrictCrossProjectServices

Por padrão, os mapas de URL em todos os projetos de serviço ou host podem referenciar serviços de back-end compatíveis de outros projetos de serviço ou do projeto host na mesma implantação de VPC compartilhada, desde que o usuário que realiza a ação tenha a permissão compute.backendServices.use. Ao definir a restrição restrictCrossProjectServices, você especifica uma lista de permissões ou de proibições dos serviços de back-end das seguintes maneiras:

  • Especifique serviços de back-end no seguinte formato:
    • projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME
  • Especifique um projeto, uma pasta ou uma organização. A restrição se aplica a todos os serviços de back-end no recurso especificado na hierarquia de recursos. Use o seguinte formato:
    • under:organizations/ORGANIZATION_ID
    • under:folders/FOLDER_ID
    • under:projects/PROJECT_ID

Depois de configurar uma política da organização com essa restrição, ela entrará em vigor na próxima vez que você usar o comando gcloud compute url-maps para anexar um serviço de back-end a um mapa de URL. A restrição não afeta retroativamente as referências existentes a nenhum serviço de back-end entre projetos.

Para ver instruções de exemplo sobre como usar essa restrição, consulte Configurar restrições de lista com políticas da organização.

Restringir a remoção da garantia compartilhada do projeto VPC

Essa restrição booleana restringe o conjunto de usuários que podem remover uma garantia do projeto host da VPC compartilhada sem permissão no nível da organização quando essa restrição já está definida como True.

  • Nome: restringir a remoção da garantia compartilhada do projeto VPC
  • ID: constraints/compute.restrictXpnProjectLienRemoval

Por padrão, qualquer usuário com a permissão para atualizar garantias pode remover uma garantia compartilhada do projeto host da VPC. A aplicação dessa restrição exige que a permissão seja concedida no nível da organização.

Para ver instruções de exemplo sobre como usar essa restrição, consulte Configurar restrições booleanas com políticas da organização.

Configurar restrições booleanas com políticas da organização

Console

Para definir uma política da organização no console, siga estas etapas:

  1. No Console do Google Cloud, acesse a página Políticas da organização.

    Acessar as políticas da organização

  2. No campo Filtro, pesquise a restrição por Nome ou ID.
  3. Clique no nome da restrição.
  4. Clique em Editar para alterar a restrição.
  5. Na página Editar, selecione Personalizar.
  6. Em Aplicação, selecione uma opção para aplicação:
    • Para ativar a aplicação dessa restrição, selecione Ativado.
    • Para desativar a aplicação dessa restrição, selecione Desativado.
  7. Depois de fazer alterações, clique em Salvar para aplicar as configurações de restrição.

Veja instruções detalhadas sobre como personalizar políticas da organização usando o Console do Google Cloud em Como personalizar políticas para restrições booleanas.

gcloud

Para ativar a aplicação de uma restrição booleana para uma política da organização, use o comando gcloud resource-manager org-policies enable-enforce da seguinte maneira.

Para ativar a restrição da remoção da garantia do projeto de VPC compartilhada:

gcloud resource-manager org-policies enable-enforce \
    --organization ORGANIZATION_ID \
    constraints/compute.restrictXpnProjectLienRemoval

Para desativar o balanceamento de carga global:

gcloud resource-manager org-policies enable-enforce \
    --organization ORGANIZATION_ID \
    constraints/compute.disableGlobalLoadBalancing

Para ver instruções detalhadas sobre como trabalhar com restrições booleanas em gcloud, consulte Como usar restrições.

Configurar restrições de lista com políticas da organização

Console

Para definir uma política da organização no console, siga estas etapas:

  1. No Console do Google Cloud, acesse a página Políticas da organização.

    Acessar as políticas da organização

  2. No campo Filtro, pesquise a restrição por Nome ou ID. Por exemplo, para restringir projetos host da VPC compartilhada, pesquise o ID: constraints/compute.restrictSharedVpcHostProjects.
  3. Clique no nome da restrição.
  4. Clique em Editar para alterar a restrição.
  5. Para criar uma política personalizada, selecione Personalizar e especifique a lista de permissões ou a lista de bloqueio de recursos. Veja instruções mais detalhadas sobre a personalização de políticas da organização usando o Console do Google Cloud em Como personalizar políticas para restrições de lista.
  6. Depois de fazer alterações, clique em Salvar para aplicar as configurações de restrição.

gcloud

Nesta seção, você verá alguns exemplos de configuração para mostrar como criar e definir um arquivo de política da organização com restrição de lista. Para instruções mais detalhadas sobre como trabalhar com restrições de lista e políticas da organização em gcloud, consulte Como usar restrições.

  1. Crie o arquivo de política. Use as seguintes amostras de configuração JSON para criar seu próprio arquivo de política com base nos seus requisitos.

    • Restringir tipos de balanceadores de carga

      • Permitir apenas um subconjunto de balanceadores de carga

        {
        "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
        "listPolicy": {
          "allowedValues": [
            "INTERNAL_TCP_UDP",
            "INTERNAL_HTTP_HTTPS",
            "EXTERNAL_NETWORK_TCP_UDP",
            "EXTERNAL_TCP_PROXY",
            "EXTERNAL_SSL_PROXY",
            "EXTERNAL_HTTP_HTTPS"
          ]
        }
        }
        
      • Negar todos os balanceadores de carga externos

        {
        "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
        "listPolicy": {
          "deniedValues": [
            "in:EXTERNAL"
          ]
        }
        }
        
      • Negar todos os balanceadores de carga

        {
        "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
        "listPolicy": {
          "allValues": "DENY"
        }
        }
        
    • Restringir tipos de encaminhamento de protocolo

      • Negar o encaminhamento de todos os protocolos

        {
        "constraint": "constraints/compute.restrictProtocolForwardingCreationForTypes",
        "listPolicy": {
          "allValues": "DENY"
        }
        }
        
      • Permitir apenas o encaminhamento de protocolo interno

        {
        "constraint": "constraints/compute.restrictProtocolForwardingCreationForTypes",
        "listPolicy": {
          "deniedValues": [
            "EXTERNAL"
          ]
        }
        }
        
    • Restringir configurações de VPC compartilhada

      • Restringir projetos de host de VPC compartilhada

        {
        "constraint": "constraints/compute.restrictSharedVpcHostProjects",
        "listPolicy": {
          "allowedValues": [
            "under:folders/FOLDER_ID",
            "under:projects/PROJECT_ID"
          ]
        }
        }
        
      • Restringir as sub-redes de VPC compartilhadas

        {
        "constraint": "constraints/compute.restrictSharedVpcSubnetworks",
        "listPolicy": {
          "deniedValues": [
            "under:organizations/ORGANIZATION_ID",
            "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME"
          ]
        }
        }
        
      • Restringir os serviços de back-end da VPC compartilhada

        {
        "constraint": "constraints/compute.restrictCrossProjectServices",
        "listPolicy": {
          "allowedValues": [
            "under:folders/FOLDER_ID",
            "under:projects/PROJECT_ID",
            "projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE_NAME"
          ]
        }
        }
        
  2. Aplique a restrição a um recurso: uma organização, pasta ou projeto.

    Para organizações, execute o seguinte comando:

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --organization=ORGANIZATION_ID
    

    Para pastas, execute o seguinte comando:

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --folder=FOLDER_ID
    

    Para projetos, execute o seguinte comando:

    gcloud resource-manager org-policies set-policy POLICY_FILE \
        --project=PROJECT_ID
    

    Substitua:

A seguir