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).

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çãogerida e pertencente à Google 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 Trusted 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:

  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.s3ns-system.iam.gserviceaccount.com, onde PROJECT-NUMBER é o número do projeto do Trusted 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.s3ns-system.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.
      • KEYRING é o nome do conjunto de chaves.
      • PROJECT-NUMBER é o número do projeto do projeto Trusted 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.

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 Trusted Cloud by S3NS 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 pertencentes e geridas pela Google 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?