Como ativar chaves de criptografia gerenciadas pelo cliente

Nesta página, você aprende a criptografar conteúdo armazenado em repositórios com chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês).

Visão geral

Por padrão, o Artifact Registry criptografa o conteúdo do cliente em repouso. O Artifact Registry 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, incluindo o Artifact Registry. 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. Com o Cloud KMS, também é possível visualizar registros de auditoria e controlar ciclos de vida de chaves. Em vez de o Google ser proprietário e gerente de 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 seus recursos do Artifact Registry é semelhante à criptografia padrão do Google. Para saber mais sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).

CMEK com o Autokey do Cloud KMS

É possível criar CMEKs manualmente para proteger seus recursos do Artifact Registry ou usar o Autokey do Cloud KMS. Com o Autokey, keyrings e chaves são gerados sob demanda para oferecer suporte à criação de recursos no Artifact Registry. 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.

Para configurar a CMEK manualmente, consulte Como criar uma chave e conceder permissões

Para configurar a CMEK usando o Autokey, consulte Usar o Autokey para criar chaves nesta página.

Você atribui uma chave CMEK ao criar um repositório. Não é possível alterar o mecanismo de criptografia de um repositório atual. Se você tiver um repositório criptografado por CMEK, não será possível alterar o mecanismo de criptografia para usar uma ou atribuir uma chave diferente do Cloud KMS para criptografia.

Para mais informações sobre CMEK em geral, incluindo quando e por que ativar, consulte a visão geral da CMEK.

Como criar uma chave e conceder permissões

As instruções a seguir explicam como criar uma chave para um repositório e conceder permissões para criptografar e descriptografar dados do repositório com a chave. É possível usar uma chave criada diretamente no Cloud KMS ou uma chave gerenciada externamente que você disponibiliza com Cloud External Key Manager.

  1. No Google Cloud projeto em que você quer gerenciar as chaves:

    1. Ative a API Cloud KMS.

    2. Crie um keyring e uma chave usando uma das seguintes opções:

      O local da chave do Cloud KMS precisa corresponder ao local do repositório que você criptografará.

  2. Se você não criou 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, use o seguinte comando:

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

    Substitua PROJECT pelo ID do projeto em que o Artifact Registry está em execução.

  3. Conceda o papel do IAM de Criptografador/Descriptografador de CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) à conta de serviço do Artifact Registry. Conceda essa permissão na chave que você criou.

    Console

    1. Acesse a página Chaves criptográficas.

      Abrir a página "Cloud KMS"

    2. Selecione a chave que você criou.

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

      1. Se o painel de informações estiver oculto, clique em Mostrar painel de informações.
      2. Clique em Conceder acesso.
      3. No campo Novos participantes, adicione a conta de serviço do Artifact Registry. A conta de serviço é service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com, em que PROJECT-NUMBER é o número do projeto do Google Cloud projeto em que o Artifact Registry está em execução.
      4. Em Selecione uma função, selecione Cloud KMS > Criptografador/descriptografador do Cloud KMS CryptoKey.
      5. Clique em Salvar.
    4. Repita a etapa anterior para conceder acesso à conta que vai criar repositórios.

    5. Retorne à página Gerenciamento de chaves e selecione a chave novamente.

    6. Se o painel de informações estiver oculto, clique em Mostrar painel de informações. Os papéis vão aparecer na seção Papel/principal.

    gcloud

    1. Execute o comando a seguir 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 é o local da chave. O local da chave precisa corresponder ao local do repositório do repositório que você criptografará.
      • KEYRING é o nome do keyring.
      • PROJECT-NUMBER é o número do projeto do Google Cloud projeto que está executando o Artifact Registry.
    2. Repita a etapa anterior para conceder acesso à conta que vai criar repositórios.

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

Em seguida, crie um repositório e especifique a chave a ser usada para criptografia.

Usar o Autokey para criar chaves

O Autokey cria uma nova chave no mesmo local do repositório.

Funções exigidas

Para receber as permissões necessárias para usar o Autokey e criar repositórios protegidos, peça ao administrador para conceder a você os seguintes papéis do IAM na pasta ou no projeto:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.

Criar chaves

Antes de criar chaves com o Autokey, é necessário ativar o Autokey do Cloud KMS.

  1. Abra a página Repositórios no Google Cloud console.

    Abrir a página Repositórios

  2. Clique em Criar repositório.

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

  4. Na seção Criptografia, escolha Cloud KMS com gerenciamento automatizado do Autokey.

  5. Clique em Criar.

Como remover o acesso

Há várias maneiras de remover o acesso de um repositório criptografado por CMEK:

Recomendamos revogar as permissões da conta de serviço do Artifact Registry 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 um repositório, você perde a capacidade de visualizar ou recuperar dados de artefato. Todos os dados de artefatos armazenados no repositório ficam inacessíveis, incluindo artefatos compilados, dados binários arbitrários (blobs) e manifestos, como um manifesto do Docker ou um arquivo de empacotamento npm. Os usuários com os papéis de leitor do Artifact Registry (roles/artifactregistry.reader) ou leitor (roles/artifactregistry.viewer) ainda podem ver os metadados do artefato, como nome, versão ou tag.

Os usuários com os papéis de Administrador (roles/artifactregistry.admin) ou de Proprietário (roles/owner) do Artifact Registry podem excluir o repositório.

Políticas da organização de CMEK

O Artifact Registry oferece suporte a restrições de política da organização que podem exigir proteção CMEK.

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

  • Quando a API Artifact Registry está na lista de serviços da política Deny da restrição constraints/gcp.restrictNonCmekServices, o Artifact Registry se recusa a criar novos repositórios que não sejam protegidos por CMEK.

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

O Pub/Sub oferece suporte às mesmas restrições. Quando você ativa a API Artifact Registry em um Google Cloud projeto, o Artifact Registry tenta criar automaticamente um tópico do Pub/Sub com o ID do tópico gcr usando No entanto, se a API Pub/Sub estiver na lista de políticas Deny para a restrição constraints/gcp.restrictNonCmekServices, o Pub/Sub não vai criar o tópico. Nesse cenário, é necessário criar o tópico gcr com criptografia CMEK. Para mais informações, consulte as instruções do Pub/Sub para criptografar tópicos.

Para mais informações sobre como configurar políticas da organização, consulte Políticas da organização de CMEK.

A seguir