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:
|
| Produtos aplicáveis |
|
| Caminho | constraints/compute.vmCanIpForward |
| Operador | = |
| Valor |
|
| Tipo | Lista |
| Controles relacionados do NIST-800-53 |
|
| Controles relacionados ao perfil da CRI |
|
| 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 |
|
| Caminho | constraints/compute.disableNestedVirtualization |
| Operador | Is |
| Valor |
|
| Tipo | Booleano |
| Controles relacionados do NIST-800-53 |
|
| Controles relacionados ao perfil da CRI |
|
| 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 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 |
|
| Caminho | constraints/compute.vmExternalIpAccess |
| Operador | = |
| Valor |
|
| Tipo | Lista |
| Controles relacionados do NIST-800-53 |
|
| Controles relacionados ao perfil da CRI |
|
| 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 |
| Produtos aplicáveis |
|
| Caminho | compute.vmExternalIpAccess |
| Operador | = |
| Valor |
|
| Tipo | Lista |
| Controles relacionados do NIST-800-53 |
|
| Controles relacionados ao perfil da CRI |
|
| 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 |
| Produtos aplicáveis |
|
| Caminho | constraints/cloudfunctions.requireVPCConnector |
| Operador | = |
| Valor |
|
| Tipo | Booleano |
| Controles relacionados do NIST-800-53 |
|
| Controles relacionados ao perfil da CRI |
|
| 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:
|
| Produtos aplicáveis |
|
| Controles relacionados do NIST-800-53 |
|
| Controles relacionados ao perfil da CRI |
|
| 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:
Em que:
|
| Produtos aplicáveis |
|
| Controles relacionados do NIST-800-53 |
|
| Controles relacionados ao perfil da CRI |
|
| 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 |
|
| Controles relacionados do NIST-800-53 |
|
| Controles relacionados ao perfil da CRI |
|
| 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 |
|
| Controles relacionados do NIST-800-53 |
|
| Controles relacionados ao perfil da CRI |
|
| 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 |
|
| Controles relacionados do NIST-800-53 |
|
| 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 |
|
| Controles relacionados do NIST-800-53 |
|
| Controles relacionados ao perfil da CRI |
|
| 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 |
|
| Controles relacionados do NIST-800-53 |
|
| 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 |
|
| Controles relacionados do NIST-800-53 |
|
| Controles relacionados ao perfil da CRI |
|
| 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 |
|
| Controles relacionados do NIST-800-53 |
|
| Controles relacionados ao perfil da CRI |
|
| 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 |
|
| Controles relacionados do NIST-800-53 |
|
| Controles relacionados ao perfil da CRI |
|
| 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 |
|
| Controles relacionados do NIST-800-53 |
|
| 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 |
|
| Controles relacionados do NIST-800-53 |
|
| 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:
|
| Produtos aplicáveis |
|
| Controles relacionados do NIST-800-53 |
|
| 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 |
|
| Controles relacionados do NIST-800-53 |
|
| 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 |
|
| Controles relacionados do NIST-800-53 |
|
| 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 |
|
| Controles relacionados do NIST-800-53 |
|
| 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 |
|
| Caminho | constraints/binaryauthorization.requireBinauthz |
| Operador | == |
| Valor |
|
| Controles relacionados do NIST-800-53 |
|
| Controles relacionados ao perfil da CRI |
|
| Informações relacionadas |
A seguir
Consulte os controles de gerenciamento de dados.
Confira mais práticas recomendadas e diretrizes de segurança doGoogle Cloud .