Uma instância do Compute Engine precisa ler de um bucket do Cloud Storage e gravar em uma tabela do BigQuery. Conceda as permissões mínimas necessárias.
→Crie uma conta de serviço personalizada. Conceda a ela as funções `roles/storage.objectViewer` e `roles/bigquery.dataEditor`. Anexe esta conta de serviço à instância.
Por quê: Usar uma conta de serviço personalizada com funções específicas e predefinidas evita a natureza excessivamente permissiva da conta de serviço padrão do Compute Engine, aderindo ao princípio do menor privilégio.
Conceda a um usuário permissões para gerenciar instâncias do GCE, mas não para excluí-las.
→Crie uma função IAM personalizada. Comece com as permissões da função `roles/compute.instanceAdmin.v1` e remova a permissão `compute.instances.delete`.
Por quê: Funções personalizadas oferecem a flexibilidade de conceder um conjunto preciso de permissões quando as funções predefinidas são muito amplas ou muito restritivas para uma função de trabalho específica.
Um desenvolvedor precisa acessar via SSH uma instância do Compute Engine que não possui endereço IP externo, conforme a política de segurança.
→Conceda ao desenvolvedor a função `roles/iap.tunnelResourceAccessor`. Ele poderá então se conectar usando `gcloud compute ssh [INSTANCE_NAME] --tunnel-through-iap`.
Por quê: O encaminhamento TCP do Identity-Aware Proxy (IAP) fornece um método seguro, baseado em identidade, para acessar instâncias internas sem hosts bastion, VPNs ou IPs públicos.
Referência↗
Permitir tráfego SSH de entrada (porta 22) para VMs específicas apenas do intervalo de IP do escritório corporativo.
→Crie uma regra de firewall da VPC com `direction: INGRESS`, `action: ALLOW`, `protocol/ports: tcp:22`, `source ranges: [CIDR_IP_CORPORATIVO]`, e `target tags: [por exemplo, "allow-ssh"]`. Aplique a tag às VMs pretendidas.
Por quê: Combinar intervalos de origem e tags de destino oferece uma maneira precisa e escalável de controlar o tráfego. Isso restringe tanto *quem* pode se conectar quanto *ao quê* eles podem se conectar.
Impeça que dados de um projeto BigQuery sensível sejam copiados ou acessados de fora de um limite de rede confiável, mesmo com credenciais válidas.
→Configure os Controles de Serviço da VPC. Crie um perímetro de serviço que inclua o projeto sensível e restrinja a API do BigQuery.
Por quê: Os Controles de Serviço da VPC criam um "perímetro de dados" virtual que controla o acesso no nível da API, fornecendo uma forte defesa contra exfiltração de dados que as regras de firewall não conseguem.
Forneça a uma aplicação de terceiros acesso de leitura temporário e com limite de tempo a um objeto privado específico em um bucket do Cloud Storage.
→Gere uma URL assinada para o objeto com um curto tempo de expiração (por exemplo, 15 minutos) usando uma conta de serviço com permissões de leitura.
Por quê: URLs assinadas concedem acesso temporário por objeto sem exigir que a terceira parte tenha uma conta Google ou permissões IAM. É o método mais seguro para este caso de uso.
Um pod do GKE precisa acessar APIs do Google Cloud (por exemplo, Pub/Sub) de forma segura, sem armazenar chaves de conta de serviço como segredos do Kubernetes.
→Habilite a Workload Identity no cluster GKE. Crie uma Conta de Serviço Google (GSA) e uma Conta de Serviço Kubernetes (KSA). Vincule a KSA à GSA usando uma política IAM. Configure o pod para usar a KSA.
Por quê: Workload Identity é a maneira recomendada e sem chaves para aplicações GKE autenticarem-se aos serviços Google Cloud. Ela mapeia identidades KSA para identidades GSA, o que é mais seguro do que gerenciar e rotacionar arquivos de chave.
Referência↗
Uma política da organização exige que todos os dados em um bucket do Cloud Storage sejam criptografados usando uma chave de criptografia que a organização controla.
→Crie uma chave criptográfica no Cloud KMS. Ao criar o bucket do Cloud Storage, especifique esta chave como a Chave de Criptografia Gerenciada pelo Cliente (CMEK).
Por quê: CMEK oferece controle sobre a chave usada para criptografia, incluindo rotação e revogação, enquanto ainda aproveita a infraestrutura de criptografia gerenciada pelo Google.
Permitir que os funcionários usem suas credenciais existentes do Active Directory local para acessar recursos do Google Cloud.
→Configure o Cloud Identity para federar com o Active Directory usando SAML 2.0. Os usuários se autenticam com o AD, que então afirma sua identidade ao Google Cloud para acesso.
Por quê: A federação permite o Single Sign-On (SSO) e centraliza o gerenciamento de identidade no IdP existente (Active Directory), evitando a necessidade de gerenciar um conjunto separado de senhas no Google Cloud.
Conceda a um contratado externo acesso temporário a um projeto, que deve expirar automaticamente após 30 dias.
→Adicione o contratado como membro IAM com a função necessária. Adicione uma condição à vinculação de função com um carimbo de data/hora de expiração (`request.time < timestamp("YYYY-MM-DDTHH:MM:SSZ")`).
Por quê: As Condições IAM fornecem controle de acesso baseado em atributos. Condições baseadas em tempo são perfeitas para acesso temporário, pois revogam automaticamente as permissões sem necessidade de limpeza manual.