Como um job obtém uma identidade, e como uma pessoa obtém acesso
Um job prova onde roda
Um job de pipeline pede ao GitLab um token assinado que nomeia seu repositório, seu ambiente e se sua ref é protegida. A federação de identidade de cargas de trabalho do Google Cloud verifica o token; um token de fora do grupo projectairframe, inclusive o de um fork em um espaço de nomes pessoal, é recusado antes de qualquer vínculo ser lido.
Uma identidade de apply responde a um só repositório
Cada identidade de apply está vinculada ao repositório do seu produto, em uma ref protegida, no seu próprio ambiente: a de produção responde a jobs no ambiente prod, e em grafana para os painéis do produto. Um job em um branch não protegido, em outro repositório ou em outro ambiente não obtém nada.
Sem chaves
Chaves de contas de serviço não podem ser criadas nem enviadas: uma política da organização na pasta da organização de demonstração proíbe as duas coisas, e uma política de negação bloqueia a criação de chaves para todos, exceto o grupo de acesso de emergência, a conta de administrador do bootstrap e o agente de serviço do Privileged Access Manager. As credenciais vêm do token do job ou do servidor de metadados.
Pessoas recebem concessões, não papéis administrativos permanentes
Um mantenedor que precisa mudar algo solicita uma concessão do Privileged Access Manager com uma justificativa. Uma concessão de papéis administrativos precisa da aprovação de outro membro do grupo de plataforma e dura no máximo duas horas; o acesso de leitura aos logs e ao estado de um projeto de não produção é autoaprovado e dura uma hora. Cada concessão fica no log de auditoria.
Uma imagem é atestada e depois admitida
O compilador confiável compila cada imagem a partir do commit aprovado. O executor confere o registro do Cloud Build dessa compilação antes que uma identidade separada assine o atestado de compilação, e a promoção adiciona um segundo. Todo serviço que o módulo de Cloud Run do golden path implanta adere à política do Binary Authorization que o seu projeto tiver, que em produção só admite uma imagem que tenha os dois; a política é escrita assim que os projetos de um produto são faturados. O controle de aprovação e este site funcionam com a mesma regra.
Uma versão com falha pode ser revogada
As ferramentas de pipeline da plataforma são publicadas como versões datadas. Revogar uma, com um merge request na lista de versões permitidas, faz o controle de aprovação falhar todo novo pipeline que ainda a inclua, e nomeia a versão para a qual migrar.