Ativar chaves de encriptação geridas pelo cliente

Esta página descreve como encriptar conteúdo armazenado em repositórios com chaves de encriptação geridas pelo cliente (CMEK).

Vista geral

Por predefinição, o Artifact Registry encripta o conteúdo do cliente em repouso. O Artifact Registry 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 CMEK, incluindo o Artifact Registry. 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 e autorizações de acesso, bem como limites criptográficos. A utilização do Cloud KMS também permite 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 Artifact Registry é 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).

CMEK com chave automática do Cloud KMS

Pode criar CMEKs manualmente para proteger os recursos do Artifact Registry ou usar o Cloud KMS Autokey. Com o Autokey, os conjuntos de chaves e as chaves são gerados a pedido como parte da criação de recursos no Artifact Registry. 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.

Para configurar as CMEK manualmente, consulte o artigo Criar uma chave e conceder autorizações

Para configurar as CMEK através do Autokey, consulte a secção Use o Autokey para criar chaves nesta página.

Atribui uma chave CMEK quando cria um repositório. Não pode alterar o mecanismo de encriptação de um repositório existente. Se tiver um repositório encriptado com CMEK, não pode alterar o mecanismo de encriptação para usar uma chave de encriptação com tecnologia do Google Cloud nem atribuir uma chave do Cloud KMS diferente para a encriptação.

Para mais informações sobre as CMEK em geral, incluindo quando e por que motivo as ativar, consulte a vista geral das CMEK.

Criar uma chave e conceder autorizações

As instruções seguintes explicam como criar uma chave para um repositório e conceder autorizações para encriptar e desencriptar dados do repositório com a chave. Pode usar uma chave criada diretamente no Cloud KMS ou uma chave gerida externamente que disponibiliza com o Cloud External Key Manager.

  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 repositório do repositório que vai encriptar.

  2. Se não tiver criado um repositório no projeto do Artifact Registry, a conta de serviço do Artifact Registry não existe. Para criar a conta de serviço, execute o seguinte comando:

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

    Substitua PROJECT pelo ID do projeto onde o Artifact Registry está a ser executado.

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

    Consola

    1. Aceda à página Chaves criptográficas.

      Abra a página do Cloud KMS

    2. Selecione a chave que criou.

    3. Conceda acesso à conta de serviço do Artifact Registry:

      1. Selecione MOSTRAR PAINEL DE INFORMAÇÕES.
      2. Clique em ADICIONAR MEMBRO.
      3. Adicione a conta de serviço do Artifact Registry. A conta de serviço é service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com, onde PROJECT-NUMBER é o número do projeto do Google Cloud projeto onde o Artifact Registry está a ser executado.
      4. Em Selecionar uma função, selecione Cloud KMS > Encriptador/desencriptador de CryptoKey do Cloud KMS.
      5. Clique em GUARDAR.
    4. Repita o passo anterior para conceder acesso à conta que vai criar repositórios.

    5. Regresse à página Gestão de chaves e selecione novamente a chave.

    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 Artifact Registry:

      gcloud kms keys add-iam-policy-binding [--project=PROJECT] \
             KEY --location LOCATION --keyring=KEYRING \
             --member serviceAccount:service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com \
             --role roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      Onde

      • PROJECT é o ID do projeto que contém a chave.
      • KEY é o nome da chave.
      • LOCATION é a localização principal. A localização da chave tem de corresponder à localização do repositório do repositório que vai encriptar.
      • KEYRING é o nome do conjunto de chaves.
      • PROJECT-NUMBER é o número do projeto do projeto Google Cloud que está a executar o Artifact Registry.
    2. Repita o passo anterior para conceder acesso à conta que vai criar repositórios.

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

Em seguida, crie um repositório e especifique a chave a usar para a encriptação.

Use o Autokey para criar chaves

O Autokey cria uma nova chave na mesma localização que o repositório.

Funções necessárias

Para receber as autorizações de que precisa para usar o Autokey para criar repositórios protegidos, peça ao seu administrador que lhe conceda as seguintes funções de IAM na pasta ou no projeto:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Crie chaves

Antes de criar chaves com a chave automática, tem de ativar a chave automática do Cloud KMS.

  1. Abra a página Repositórios na Google Cloud consola.

    Abra a página Repositórios

  2. Clique em Criar repositório.

  3. Preencha os campos obrigatórios e opcionais para o seu repositório padrão, remoto ou virtual.

  4. Na secção Encriptação, escolha Cloud KMS com gestão automatizada de chaves automáticas.

  5. Clique em Criar.

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 Artifact Registry 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 um repositório, perde a capacidade de ver ou obter dados de artefactos. Todos os dados de artefactos armazenados no repositório ficam inacessíveis, incluindo artefactos criados, dados binários arbitrários (blobs) e manifestos, como um manifesto do Docker ou um ficheiro packument do npm. Os utilizadores com a função de leitor do Artifact Registry (roles/artifactregistry.reader) ou a função de visualizador (roles/artifactregistry.viewer) continuam a poder ver os metadados dos artefactos, como o nome, a versão ou a etiqueta do artefacto.

Os utilizadores com a função de administrador do Artifact Registry (roles/artifactregistry.admin) ou a função de proprietário (roles/owner) podem eliminar o repositório.

Políticas da organização de CMEK

O Artifact Registry 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 Artifact Registry está na Denylista de serviços da política de restrição constraints/gcp.restrictNonCmekServices, o Artifact Registry recusa-se a criar novos repositórios que não estejam protegidos pela CMEK.

  • Quando constraints/gcp.restrictCmekCryptoKeyProjects está configurado, o Artifact Registry cria repositórios protegidos por CMEK que são protegidos por uma CryptoKey de um projeto, uma pasta ou uma organização permitidos.

O Pub/Sub suporta as mesmas restrições. Quando ativa a API Artifact Registry num Google Cloud projeto, o Artifact Registry tenta criar automaticamente um tópico Pub/Sub com o ID do tópico gcr através de chaves de encriptação com tecnologia do Google Cloud. No entanto, se a API Pub/Sub estiver na Denylista de políticas para a restriçãoconstraints/gcp.restrictNonCmekServices, o Pub/Sub não cria o tópico. Neste cenário, tem de criar o tópico gcr com a encriptação CMEK. Para mais informações, consulte as instruções para encriptar tópicos do Pub/Sub.

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?