O Cloud Build oferece conformidade com chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês) criptografando o disco permanente durante a criação com uma chave temporária gerada para cada build. Nenhuma configuração é necessária. A chave é gerada exclusivamente para cada build.
Depois que uma versão é iniciada, a chave fica acessível por até 24 horas somente para os processos de criação que a exigirem. Em seguida, a chave é apagada da memória e destruída.
A chave não é mantida em lugar nenhum, não pode ser acessada pelos engenheiros ou pela equipe de suporte do Google e não pode ser restaurada. Os dados que foram protegidos usando essa chave ficam permanentemente inacessíveis quando a criação é concluída.
Como funciona a criptografia de chave efêmera?
O Cloud Build é compatível com o CMEK por meio do uso de chaves efêmeras, o que o torna totalmente consistente e compatível com uma configuração ativada para o CMEK.
O Cloud Build faz o seguinte para garantir que os discos permanentes de tempo de build sejam criptografados com uma chave temporária:
O Cloud Build gera uma chave de criptografia aleatória de 256 bits para criptografar cada disco permanente de tempo de compilação.
O Cloud Build aproveita o recurso de chave de criptografia fornecida pelo cliente (CSEK) do disco permanente para usar essa nova chave de criptografia como uma chave de criptografia de disco permanente.
O Cloud Build destrói a chave temporária assim que o disco é criado. A chave nunca é registrada nem gravada em armazenamento persistente e, agora, é irrecuperável.
Quando a criação é concluída, o disco permanente é excluído e, nesse momento, não há rastros da chave nem dos dados do disco permanente criptografados em nenhum lugar na infraestrutura do Google.
Quando a criptografia de chave efêmera não se aplica?
Quando você cria ou aciona um build usando o espelhamento de origem (e não o gatilhos do GitHub), seu código-fonte é armazenado no Cloud Storage ou no Cloud Source Repositories. Você tem controle total sobre o local de armazenamento do código, incluindo o controle sobre sua criptografia.