Por padrão, o Secure Source Manager criptografa o conteúdo do cliente em repouso. O Secure Source Manager executa a criptografia, e você não precisa fazer nada. Essa opção é chamada de criptografia padrão do Google.
Se você quiser controlar suas chaves de criptografia, use chaves de criptografia gerenciadas pelo cliente (CMEKs) no Cloud KMS com serviços integrados a CMEKs, como o Secure Source Manager. Ao usar chaves do Cloud KMS, é possível controlar o nível de proteção, o local, a programação de rotação, as permissões de uso e acesso e os limites criptográficos. Ao usar o Cloud KMS, é possível também monitorar o uso de chaves, ver registros de auditoria e controlar ciclos de vida de chaves. Em vez de o Google ser proprietário e responsável pelo gerenciamento das chaves de criptografia de chaves (KEKs) simétricas que protegem seus dados, você controla e gerencia essas chaves no Cloud KMS.
Depois de configurar os recursos com CMEKs, a experiência de acesso aos recursos do Secure Source Manager é semelhante à criptografia padrão do Google. Para saber mais sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).
O Cloud KMS pode ser executado em um projeto separado em que você gerencia centralmente as chaves de vários projetos ou no mesmo projetoGoogle Cloud que o Secure Source Manager. Para oferecer suporte à separação de tarefas e maior controle sobre o acesso às chaves, recomendamos que você crie e gerencie chaves em um projeto separado que não inclua outros recursos do Google Cloud.
Você atribui uma chave do Cloud KMS ao criar uma instância. Não é possível mudar o mecanismo de criptografia de uma instância atual. Se você tiver uma instância criptografada com CMEK, não será possível mudar o mecanismo de criptografia para a criptografia padrão do Google nem atribuir uma chave diferente do Cloud Key Management Service para criptografia.
A instância precisa ser criada no mesmo local da chave do Cloud KMS.
CMEK com o Cloud KMS Autokey
É possível criar CMEKs manualmente para proteger seus recursos do Secure Source Manager ou usar a chave automática do Cloud KMS. Com o Autokey, keyrings e as chaves são gerados sob demanda como parte da criação de recursos no Secure Source Manager. Os agentes de serviço que usam as chaves para operações de criptografia e descriptografia são criados se ainda não existirem e receberem os papéis necessários do Identity and Access Management (IAM). Para mais informações, consulte Visão geral das chaves automáticas.
Cotas do Cloud KMS e do Secure Source Manager
Ao usar a CMEK no Secure Source Manager, seus projetos podem consumir cotas de solicitações criptográficas do Cloud KMS. As instâncias criptografadas com CMEK consomem essas cotas no momento da criação. As operações de criptografia e descriptografia que usam chaves CMEK afetam as cotas do Cloud KMS somente se você usar chaves de hardware (Cloud HSM) ou externas (Cloud EKM). Para mais informações, consulte Cotas do Cloud KMS.
Criar uma chave CMEK e conceder permissões
As instruções a seguir explicam como criar uma chave e conceder à conta de serviço do Secure Source Manager permissões nela.
Crie uma chave do Cloud KMS:
Manualmente
No projeto Google Cloud em que você quer gerenciar as chaves:
Crie um keyring e uma chave usando uma das seguintes opções:
- Crie o keyring e a chave diretamente no Cloud KMS.
- Use uma chave com gerenciamento externo. Crie a chave externa e depois crie uma chave do Cloud EKM para disponibilizá-la por meio do Cloud KMS.
O local da chave do Cloud KMS precisa corresponder ao local do projeto em que você quer criar a instância do Secure Source Manager.
Como usar o Autokey
Se você ainda não fez isso, ative o Autokey do Cloud KMS.
Crie uma nova chave automática do Cloud KMS
KeyHandle:curl -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -X POST https://cloudkms.googleapis.com/v1/projects/PROJECT/locations/LOCATION/keyHandles \ -d '{"resource_type_selector": "securesourcemanager.googleapis.com/Instance"}'Substitua:
- PROJECT: o ID do projeto em que o Cloud KMS Autokey está ativado e em que você quer implantar uma instância do Secure Source Manager
- LOCATION: o local
KeyHandle. Ele precisa corresponder ao local em que você quer implantar uma instância do Secure Source Manager.
O resultado será o seguinte:
{ "name": "projects/PROJECT/locations/LOCATION/operations/OPERATION", "metadata": { "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata" } }Anote o OPERATION da saída. Você precisa desse valor para receber o ID do recurso da chave criada.
Encontre a chave do Cloud KMS associada ao identificador de chave:
curl -H "X-Goog-User-Project: PROJECT" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -X GET https://cloudkms.googleapis.com/v1/projects/PROJECT/locations/LOCATION/operations/OPERATIONSubstitua:
- PROJECT: o ID do projeto em que o Cloud KMS Autokey está ativado e em que você quer implantar uma instância do Secure Source Manager
- LOCATION: o local
KeyHandle. Ele precisa corresponder ao local em que você quer implantar uma instância do Secure Source Manager. - OPERATION: o identificador da operação de solicitação de manipulador de chave da saída da etapa anterior.
O resultado será o seguinte:
{ "name": "projects/PROJECT/locations/LOCATION/operations/OPERATION", "done": true, "response": { "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle", "name": "projects/PROJECT/locations/LOCATION/keyHandles/KEY_HANDLE", "kmsKey": "projects/PROJECT/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME", "resourceTypeSelector": "securesourcemanager.googleapis.com/Instance" } }O valor do elemento
kmsKeyna saída é o ID do recurso completo da chave criada pelo Cloud KMS Autokey para esse recurso. É possível usar esse ID da mesma forma que o ID de qualquer outro recurso do Cloud KMS.
Se você estiver criando sua primeira instância do Secure Source Manager no seu projeto, será necessário criar manualmente o agente de serviço do Secure Source Manager executando o seguinte comando:
gcloud beta services identity create \ --service=securesourcemanager.googleapis.com \ --project=PROJECTEm que
PROJECTé o ID do projeto em que você vai criar sua instância do Secure Source Manager.Depois de criar a conta de serviço por produto por projeto (P4SA), conceda o papel de agente de serviço do Secure Source Manager (
roles/securesourcemanager.serviceAgent) ao principalservice-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com. Caso contrário, a criação da instância vai falhar.Conceda o papel do IAM de Criptografador/Descriptografador de CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter) à conta de serviço do Secure Source Manager. Conceda essa permissão na chave que você criou.Console
Acesse a página Gerenciamento de chaves.
Selecione o keyring que você quer usar, abra a página Detalhes do keyring e selecione a chave criada.
Conceda acesso à conta de serviço do Secure Source Manager:
- Clique em ADICIONAR PRINCIPAL.
- Adicione a conta de serviço do Secure Source Manager. A conta de serviço é service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, em que PROJECT-NUMBER é o número do projeto do projeto Google Cloud em que o Secure Source Manager está ativado.
- Em Selecione um papel, selecione Cloud KMS > Criptografador/descriptografador do CryptoKey do Cloud KMS.
- Clique em SALVAR.
Repita a etapa anterior para conceder acesso à conta que vai criar a instância do Secure Source Manager.
Retorne à página Gerenciamento de chaves e selecione seu keyring para abrir a página Detalhes do keyring. Em seguida, selecione a chave novamente.
Selecione MOSTRAR PAINEL DE INFORMAÇÕES. Você vai encontrar os papéis na coluna Papel/Membro.
gcloud
Execute o comando a seguir para conceder acesso à conta de serviço do Secure Source Manager:
gcloud kms keys add-iam-policy-binding [--project=PROJECT] \ KEY_NAME --location LOCATION --keyring=KEY_RING \ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypterSubstitua:
- PROJECT: o ID do projeto que contém a chave
- KEY_NAME: o nome da chave
- LOCATION: a localização da chave. O local da chave precisa corresponder ao local do projeto em que você quer implantar uma instância do Secure Source Manager.
- KEY_RING: é o nome do keyring
- PROJECT_NUMBER: o número do projeto do projetoGoogle Cloud com o Secure Source Manager ativado.
Repita a etapa anterior para conceder acesso à conta que vai criar a instância do Secure Source Manager.
Para mais informações sobre esse comando, consulte a documentação gcloud kms keys add-iam-policy-binding.
Remover acesso
Há várias maneiras de remover o acesso de um repositório criptografado por CMEK:
- Revogue o papel de criptografador/descriptografador do CryptoKey do Cloud KMS da conta de serviço do Secure Source Manager usando o console Google Cloud ou a CLI gcloud.
- Desative temporariamente a chave CMEK.
- Destruir permanentemente a chave CMEK.
Recomendamos revogar as permissões da conta de serviço do Secure Source Manager antes de desativar ou destruir uma chave. As alterações de permissões são consistentes em segundos, então é possível observar os impactos da desativação ou da destruição de uma chave.
Ao desativar ou destruir a chave de criptografia de uma instância, você perde a capacidade de visualizar ou recuperar dados dela. Todos os dados armazenados na instância ficam inacessíveis, incluindo histórico de código, solicitações de pull e problemas.
Os usuários com os papéis de administrador de instâncias do Secure Source Manager ou proprietário da instância podem excluir a instância.
Políticas da organização de CMEK
O Secure Source Manager é compatível com restrições de política da organização que podem exigir proteção da CMEK.
As políticas podem limitar quais CryptoKeys do Cloud KMS podem ser usadas para proteção com CMEK.
Quando a API Secure Source Manager está na lista de serviços da política
Denyda restriçãoconstraints/gcp.restrictNonCmekServices, o Secure Source Manager se recusa a criar novas instâncias que não estejam protegidas por CMEK.Quando
constraints/gcp.restrictCmekCryptoKeyProjectsé configurado, o Secure Source Manager cria instâncias protegidas por CMEK que são protegidas por uma CryptoKey de um projeto, pasta ou organização permitida.
Para mais informações sobre como configurar políticas da organização, consulte Políticas da organização de CMEK.
A seguir
- Implantar uma instância criptografada com CMEK
- Saiba mais sobre CMEKs
- Saiba mais sobre a criptografia padrão do Google
- Saiba mais sobre o Cloud KMS Autokey