A engenharia de segurança começa definindo quem pode atuar em um recurso, quais caminhos podem acessá-lo e quais evidências registram o resultado. Nosso limite mais restrito é um bucket do Cloud Storage em um projeto do Google Cloud, acessado por um serviço do Cloud Run. O curso expandirá esse limite para incluir controles de identidade, rede, criptografia, detecção e verificação.
O Identity and Access Management (IAM) autoriza uma entidade (principal) a realizar uma ação permitida em um recurso. As políticas de permissão do IAM podem ser herdadas pela organização, pasta ou projeto até chegar ao bucket. Uma conta de serviço é uma identidade de carga de trabalho, não uma conta de administrador humano. Conceder permissão de bucket apenas à conta de serviço de tempo de execução limita o escopo das solicitações no plano de dados.
Os controles de rede regem os caminhos de tráfego, em vez das permissões de recursos. As regras de firewall da VPC avaliam o tráfego para interfaces de rede do Compute Engine. O Cloud Key Management Service (Cloud KMS) gerencia chaves de criptografia controladas pelo cliente para recursos compatíveis. O Security Command Center coleta informações sobre a postura de segurança e detecção de ameaças. Cada controle responde a uma pergunta diferente; portanto, nenhum deles substitui a autorização do IAM.
Vamos examinar como os controles de organização, projeto e recurso convergem no limite de uma carga de trabalho.
Suponha que o projeto example-payments-project hospede um serviço do Cloud Run na região us-central1. Sua conta de serviço de tempo de execução grava recibos aprovados no bucket example-receipts-bucket. Um grupo de administradores revisa a configuração. Uma conta de serviço separada, destinada à integração e entrega contínuas, realiza a implantação de revisões. A separação dessas identidades evita que uma credencial de implantação se torne automaticamente uma credencial de acesso a dados.
O modelo de ameaças inclui uma credencial de desenvolvedor comprometida, uma função de tempo de execução com permissões excessivas e a exportação não intencional de dados. O serviço do Cloud Run requer apenas as ações específicas no bucket. O grupo de administradores precisa de acesso de gerenciamento controlado. A identidade de implantação necessita de permissões de implantação, e não de amplos poderes de administração operacional. Isso estabelece o princípio do privilégio mínimo como um requisito passível de teste, em vez de uma intenção genérica.
Vamos visualizar as identidades, a região e o recurso de dados que definem o escopo de segurança desta carga de trabalho.