Proteja os seus dados com a CMEK (1.ª geração)
Pode usar as chaves de encriptação geridas pelo cliente (CMEK) do Cloud Key Management Service para proteger as funções do Cloud Run e os dados em repouso relacionados. Estas chaves são criadas e geridas através do Cloud KMS e armazenadas como chaves de software, num cluster de HSM ou externamente.
A implementação de uma função com uma CMEK protege os dados associados à mesma através de uma chave de encriptação que está sob o seu controlo total. Este tipo de encriptação permite-lhe cumprir os requisitos de conformidade em determinadas indústrias, como a de serviços financeiros. Uma vez que a chave é sua e não é controlada pela Google, ninguém (incluindo o utilizador) pode aceder aos dados protegidos por estas chaves de encriptação quando as chaves estão desativadas ou destruídas.
Os seguintes tipos de dados das funções do Cloud Run são encriptados quando usa uma CMEK:
- Código fonte da função carregado para implementação e armazenado pela Google no Cloud Storage, usado no processo de compilação.
- Os resultados do processo de criação de funções, incluindo:
- A imagem do contentor criada a partir do código fonte da sua função.
- Cada instância da função implementada.
- Dados em repouso para canais de transporte de eventos internos.
O próprio processo de criação da função está protegido por uma chave efémera gerada exclusivamente para cada criação. Consulte o artigo Conformidade com a CMEK no Cloud Build para mais informações. Além disso, tenha em atenção o seguinte:
Os metadados dos ficheiros, como os caminhos do sistema de ficheiros ou as datas/horas de modificação, não são encriptados.
Se uma chave estiver desativada, não é possível implementar a imagem do contentor nem iniciar novas instâncias.
A proteção CMEK das funções do Cloud Run aplica-se apenas aos recursos das funções do Cloud Run geridos pela Google. É responsável pela proteção dos dados e dos recursos geridos por si, como os repositórios de código fonte ou quaisquer serviços usados pelas suas funções.
A configuração das CMEK para funções do Cloud Run implica o seguinte:
Conceder às contas de serviço necessárias acesso à chave:
- Para todas as funções, tem de conceder às contas de serviço do Cloud Run functions, do Artifact Registry e do Cloud Storage acesso à chave.
Criar um repositório do Artifact Registry protegido por CMEK para armazenar as imagens das suas funções.
Ativar as CMEK na sua função.
Opcionalmente, ative as políticas da organização CMEK para aplicar a conformidade com as CMEK a todas as novas funções.
Estes passos são descritos mais detalhadamente abaixo.
Antes de começar
Crie uma chave de região única para usar na encriptação das suas funções. Para saber como criar uma chave, consulte o artigo Criar chaves de encriptação simétrica.
Crie um repositório do Artifact Registry com as CMEK ativadas. Tem de usar a mesma chave para o repositório do Artifact Registry que usa quando ativa as CMEK para uma função.
Conceder às contas de serviço acesso à chave
Para todas as funções, tem de conceder acesso à chave às seguintes contas de serviço:
Agente de serviço de funções do Cloud Run (
service-PROJECT_NUMBER@gcf-admin-robot.iam.gserviceaccount.com
)Agente de serviço do Artifact Registry (
service-PROJECT_NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
)Agente de serviço do Cloud Storage (
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com
)
Para conceder a estas contas de serviço acesso à chave, adicione cada conta de serviço como um principal da chave e, em seguida, conceda à conta de serviço a função Cloud KMS CryptoKey Encrypter/Decrypter
:
Consola
Aceda à página Cloud Key Management Service na Google Cloud consola:
Aceda à página Cloud KMSClique no nome do conjunto de chaves que contém a chave escolhida.
Clique no nome da chave para ver os detalhes da chave.
No separador Autorizações, clique em Conceder acesso.
No campo Novos membros, introduza os endereços de email das três contas de serviço apresentadas anteriormente para atribuir autorizações às três contas de uma só vez.
No menu pendente Selecionar uma função, selecione Encriptador/desencriptador de CryptoKey do Cloud KMS.
Clique em Guardar.
gcloud
Para cada conta de serviço abordada anteriormente, execute o seguinte comando:
gcloud kms keys add-iam-policy-binding KEY \ --keyring KEY_RING \ --location LOCATION \ --member serviceAccount:SERVICE_AGENT_EMAIL \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Substitua o seguinte:
KEY
: o nome da chave. Por exemplo,my-key
.KEY_RING
: o nome do conjunto de chaves. Por exemplo,my-keyring
.LOCATION
: a localização da chave. Por exemplo,us-central1
.SERVICE_AGENT_EMAIL
: o endereço de email da conta de serviço.
Ativar as CMEK para uma função
Depois de configurar um repositório do Artifact Registry com a CMEK ativada e conceder às funções do Cloud Run acesso à sua chave, está tudo pronto para ativar a CMEK para a sua função.
Para ativar as CMEK para uma função:
Consola
Aceda à página de funções do Cloud Run na Google Cloud consola:
Aceda à página de funções do Cloud RunClique no nome da função na qual quer ativar a CMEK.
Clique em Edit.
Clique em Tempo de execução, compilação... para expandir as opções de configuração avançadas.
Selecione o separador Segurança e repositório de imagens.
Na secção Encriptação, selecione Chave de encriptação gerida pelo cliente (CMEK).
Selecione a chave escolhida no menu pendente.
Em Localização do contentor, selecione Artifact Registry gerido pelo cliente.
No menu pendente Artifact Registry, selecione o repositório protegido por CMEK.
Clicar em Seguinte.
Clique em Implementar.
gcloud
Execute o seguinte comando.
gcloud functions deploy FUNCTION \ --no-gen2 \ --kms-key=KEY \ --docker-repository=REPOSITORY \ --source=YOUR_SOURCE_LOCATION FLAGS...
Substitua o seguinte:
FUNCTION
: o nome da função para ativar as CMEK. Por exemplo,cmek-function
.KEY
: o nome da chave totalmente qualificado, no seguinte formato:projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME
.REPOSITORY
: o nome do repositório do Artifact Registry totalmente qualificado, no seguinte formato:projects/PROJECT_NAME/locations/LOCATION/repositories/REPOSITORY
.YOUR_SOURCE_LOCATION
: quando ativa a CMEK para uma função pré-existente, certifique-se de que o código fonte pretendido está a ser reimplementado especificando este parâmetro explicitamente.FLAGS...
: flags adicionais que podem ser necessárias para implementar a sua função, especialmente para implementações de criação. Para ver detalhes, consulte o artigo Implemente uma função do Cloud Run.
As CMEK estão ativadas para a função.
Tenha em atenção que as funções do Cloud Run usam sempre a versão principal de uma chave para proteção CMEK. Não pode especificar uma versão da chave específica para usar quando ativa o CMEK para as suas funções.
Se uma chave for destruída ou desativada, ou se as autorizações necessárias na mesma forem revogadas, as instâncias ativas das funções protegidas por essa chave não são encerradas. As execuções de funções já em curso continuam a ser executadas, mas as novas execuções falham enquanto as funções do Cloud Run não tiverem acesso à chave.
Testar a proteção CMEK
Para verificar se a proteção CMEK está a funcionar, pode desativar a chave que usou para ativar as CMEK para uma função e, em seguida, tentar acionar a função:
Desative a chave usada para proteger a sua função.
Tentar ver o código-fonte associado a esta função. A tentativa deve falhar.
Tente acionar a função protegida por CMEK. A tentativa deve falhar.
Depois de verificar se a proteção CMEK está a funcionar, ative a chave.
A proteção CMEK da função está agora confirmada.
O que se segue?
- Saiba como rodar as suas chaves.
- Saiba mais sobre a encriptação predefinida da Google.
- Saiba mais acerca das CMEK.
- Saiba mais acerca das políticas organizacionais de CMEK.