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

O serviço de políticas da organização dá-lhe um controlo centralizado e programático sobre os recursos da sua organização. Enquanto administrador de políticas da organização, pode definir uma política da organização, que é um conjunto de restrições denominadas limitações que se aplicam a Trusted Cloud recursos e descendentes desses recursos na Trusted Cloud by S3NS hierarquia de recursos.

Esta página fornece informações suplementares acerca das restrições da política da organização que se aplicam ao Cloud Load Balancing. Use restrições da política da organização para aplicar definições a um projeto, uma pasta ou uma organização inteiros.

As políticas da organização aplicam-se apenas a novos recursos. As restrições não são aplicadas retroativamente. Se tiver recursos de balanceamento de carga preexistentes que estejam em violação de uma nova política de organização, tem de resolver essas violações manualmente.

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

Restrinja os 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 da política da organização:

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

Quando define a restrição compute.restrictLoadBalancerCreationForTypes, especifica uma lista de autorizações ou uma lista de proibições dos tipos de Cloud Load Balancing. A lista de valores permitidos ou recusados só pode incluir valores da seguinte lista:

  • Balanceadores de carga de aplicações

    • EXTERNAL_MANAGED_HTTP_HTTPS para o balanceador de carga de aplicações externo regional
    • INTERNAL_HTTP_HTTPS para o balanceador de carga de aplicações interno regional
  • Balanceadores de carga de rede de proxy

    • REGIONAL_EXTERNAL_MANAGED_TCP_PROXY para o balanceador de carga de rede de 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
  • Balanceadores de carga de rede de passagem

    • EXTERNAL_NETWORK_TCP_UDP para o balanceador de carga de rede de encaminhamento externo
    • INTERNAL_TCP_UDP para o balanceador de carga de rede de encaminhamento interno

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

Para ver instruções de exemplo sobre como usar esta restrição, consulte o artigo Configure restrições de listas com políticas da organização.

Depois de definir a política, esta é aplicada quando adiciona as respetivas Trusted Cloud regras de encaminhamento. A restrição não é aplicada às configurações existentes do Cloud Load Balancing.

Se tentar criar um equilibrador de carga de um tipo que viole a restrição, a tentativa falha e é gerada uma mensagem de erro. 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 definir várias restrições restrictLoadBalancerCreationForTypes em diferentes níveis de recursos, estas são aplicadas hierarquicamente. Por este motivo, recomendamos que defina o campo inheritFromParent como true, o que garante que as políticas em camadas superiores também são consideradas.

Mensagens de erro do GKE

Se estiver a usar o Google Kubernetes Engine (GKE) e alguém na sua organização tiver criado uma política da organização que limita os tipos de equilibradores de carga que podem ser criados, é apresentado um erro semelhante ao seguinte:

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

Consoante a política, isto pode limitar a sua capacidade de criar novos recursos de balanceamento de carga, como Serviços, Entradas ou Gateways. Contacte os administradores das políticas da sua organização para ajudar a compreender que restrições estão em vigor.

Pode ver as mensagens de erro do GKE executando os seguintes comandos:

kubectl get events -w
kubectl describe RESOURCE_KIND NAME

Substitua o seguinte:

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

Restrinja os tipos de implementações de encaminhamento de protocolos

Use uma política da organização para restringir os tipos de implementações de encaminhamento de protocolos (internas ou externas) que podem ser criadas na sua organização. Defina a seguinte restrição da política da organização:

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

Para configurar a restrição compute.restrictProtocolForwardingCreationForTypes, especifica uma lista de permissões ou uma lista de negações da implementação de encaminhamento do tipo de protocolo a permitir ou negar. A lista de valores permitidos ou recusados só pode incluir os seguintes valores:

  • INTERNAL
  • EXTERNAL

Por predefinição, as organizações criadas recentemente têm esta política configurada para permitir apenas o encaminhamento do protocolo INTERNAL. Ou seja, todas as regras de encaminhamento associadas a instâncias de destino estão limitadas à utilização de endereços IP internos. Se quiser usar o encaminhamento de protocolos com endereços IP externos ou proibir os utilizadores de usar o encaminhamento de protocolos com endereços IP internos, tem de atualizar esta política de organização.

Depois de atualizar a política, as alterações são aplicadas quando cria novas regras de encaminhamento associadas a instâncias de destino. A restrição não é aplicada retroativamente às configurações de encaminhamento de protocolos existentes.

Para ver instruções de exemplo sobre como usar esta restrição, consulte o artigo Configure restrições de listas com políticas da organização.

Se tentar criar uma implementação de encaminhamento de protocolos de um tipo que viole a restrição, a tentativa falha e é gerada uma mensagem de erro. 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 definir várias restrições restrictProtocolForwardingCreationForTypes em diferentes níveis de recursos e se definir o campo inheritFromParent como true, as restrições são aplicadas hierarquicamente.

Aplique restrições da VPC partilhada

Use as seguintes políticas de organização para restringir a forma como os utilizadores podem configurar implementações de VPC partilhada.

Restrinja projetos anfitriões da VPC partilhada

Esta restrição de lista permite-lhe restringir os projetos anfitriões da VPC partilhada aos quais um recurso pode ser anexado.

  • Nome: restrinja projetos anfitriões da VPC partilhada
  • ID: constraints/compute.restrictSharedVpcHostProjects

Por predefinição, um projeto pode ser anexado a qualquer projeto anfitrião na mesma organização, tornando-se, assim, um projeto de serviço. Quando define a restrição compute.restrictSharedVpcHostProjects, especifica uma lista de permissões ou uma lista de bloqueios de projetos anfitriões das seguintes formas:

  • Especifique um projeto no seguinte formato:
    • projects/PROJECT_ID
  • Especifique um projeto, uma pasta ou uma organização. A restrição aplica-se 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 esta restrição, consulte o artigo Configure restrições de listas com políticas da organização.

Restrinja as sub-redes da VPC partilhada

Esta restrição de lista define o conjunto de sub-redes da VPC partilhada que os recursos elegíveis podem usar. Esta restrição não se aplica a recursos no mesmo projeto.

  • Nome: restrinja as sub-redes da VPC partilhada
  • ID: constraints/compute.restrictSharedVpcSubnetworks

Por predefinição, os recursos elegíveis podem usar qualquer sub-rede da VPC partilhada. Quando define a restrição compute.restrictSharedVpcSubnetworks, especifica uma lista restrita de sub-redes das seguintes formas:

  • 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 aplica-se 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 esta restrição, consulte o artigo Configure restrições de listas com políticas da organização.

Restrinja os serviços de back-end e os contentores de back-end entre projetos

Pode usar esta restrição para limitar os serviços de back-end e os contentores de back-end que um mapa de URLs pode referenciar. Esta restrição não se aplica aos serviços de back-end e aos contentores de back-end no mesmo projeto que o mapa de URLs.

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

Por predefinição, um mapa de URLs num projeto pode fazer referência a serviços de back-end compatíveis e a contentores de back-end de outros projetos na mesma organização, desde que o utilizador que executa a ação tenha a autorização compute.backendServices.use, compute.regionBackendServices.use ou compute.backendBuckets.use.

Para configurar a restrição restrictCrossProjectServices, pode especificar uma lista de permissões ou uma lista de exclusões de serviços de back-end ou contentores de back-end das seguintes formas:

  • Especifique os serviços de back-end no seguinte formato:

    • projects/PROJECT_ID/regions/REGION/backendservices/BACKEND_SERVICE_NAME
    • projects/PROJECT_ID/global/backendservices/BACKEND_SERVICE_NAME
  • Especifique os buckets de back-end no seguinte formato:

    • projects/PROJECT_ID/regions/REGION/backendbuckets/BACKEND_BUCKET_NAME
    • projects/PROJECT_ID/global/backendbuckets/BACKEND_BUCKET_NAME
  • Especifique um projeto, uma pasta ou uma organização. A restrição aplica-se a todos os serviços de back-end e contentores 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 esta restrição, a restrição entra em vigor na próxima vez que usar o comando gcloud compute url-maps para anexar um serviço de back-end ou um contentor de back-end a um mapa de URLs. A restrição não afeta retroativamente as referências existentes a quaisquer serviços de back-end ou contentores de back-end entre projetos.

Esta restrição aplica-se a todos os tipos de implementação, incluindo a VPC partilhada. Para evitar conflitos, recomendamos que não use esta restrição e a restrição compute.restrictSharedVpcBackendServices descrita na secção seguinte.

Para ver instruções de exemplo sobre como usar esta restrição, consulte o artigo Configure restrições de listas com políticas da organização.

Restrinja os serviços de back-end da VPC partilhada

Pode usar esta restrição para limitar os serviços de back-end que um mapa de URLs pode referenciar em implementações de VPC partilhada que usam referências de serviços entre projetos. Esta restrição não se aplica aos serviços de back-end no mesmo projeto que o mapa de URLs.

  • Nome: restringir serviços de back-end da VPC partilhada
  • ID: constraints/compute.restrictSharedVpcBackendServices

Em alternativa, recomendamos que use a restrição compute.restrictCrossProjectServices descrita na secção anterior. A restrição compute.restrictCrossProjectServices aplica-se a todos os tipos de implementação, VPC partilhada ou não, e aplica-se a contentores de back-end e serviços de back-end.

Restrinja a remoção da restrição do projeto de VPC partilhada

Esta restrição booleana restringe o conjunto de utilizadores que podem remover uma retenção do projeto anfitrião da VPC partilhada sem autorização ao nível da organização quando esta restrição já está definida como True.

  • Nome: restrinja a remoção da restrição do projeto de VPC partilhada
  • ID: constraints/compute.restrictXpnProjectLienRemoval

Por predefinição, qualquer utilizador com a autorização para atualizar restrições pode remover uma restrição do projeto anfitrião da VPC partilhada. A aplicação desta restrição requer que a autorização seja concedida ao nível da organização.

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

Restrinja as capacidades de TLS com restrições personalizadas

Para cumprir os requisitos de conformidade e restringir determinadas capacidades de segurança da camada de transporte (TLS), pode criar a seguinte restrição da política da organização e usá-la juntamente com restrições personalizadas para recursos da política SSL:

  • Nome: política de SSL obrigatória
  • ID: constraints/compute.requireSslPolicy

Ao usar a restrição constraints/compute.requireSslPolicy juntamente com as suas próprias restrições personalizadas para campos da política de SSL, pode criar restrições adaptadas às suas implementações. Por exemplo, pode fazer o seguinte:

  • Melhore a segurança e cumpra os requisitos de conformidade restringindo a utilização de versões anteriores do TLS (como 1.0 e 1.1) e conjuntos de cifras.
  • Melhorar o desempenho reduzindo o número de negociações necessárias e melhorando a compatibilidade do equilibrador de carga com os clientes.
  • Aplicar uma restrição a um nó de recurso específico e aos respetivos filhos. Por exemplo, se negar a versão 1.0 do TLS para uma organização, esta também é negada para todas as pastas e projetos (secundários) que descendem dessa organização.

Para aplicar uma política SSL a um Application Load Balancer ou a um Network Load Balancer de proxy, tem de anexá-la ao proxy HTTPS de destino ou ao proxy SSL de destino do balanceador de carga.

Para atualizar as políticas SSL existentes, consulte o artigo atualize as políticas SSL existentes anexadas a proxies de destino.

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

Consola

Para definir uma política da organização a partir da consola, conclua os seguintes passos:

  1. Na Trusted Cloud consola, aceda à página Políticas de organização.

    Aceda às 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 editar a restrição.
  5. Na página Editar, selecione Personalizar.
  6. Em Aplicação, selecione uma opção de aplicação:
    • Para ativar a aplicação desta restrição, selecione Ativado.
    • Para desativar a aplicação desta restrição, selecione Desativado.
  7. Depois de fazer alterações, clique em Guardar para aplicar as definições de restrição.

Para obter instruções detalhadas sobre a personalização de políticas organizacionais através da consola, consulte o artigo Personalizar políticas para restrições booleanas. Trusted Cloud

gcloud

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

Para ativar a restrição da remoção da retenção do projeto de VPC partilhada:

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

Para obter instruções detalhadas sobre como trabalhar com restrições booleanas em gcloud, consulte o artigo Usar restrições.

Configure restrições de listas com políticas da organização

Consola

Para definir uma política da organização a partir da consola, conclua os seguintes passos:

  1. Na Trusted Cloud consola, aceda à página Políticas de organização.

    Aceda às políticas da organização

  2. No campo Filtro, pesquise a restrição por Nome ou ID. Por exemplo, para restringir projetos anfitriões da VPC partilhada, pesquise o ID: constraints/compute.restrictSharedVpcHostProjects.
  3. Clique no nome da restrição.
  4. Clique em Editar para editar a restrição.
  5. Para criar uma política personalizada, selecione Personalizar e especifique a lista de autorizações ou a lista de proibições de recursos. Para obter instruções mais detalhadas sobre como personalizar as políticas da organização através da Trusted Cloud consola, consulte o artigo Personalizar políticas para restrições de listas.
  6. Depois de fazer alterações, clique em Guardar para aplicar as definições de restrição.

gcloud

Esta secção fornece alguns exemplos de configuração para mostrar como criar e definir um ficheiro de política da organização com uma restrição de lista. Para obter instruções mais detalhadas sobre como trabalhar com restrições de listas e políticas organizacionais no gcloud, consulte Usar restrições.

  1. Crie o ficheiro de política. Use os seguintes exemplos de configuração JSON para criar o seu próprio ficheiro de políticas com base nos seus requisitos.

    • Restrinja os tipos de balanceadores de carga

      • Permita apenas um subconjunto de balanceadores de carga

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

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

        {
        "constraint": "constraints/compute.restrictLoadBalancerCreationForTypes",
        "listPolicy": {
          "allValues": "DENY"
        }
        }
        
    • Restrinja os tipos de encaminhamento de protocolos

      • Recuse todo o encaminhamento de protocolos

        {
        "constraint": "constraints/compute.restrictProtocolForwardingCreationForTypes",
        "listPolicy": {
          "allValues": "DENY"
        }
        }
        
      • Permita apenas o encaminhamento de protocolos internos

        {
        "constraint": "constraints/compute.restrictProtocolForwardingCreationForTypes",
        "listPolicy": {
          "deniedValues": [
            "EXTERNAL"
          ]
        }
        }
        
    • Restrinja as configurações da VPC partilhada

      • Restrinja projetos anfitriões de VPC partilhada

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

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

        {
        "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, uma pasta ou um 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 o seguinte:

Configure uma política da organização para aplicar uma política SSL a proxies HTTPS de destino e proxies SSL de destino

Consola

Para definir uma política da organização a partir da consola, conclua os seguintes passos:

  1. Na Trusted Cloud consola, aceda à página Políticas de organização.

    Aceda às 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 editar a restrição.

  5. Para criar uma política personalizada, selecione Personalizar e especifique a lista de recursos permitidos ou recusados.

  6. Depois de fazer alterações, clique em Guardar para aplicar as definições de restrição.

gcloud

Esta secção apresenta alguns exemplos de configuração que mostram como criar e definir um ficheiro de política da organização com a restrição constraints/compute.requireSslPolicy.

  • Crie um ficheiro de política para não permitir a utilização da política SSL.

    {
      "constraint": "constraints/compute.requireSslPolicy",
      "listPolicy": {
        "allValues": "DENY"
      }
    }
    
  • Crie um ficheiro de política para aplicar uma política SSL a todos os proxies HTTPS e SSL de destino no recurso especificado na hierarquia de recursos:

    {
      "constraint": "constraints/compute.requireSslPolicy",
      "listPolicy": {
        "allowedValues": [
          "under:folders/FOLDER_ID",
          "under:projects/PROJECT_ID"
        ]
      }
    }
    
  • Aplique a restrição para segmentar proxies HTTPS e SSL: uma organização, uma pasta ou um projeto.

    Para organizações, execute o seguinte comando:

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

    Para pastas, execute o seguinte comando:

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

    Para projetos, execute o seguinte comando:

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

    Substitua o seguinte:

  • Para obter a política em vigor para validar o comportamento predefinido do recurso (organização, pasta ou projeto), execute os seguintes comandos:

    Para organizações:

    gcloud resource-manager org-policies describe compute.requireSslPolicy \
        --effective \
        --organization=ORGANIZATION_ID
    

    Para pastas:

    gcloud resource-manager org-policies describe compute.requireSslPolicy \
        --effective \
        --folder=FOLDER_ID
    

    Para projetos:

    gcloud resource-manager org-policies describe compute.requireSslPolicy \
        --effective \
        --project=PROJECT_ID
    
  • Para eliminar a política do recurso (organização, pasta ou projeto), execute os seguintes comandos:

    Para organizações:

    gcloud resource-manager org-policies delete compute.requireSslPolicy \
        --organization=ORGANIZATION_ID
    

    Para pastas:

    gcloud resource-manager org-policies delete compute.requireSslPolicy \
        --folder=FOLDER_ID
    

    Para projetos:

    gcloud resource-manager org-policies delete compute.requireSslPolicy \
        --project=PROJECT_ID
    

Para configurar restrições personalizadas, consulte o artigo Use restrições personalizadas.

O que se segue?