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 processa a criptografia para você sem que você precise 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. O uso de chaves do Cloud KMS permite 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. O uso do Cloud KMS também permite visualizar registros de auditoria e controlar ciclos de vida importantes. 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 recursos do Artifact Registry é semelhante à criptografia padrão do Google. Para mais informações sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).

CMEK com o Cloud KMS Autokey

É 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 como parte da 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 autokeys.

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

Para configurar a CMEK usando a chave automática, consulte Usar a chave automática para criar chaves nesta página.

Você atribui uma chave CMEK ao criar um repositório. Não é possível mudar o mecanismo de criptografia de um repositório atual. Se você tiver um repositório criptografado por CMEK, não será possível mudar o mecanismo de criptografia para usar uma do Google Cloud gerenciada e de propriedade do Google 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 o Cloud External Key Manager.

  1. No projeto Google Cloud 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 do repositório que você vai 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. 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, em que PROJECT-NUMBER é o número do projeto do projeto Google Cloud 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 os repositórios.

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

    6. Selecione MOSTRAR PAINEL DE INFORMAÇÕES. Você vai encontrar os papéis na coluna Papel/Membro.

    gcloud

    1. Execute o comando abaixo 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ê vai 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 os 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 a chave automática 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 a 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 por meio de papéis personalizados ou de outros papéis predefinidos.

Criar chaves

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

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

    Abrir a página Repositórios

  2. Clique em Criar repositório.

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

  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 CMEKs:

Recomendamos revogar as permissões da conta de serviço do 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 o papel de leitor do Artifact Registry (roles/artifactregistry.reader) ou de leitor (roles/artifactregistry.viewer) ainda podem acessar os metadados do artefato, como nome, versão ou tag.

Os usuários com a função de administrador do Artifact Registry (roles/artifactregistry.admin) ou de proprietário (roles/owner) 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 estiver na lista de políticas Deny dos serviços da restrição constraints/gcp.restrictNonCmekServices, o Artifact Registry se recusará a criar novos repositórios que não estejam protegidos por 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, pasta ou organização permitido.

O Pub/Sub oferece suporte às mesmas restrições. Quando você ativa a API Artifact Registry em um projeto Google Cloud , o Artifact Registry tenta criar automaticamente um tópico do Pub/Sub com o ID de tópico gcr usando do Google gerenciadas e executadas pelo Google Cloud. 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 a criptografia CMEK. Para mais informações, consulte as instruções do Pub/Sub para criptografar tópicos.

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

A seguir