Encripte dados com chaves de encriptação geridas pelo cliente

Por predefinição, o Secure Source Manager encripta o conteúdo do cliente em repouso. O Secure Source Manager processa a encriptação por si sem ações adicionais da sua parte. Esta opção chama-se Encriptação predefinida da Google.

Se quiser controlar as suas chaves de encriptação, pode usar chaves de encriptação geridas pelo cliente (CMEKs) no Cloud KMS com serviços integrados com CMEKs, incluindo o Secure Source Manager. A utilização de chaves do Cloud KMS dá-lhe controlo sobre o respetivo nível de proteção, localização, programação de rotação, utilização, autorizações de acesso e limites criptográficos. A utilização do Cloud KMS também permite monitorizar a utilização das chaves, ver registos de auditoria e controlar os ciclos de vida das chaves. Em vez de a Google possuir e gerir as chaves de encriptação de chaves (KEKs) simétricas que protegem os seus dados, controla e gere estas chaves no Cloud KMS.

Depois de configurar os seus recursos com CMEKs, a experiência de acesso aos recursos do Secure Source Manager é semelhante à utilização da encriptação predefinida da Google. Para mais informações acerca das suas opções de encriptação, consulte o artigo Chaves de encriptação geridas pelo cliente (CMEK).

O Cloud KMS pode ser executado num projeto separado onde gere centralmente as chaves para vários projetos ou no mesmo Google Cloud projeto que o Secure Source Manager. Para suportar a separação de funções e um maior controlo sobre o acesso às chaves, recomendamos que crie e faça a gestão das chaves num projeto separado que não inclua outros Google Cloud recursos.

Atribui uma chave do Cloud KMS quando cria uma instância. Não pode alterar o mecanismo de encriptação de uma instância existente. Se tiver uma instância encriptada com CMEK, não pode alterar o mecanismo de encriptação para a encriptação predefinida da Google nem atribuir uma chave diferente do Cloud Key Management Service para encriptação.

A instância tem de ser criada na mesma localização que a chave do Cloud KMS.

CMEK com chave automática do Cloud KMS

Pode criar CMEKs manualmente para proteger os recursos do Secure Source Manager ou usar a chave automática do Cloud KMS. Com a Autokey, os conjuntos de chaves e as chaves são gerados a pedido como parte da criação de recursos no Secure Source Manager. Os agentes de serviço que usam as chaves para operações de encriptação e desencriptação são criados se ainda não existirem e recebem as funções de gestão de identidade e de acesso (IAM) necessárias. Para mais informações, consulte o artigo Vista geral do Autokey.

Quotas do Cloud KMS e Secure Source Manager

Quando usa CMEK no Secure Source Manager, os seus projetos podem consumir quotas de pedidos criptográficos do Cloud KMS. As instâncias encriptadas com CMEK consomem estas quotas no momento da criação. As operações de encriptação e desencriptação que usam chaves CMEK afetam as quotas do Cloud KMS apenas se usar hardware (Cloud HSM) ou chaves externas (Cloud EKM). Para mais informações, consulte as cotas do Cloud KMS.

Crie uma chave CMEK e conceda autorizações

As instruções seguintes explicam como criar uma chave e conceder autorizações da conta de serviço do Secure Source Manager na chave.

  1. Crie uma chave do Cloud KMS:

    Manualmente

    1. No Google Cloud projeto onde quer gerir as suas chaves:

      1. Ative a API Cloud KMS.

      2. Crie um conjunto de chaves e uma chave através de uma das seguintes opções:

      A localização da chave do Cloud KMS tem de corresponder à localização do projeto onde quer criar a instância do Secure Source Manager.

    Usar o Autokey

    1. Se ainda não o fez, ative a chave automática do Cloud KMS.

    2. 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 o seguinte:

      • PROJECT: o ID do projeto onde o Cloud KMS Autokey está ativado e onde quer implementar uma instância do Secure Source Manager
      • LOCATION: a localização KeyHandle. Tem de corresponder à localização onde quer implementar uma instância do Secure Source Manager

      O resultado é semelhante ao seguinte:

      {
        "name": "projects/PROJECT/locations/LOCATION/operations/OPERATION",
        "metadata": {
          "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
        }
      }
      

      Tome nota do OPERATION na saída. Precisa deste valor para obter o ID de recurso da chave criada.

    3. Encontre a chave do Cloud KMS associada ao identificador da 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/OPERATION
      

      Substitua o seguinte:

      • PROJECT: o ID do projeto onde o Cloud KMS Autokey está ativado e onde quer implementar uma instância do Secure Source Manager
      • LOCATION: a localização KeyHandle. Tem de corresponder à localização onde quer implementar uma instância do Secure Source Manager
      • OPERATION: o identificador da operação de pedido de identificador da chave a partir do resultado do passo anterior

      O resultado é semelhante ao 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 kmsKey na saída é o ID de recurso completo da chave criada pela chave automática do Cloud KMS para este recurso. Pode usar este ID do recurso da mesma forma que usaria o ID do recurso de qualquer outro recurso do Cloud KMS.

  2. Se estiver a criar a sua primeira instância do Secure Source Manager no seu projeto, tem de criar manualmente o agente do serviço Secure Source Manager executando o seguinte comando:

    gcloud beta services identity create \
    --service=securesourcemanager.googleapis.com \
    --project=PROJECT
    

    Em que PROJECT é o ID do projeto onde vai criar a sua instância do Secure Source Manager.

    Depois de criar a conta de serviço por produto e por projeto (P4SA), tem de conceder a função de agente do serviço Secure Source Manager (roles/securesourcemanager.serviceAgent) ao principal service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, caso contrário, a criação da instância falha.

  3. Conceda a função da IAM de encriptador/desencriptador de CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) à conta de serviço do Secure Source Manager. Conceda esta autorização na chave que criou.

    Consola

    1. Aceda à página Gestão de chaves.

      Aceda à gestão de chaves

    2. Selecione o conjunto de chaves que quer usar, abra a página Detalhes do conjunto de chaves e, de seguida, selecione a chave que criou.

    3. Conceda acesso à conta de serviço do Secure Source Manager:

      1. Clique em ADICIONAR PRINCÍPIO.
      2. Adicione a conta de serviço do Secure Source Manager. A conta de serviço é service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, onde PROJECT-NUMBER é o número do projeto do Google Cloud projeto onde o Secure Source Manager está ativado.
      3. Em Selecionar uma função, selecione Cloud KMS > Encriptador/desencriptador de CryptoKey do Cloud KMS.
      4. Clique em GUARDAR.
    4. Repita o passo anterior para conceder acesso à conta que vai criar a instância do Secure Source Manager.

    5. Regresse à página Gestão de chaves, selecione o seu conjunto de chaves e abra a página Detalhes do conjunto de chaves. Em seguida, selecione novamente a tecla.

    6. Selecione MOSTRAR PAINEL DE INFORMAÇÕES. Deve ver as funções na coluna Função/Membro.

    gcloud

    1. Execute o seguinte comando 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.cryptoKeyEncrypterDecrypter
      

      Substitua o seguinte:

      • PROJECT: o ID do projeto que contém a chave
      • KEY_NAME: o nome da chave
      • LOCATION: a localização da chave. A localização principal tem de corresponder à localização do projeto onde quer implementar uma instância do Secure Source Manager
      • KEY_RING: o nome do conjunto de chaves
      • PROJECT_NUMBER: o número do projeto do Google Cloud projeto com o Secure Source Manager ativado
    2. Repita o passo anterior para conceder acesso à conta que vai criar a instância do Secure Source Manager.

    Para mais informações sobre este comando, consulte a documentação de gcloud kms keys add-iam-policy-binding.

Remover acesso

Existem várias formas de remover o acesso a um repositório encriptado com CMEK:

Recomendamos que revogue as autorizações da conta de serviço do Secure Source Manager antes de desativar ou destruir uma chave. As alterações às autorizações são consistentes em segundos, pelo que pode observar os impactos da desativação ou destruição de uma chave.

Quando desativa ou destrói a chave de encriptação de uma instância, perde a capacidade de ver ou obter dados da instância. Todos os dados armazenados na instância ficam inacessíveis, incluindo o histórico de código, os pedidos de envio e os problemas.

Os utilizadores com a função de gestor de instâncias do Secure Source Manager ou de proprietário da instância podem eliminar a instância.

Políticas da organização de CMEK

O Secure Source Manager suporta restrições de políticas da organização que podem exigir a proteção CMEK.

As políticas podem limitar as CryptoKeys do Cloud KMS que podem ser usadas para a proteção CMEK.

  • Quando a API Secure Source Manager está na Denylista de serviços da política de restrição constraints/gcp.restrictNonCmekServices, o Secure Source Manager recusa-se a criar novas instâncias que não estejam protegidas pela CMEK.

  • Quando o constraints/gcp.restrictCmekCryptoKeyProjects está configurado, o Secure Source Manager cria instâncias protegidas por CMEK que estão protegidas por uma CryptoKey de um projeto, uma pasta ou uma organização permitidos.

Para mais informações sobre a configuração de políticas da organização, consulte as políticas da organização de CMEK.

O que se segue?