Controles de infraestrutura

Este documento inclui as práticas recomendadas e as diretrizes para serviços do Google Cloud, como Compute Engine, Google Kubernetes Engine (GKE), Pub/Sub, Dataflow e funções do Cloud Run ao executar cargas de trabalho noGoogle Cloud.

Controles de computação

Esses controles se aplicam aos serviços de computação.

Definir instâncias de VM que podem ativar o encaminhamento de IP

ID de controle do Google VPC-CO-6.3
Implementação Obrigatório
Descrição
A restrição compute.vmCanIpForward define as instâncias de VM que podem ativar o encaminhamento de IP. Por padrão, qualquer VM pode ativar o encaminhamento de IP em qualquer rede virtual. Especifique as instâncias de VM usando um dos seguintes formatos:
  • under:organizations/ORGANIZATION_ID
  • under:folders/FOLDER_ID
  • under:projects/PROJECT_ID
  • projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME.
Essa restrição não é retroativa.
Produtos aplicáveis
  • Serviço de política da organização
  • Nuvem privada virtual (VPC)
  • Compute Engine
Caminho constraints/compute.vmCanIpForward
Operador =
Valor
  • Your list of VM instances that can enable IP forwarding.
Tipo Lista
Controles relacionados do NIST-800-53
  • SC-7
  • SC-8
Controles relacionados ao perfil da CRI
  • PR.AC-5.1
  • PR.AC-5.2
  • PR.DS-2.1
  • PR.DS-2.2
  • PR.DS-5.1
  • PR.PT-4.1
  • DE.CM-1.1
  • DE.CM-1.2
  • DE.CM-1.3
  • DE.CM-1.4
Informações relacionadas

Desativar a virtualização aninhada da VM

ID de controle do Google VPC-CO-6.6
Implementação Obrigatório
Descrição
A restrição booleana compute.disableNestedVirtualization desativa a virtualização aninhada acelerada por hardware para VMs do Compute Engine.
Produtos aplicáveis
  • Serviço de política da organização
  • Nuvem privada virtual (VPC)
  • Compute Engine
Caminho constraints/compute.disableNestedVirtualization
Operador Is
Valor
  • True
Tipo Booleano
Controles relacionados do NIST-800-53
  • SC-7
  • SC-8
Controles relacionados ao perfil da CRI
  • PR.AC-5.1
  • PR.AC-5.2
  • PR.DS-2.1
  • PR.DS-2.2
  • PR.DS-5.1
  • PR.PT-4.1
  • DE.CM-1.1
  • DE.CM-1.2
  • DE.CM-1.3
  • DE.CM-1.4
Informações relacionadas

Restringir endereços IP externo em VMs

ID de controle do Google VPC-CO-6.2
Implementação Obrigatório
Descrição

A menos que seja necessário, evite a criação de instâncias do Compute Engine com endereços IP públicos. A restrição de lista compute.vmExternalIpAccess define o conjunto de instâncias de VM do Compute Engine que podem ter endereços IP externo.

Impeça que as instâncias do Compute Engine tenham endereços IP externo para reduzir drasticamente a exposição delas à Internet. Qualquer instância com um endereço IP externo é imediatamente detectável e se torna um alvo direto para verificações automatizadas, ataques de força bruta e tentativas de exploração de vulnerabilidades. Em vez disso, exija que as instâncias usem endereços IP particulares e gerencie o acesso por caminhos controlados, autenticados e registrados, como o túnel do Identity-Aware Proxy (IAP) ou um Bastion Host.

Adotar essa postura de negação por padrão é uma prática recomendada de segurança fundamental que ajuda a minimizar a superfície de ataque e impõe uma abordagem de confiança zero à sua rede. Essa restrição não é retroativa.

Produtos aplicáveis
  • Serviço de política da organização
  • Nuvem privada virtual (VPC)
  • Compute Engine
Caminho constraints/compute.vmExternalIpAccess
Operador =
Valor
  • The list of VM instances in your organization that can have external IP addresses.
Tipo Lista
Controles relacionados do NIST-800-53
  • SC-7
  • SC-8
Controles relacionados ao perfil da CRI
  • PR.AC-5.1
  • PR.AC-5.2
  • PR.DS-2.1
  • PR.DS-2.2
  • PR.DS-5.1
  • PR.PT-4.1
  • DE.CM-1.1
  • DE.CM-1.2
  • DE.CM-1.3
  • DE.CM-1.4
Informações relacionadas

Definir endereços IP externo permitidos para instâncias de VM

ID de controle do Google CBD-CO-6.3
Implementação Obrigatório
Descrição

Com a restrição de lista compute.vmExternalIpAccess, é possível restringir o acesso externo às máquinas virtuais não atribuindo endereços IP externo. Configure essa restrição de lista para negar todos os endereços IP externo às máquinas virtuais.

Produtos aplicáveis
  • Serviço de política da organização
  • Compute Engine
Caminho compute.vmExternalIpAccess
Operador =
Valor
  • Deny All
Tipo Lista
Controles relacionados do NIST-800-53
  • AC-3
  • AC-12
  • AC-17
  • AC-20
Controles relacionados ao perfil da CRI
  • PR.AC-3.1
  • PR.AC-3.2
  • PR.AC-4.1
  • PR.AC-4.2
  • PR.AC-4.3
  • PR.AC-6.1
  • PR.AC-7.1
  • PR.AC-7.2
  • PR.PT-3.1
  • PR-PT-4.1
Informações relacionadas

Exigir conector de VPC para funções do Cloud Run

ID de controle do Google CF-CO-4.4
Implementação Obrigatório
Descrição

A restrição booleana cloudfunctions.requireVPCConnector exige que os administradores especifiquem um conector de acesso VPC sem servidor ao implantar uma função do Cloud Run. Quando aplicada, as funções precisam especificar um conector.

Produtos aplicáveis
  • Serviço de política da organização
  • Cloud Run functions
Caminho constraints/cloudfunctions.requireVPCConnector
Operador =
Valor
  • True
Tipo Booleano
Controles relacionados do NIST-800-53
  • SC-7
  • SC-8
Controles relacionados ao perfil da CRI
  • PR.AC-5.1
  • PR.AC-5.2
  • PR.DS-2.1
  • PR.DS-2.2
  • PR.DS-5.1
  • PR.PT-4.1
  • DE.CM-1.1
  • DE.CM-1.2
  • DE.CM-1.3
  • DE.CM-1.4
Informações relacionadas

Configurar políticas de armazenamento de mensagens

ID de controle do Google PS-CO-4.1
Implementação Opcional
Descrição
Se você publicar mensagens no endpoint global do Pub/Sub, o serviço vai armazenar automaticamente as mensagens na região Google Cloud mais próxima. Para controlar em que regiões as mensagens são armazenadas, configure uma política de armazenamento de mensagens no seu tópico. Use uma das seguintes maneiras para configurar políticas de armazenamento de mensagens para tópicos:
  • Defina uma política de armazenamento de mensagens usando a restrição de política da organização de restrição de local do recurso (gcp.resourceLocations).
  • Configure uma política de armazenamento de mensagens ao criar um tópico. Exemplo:

    gcloud pubsub topics create TOPIC_ID \--message-storage-policy-allowed-regions=REGION1, REGION2

Produtos aplicáveis
  • Serviço de política da organização
  • Pub/Sub
Controles relacionados do NIST-800-53
  • AC-3
  • AC-17
  • AC-20
Controles relacionados ao perfil da CRI
  • PR.AC-3.1
  • PR.AC-3.2
  • PR.AC-4.1
  • PR.AC-4.2
  • PR.AC-4.3
  • PR.AC-6.1
  • PR.PT-3.1
  • PR.PT-4.1
Informações relacionadas

Desativar endereços IP externo para jobs do Dataflow

ID de controle do Google DF-CO-6.1
Implementação Opcional
Descrição

Desative os endereços IP externo para tarefas administrativas e de monitoramento relacionadas a jobs do Dataflow. Em vez disso, configure o acesso às VMs de worker do Dataflow usando SSH.

Ative o Acesso privado do Google e especifique uma das seguintes opções no seu job do Dataflow:

  • --usePublicIps=false e --network=NETWORK-NAME
  • --subnetwork=SUBNETWORK-NAME

Em que:

  • NETWORK-NAME: o nome da sua rede do Compute Engine.
  • SUBNETWORK-NAME: o nome da sub-rede do Compute Engine.
Produtos aplicáveis
  • Compute Engine
  • Dataflow
Controles relacionados do NIST-800-53
  • SC-7
  • SC-8
Controles relacionados ao perfil da CRI
  • PR.AC-5.1
  • PR.AC-5.2
  • PR.DS-2.1
  • PR.DS-2.2
  • PR.DS-5.1
  • PR.PT-4.1
  • DE.CM-1.1
  • DE.CM-1.2
  • DE.CM-1.3
  • DE.CM-1.4
Informações relacionadas

Usar tags de rede para regras de firewall

ID de controle do Google DF-CO-6.2
Implementação Opcional
Descrição

As tags de rede são atributos de texto anexados às VMs do Compute Engine, como as VMs de worker do Dataflow. Com as tags de rede, é possível tornar regras de firewall de rede VPC e algumas rotas estáticas personalizadas aplicáveis a instâncias de VM específicas. O Dataflow é compatível com a adição de tags de rede a todas as VMs de worker que executam um job específico do Dataflow.

Produtos aplicáveis
  • Compute Engine
  • Dataflow
Controles relacionados do NIST-800-53
  • SC-7
  • SC-8
Controles relacionados ao perfil da CRI
  • PR.AC-5.1
  • PR.AC-5.2
  • PR.DS-2.1
  • PR.DS-2.2
  • PR.DS-5.1
  • PR.PT-4.1
  • DE.CM-1.1
  • DE.CM-1.2
  • DE.CM-1.3
  • DE.CM-1.4
Informações relacionadas

Controles de contêiner

Esses controles se aplicam a contêineres no GKE.

Restringir o acesso ao plano de controle

ID de controle do Google GKE-CO-1.1
Implementação Obrigatório
Descrição

Por padrão, os nós e o plano de controle do cluster do Google Kubernetes Engine (GKE) têm endereços de Internet roteáveis que podem ser acessados de qualquer endereço IP. Restrinja o acesso à rede ao plano de controle usando um endpoint baseado em DNS e criando clusters particulares. O plano de controle é o centro de gerenciamento de um cluster do Kubernetes, e expô-lo à Internet o torna um alvo principal para invasores. Essa configuração torna o plano de controle particular e o remove da Internet.

Restringir o acesso ao plano de controle ajuda a garantir que apenas dispositivos de confiança na rede particular da organização possam gerenciar o cluster, reduzindo drasticamente o risco de um ataque externo.

Produtos aplicáveis
  • GKE
Controles relacionados do NIST-800-53
  • SC-7
Controles relacionados ao perfil da CRI
  • PR.AC-3.1
Informações relacionadas

Usar regras de firewall de privilégio mínimo

ID de controle do Google GKE-CO-1.2
Implementação Obrigatório
Descrição

Ao criar regras de firewall, use o princípio de privilégio mínimo para fornecer acesso apenas à finalidade necessária. Verifique, quando possível, se as regras de firewall não entram em conflito com as regras padrão do GKE.

Produtos aplicáveis
  • GKE
Controles relacionados do NIST-800-53
  • AC-3
  • AC-4
  • AC-17
  • SC-7
Informações relacionadas

Usar os Grupos do Google para RBAC

ID de controle do Google GKE-CO-1.3
Implementação Obrigatório
Descrição

Use os Grupos do Google para controle de acesso baseado em papéis (RBAC), que também permite a integração com suas práticas de gerenciamento de contas de usuário atuais, como revogar o acesso quando alguém sai da sua organização. Os Grupos do Google para RBAC ajudam a gerenciar o acesso ao cluster de maneira eficiente usando o Identity and Access Management (IAM) e os Grupos do Google, o que é adequado para a maioria das organizações que usam os Grupos do Google.

Produtos aplicáveis
  • Google Kubernetes Engine (GKE)
Controles relacionados do NIST-800-53
  • AC-2
Controles relacionados ao perfil da CRI
  • PR.AC-1.1
Informações relacionadas

Ativar os nós protegidos do GKE

ID de controle do Google GKE-CO-1.4
Implementação Obrigatório
Descrição

Ative os nós protegidos do GKE para verificação criptográfica dos nós no cluster. Os nós protegidos do GKE oferecem integridade e identidade de nó forte e verificável. Ative os nós protegidos do GKE ao criar ou atualizar clusters. Sempre que possível, use Nós protegidos do GKE com inicialização segura para autenticar também os componentes de inicialização das VMs de nó durante o processo de inicialização. Não use a inicialização segura se você precisar de módulos de kernel não assinados de terceiros.

Os nós protegidos do GKE são ativados por padrão quando você cria um cluster.

Produtos aplicáveis
  • GKE
Controles relacionados do NIST-800-53
  • AC-3
  • AC-4
  • AC-17
  • SC-7
Informações relacionadas

Usar o Container-Optimized OS com o ambiente de execução do containerd

ID de controle do Google GKE-CO-1.5
Implementação Obrigatório
Descrição

Use o Container-Optimized OS para implementar um sistema operacional de contêiner reforçado e gerenciado. Os sistemas operacionais de uso geral incluem muitos programas extras que não são necessários para executar contêineres e, portanto, criam um alvo maior e desnecessário para invasores. O Container-Optimized OS é um sistema operacional minimalista e bloqueado que reduz significativamente essa superfície de ataque, incluindo apenas o necessário. Como um SO gerenciado, o Container-Optimized OS também tem patches de segurança aplicados automaticamente pelo Google, o que ajuda a garantir que as vulnerabilidades críticas sejam corrigidas e reduz sua carga de trabalho operacional.

Uma imagem que inclui o Container-Optimized OS com containerd (cos_containerd) tem o containerd como o ambiente de execução principal do contêiner diretamente integrado ao Kubernetes. O containerd é o componente principal de execução do Docker e foi projetado para oferecer funcionalidade básica de contêiner para a interface de ambiente de execução de contêineres (CRI, na sigla em inglês) do Kubernetes. Ele é significativamente menos complexo que o daemon Docker completo e, por isso, tem uma superfície de ataque menor.

Produtos aplicáveis
  • Container-Optimized OS
Controles relacionados do NIST-800-53
  • CM-7
  • SC-7
  • SC-38
  • SI-2
  • SI-7
Controles relacionados ao perfil da CRI
  • PR.PT-3.1
Informações relacionadas

Usar a federação de identidade da carga de trabalho para GKE

ID de controle do Google GKE-CO-1.6
Implementação Obrigatório
Descrição

Use a federação de identidade da carga de trabalho para GKE para autenticar com segurança as APIs do Google Cloud em cargas de trabalho do Google Kubernetes Engine (GKE). A federação de identidade da carga de trabalho para GKE oferece uma alternativa mais simples e segura ao uso de chaves de conta de serviço.

Produtos aplicáveis
  • GKE
Controles relacionados do NIST-800-53
  • IA-2
Controles relacionados ao perfil da CRI
  • PR.AC-1.1
Informações relacionadas

Ativar o GKE Sandbox

ID de controle do Google GKE-CO-1.7
Implementação Obrigatório
Descrição

Use o GKE Sandbox para fornecer uma camada extra de segurança e evitar que códigos não confiáveis afetem o kernel do host nos nós do cluster do Google Kubernetes Engine (GKE). O GKE Sandbox aumenta o isolamento de cargas de trabalho não confiáveis ou sensíveis, fornecendo uma camada extra de proteção contra ataques de escape de contêiner.

Produtos aplicáveis
  • GKE
Controles relacionados do NIST-800-53
  • SC-39
Controles relacionados ao perfil da CRI
  • PR.DS-1.1
Informações relacionadas

Desativar a porta somente leitura do kubelet

ID de controle do Google GKE-CO-1.9
Implementação Obrigatório
Descrição

Desative a porta somente leitura do kubelet 10255 e use a porta 10250, que é mais segura. O Kubernetes não realiza nenhuma verificação de autenticação ou autorização nessa porta. O kubelet disponibiliza os mesmos endpoints na porta 10250 mais segura e autenticada.

Só é possível desativar a porta somente leitura do kubelet não segura no GKE versão 1.26.4-gke.500 ou mais recente.

Produtos aplicáveis
  • GKE
Controles relacionados do NIST-800-53
  • AC-3
  • SC-7
Informações relacionadas

Usar namespace e RBAC para restringir o acesso aos recursos do cluster

ID de controle do Google GKE-CO-1.10
Implementação Obrigatório
Descrição

Crie namespaces ou clusters separados para cada equipe e ambiente para implementar o acesso de privilégio mínimo ao Kubernetes. Atribua centros de custo e rótulos apropriados a cada namespace para fins de responsabilização e estorno. Forneça aos desenvolvedores o nível de acesso ao namespace necessário para implantar e gerenciar o aplicativo, especialmente na produção. Mapeie as tarefas que os usuários precisam executar no cluster e defina as permissões necessárias para executar cada tarefa.

Atribua os papéis apropriados do Identity and Access Management (IAM) para o Google Kubernetes Engine (GKE) a grupos e usuários para conceder permissões no nível do projeto e use o RBAC para dar permissões nos níveis de cluster e de namespace.

Produtos aplicáveis
  • GKE
  • IAM
Controles relacionados do NIST-800-53
  • AC-3
  • AC-4
  • AC-6
Informações relacionadas

Restringir o tráfego entre pods

ID de controle do Google GKE-CO-1.11
Implementação Obrigatório
Descrição

Por padrão, todos os pods em um cluster podem se comunicar entre si. Controle a comunicação entre pods conforme necessário para suas cargas de trabalho. Restringir o acesso de rede aos serviços dificulta muito a migração lateral dos invasores dentro de um cluster, além de dar aos serviços formas de se proteger contra negações de serviço acidentais ou deliberadas.

Há duas maneiras de controlar o tráfego:

  • Use o Cloud Service Mesh ou o Istio para balanceamento de carga, autorização de serviço, limitação, cota, métricas e muito mais.
  • Use políticas de rede do Kubernetes. Escolha essa opção se estiver procurando a funcionalidade básica de controle de acesso exposta pelo Kubernetes.
Produtos aplicáveis
  • GKE
Controles relacionados do NIST-800-53
  • AC-3
  • AC-4
  • SC-7
Informações relacionadas

Use controladores de admissão para aplicar políticas

ID de controle do Google GKE-CO-1.12
Implementação Obrigatório
Descrição

Os controladores de admissão são plug-ins que regem e impõem o modo como o cluster é usado. Ative-os para usar alguns dos recursos de segurança mais avançados do Kubernetes, porque eles são uma parte importante da abordagem de defesa em profundidade para reforço da proteção do seu cluster. Por padrão, os pods no Kubernetes podem operar com recursos além do que eles exigem. Use controles de admissão para restringir os recursos do pod apenas àqueles necessários para essa carga de trabalho.

O GKE oferece suporte a vários controles para restringir a execução de pods com recursos explicitamente concedidos. Por exemplo, o Controlador de Políticas está disponível para clusters em frotas. O Kubernetes também tem o controlador de admissão do PodSecurity integrado, que permite aplicar os padrões de segurança do pod em clusters individuais. O Controlador de Políticas é um recurso do GKE que permite aplicar e validar a segurança em clusters do GKE em escala usando políticas declarativas.

Produtos aplicáveis
  • GKE
Controles relacionados do NIST-800-53
  • CM-2
  • CM-3
  • CM-6
  • CM-7
Informações relacionadas

Restringir a capacidade de automodificação das cargas de trabalho

ID de controle do Google GKE-CO-1.13
Implementação Obrigatório
Descrição

Algumas cargas de trabalho do Kubernetes, principalmente as do sistema, têm permissão para se automodificar. Por exemplo, algumas cargas de trabalho escalonam automaticamente na vertical. Embora seja conveniente, a automodificação pode permitir que um invasor que já tenha comprometido um nó escalone ainda mais no cluster. Por exemplo, um invasor pode fazer com que uma carga de trabalho do nó se automodifique para ser executada como uma conta de serviço com mais privilégios que existe no mesmo namespace.

Não conceda às cargas de trabalho permissão para se modificar por padrão. Quando a automodificação for necessária, limite as permissões aplicando restrições do Gatekeeper ou do Controlador de Políticas, como NoUpdateServiceAccount da biblioteca de código aberto do Gatekeeper, que fornece várias políticas de segurança úteis.

Ao implantar políticas, permita que os controladores que gerenciam o ciclo de vida do cluster ignorem as políticas. Os controladores precisam fazer mudanças no cluster, como aplicar upgrades. Por exemplo, se você implantar a política "NoUpdateServiceAccount" no GKE, defina os seguintes parâmetros na restrição:

parameters: allowedGroups: - system:masters allowedUsers: - system:addon-manager
Produtos aplicáveis
  • GKE
Controles relacionados do NIST-800-53
  • AC-3
  • CM-3
  • SI-7
Informações relacionadas

Monitorar as configurações do cluster

ID de controle do Google GKE-CO-1.14
Implementação Obrigatório
Descrição

Audite as configurações do cluster para verificar se elas são diferentes das que você definiu. As configurações abordadas nestas práticas recomendadas, bem como outros erros de configuração comuns, podem ser verificadas automaticamente usando o Security Command Center.

Produtos aplicáveis
  • GKE
  • Security Command Center
Controles relacionados do NIST-800-53
  • SI-4
  • SI-5
  • RA-5
Informações relacionadas

Aplicar a autorização binária

ID de controle do Google BIN-CO-1.1
Implementação Obrigatório
Descrição

Use a autorização binária para garantir que imagens confiáveis sejam implantadas no Google Kubernetes Engine (GKE) e no Cloud Run. A autorização binária ajuda a garantir que apenas imagens de contêiner verificadas e confiáveis possam ser implantadas nos seus clusters, reforçando a segurança da cadeia de suprimentos de software.

Produtos aplicáveis
  • GKE
  • Autorização binária
  • Cloud Run
Caminho constraints/binaryauthorization.requireBinauthz
Operador ==
Valor
  • True
Controles relacionados do NIST-800-53
  • SI-7
Controles relacionados ao perfil da CRI
  • PR.DS-6.1
Informações relacionadas

A seguir