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 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).
Você atribui uma chave da 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 chave de criptografiado Google ou atribuir uma chave diferente do Cloud KMS para criptografia.
Para mais informações sobre a 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.
No projeto do Trusted Cloud em que você quer gerenciar as chaves:
Crie um keyring e uma chave usando uma das seguintes opções:
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.
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
Acesse a página Chaves criptográficas.
Selecione a chave que você criou.
Conceda acesso à conta de serviço do Artifact Registry:
- Selecione MOSTRAR PAINEL DE INFORMAÇÕES.
- Clique em Adicionar membro.
- 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, em que PROJECT-NUMBER é o número do projeto do projeto Trusted Cloud em que o Artifact Registry está em execução.
- Em Selecione uma função, selecione Cloud KMS > Criptografador/descriptografador do Cloud KMS CryptoKey.
- Clique em SALVAR.
Repita a etapa anterior para conceder acesso à conta que vai criar repositórios.
Retorne à página Gerenciamento de chaves e selecione a chave novamente.
Selecione MOSTRAR PAINEL DE INFORMAÇÕES. Você vai encontrar os papéis na coluna Papel/Membro.
gcloud
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 é o local da chave.
- KEYRING é o nome do keyring.
- PROJECT-NUMBER é o número do projeto do projeto Trusted Cloud que está executando o Artifact Registry.
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.
Como remover o acesso
Há várias maneiras de remover o acesso de um repositório criptografado por CMEKs:
- Revogue o papel Criptografador/Descriptografador de CryptoKey do Cloud KMS da conta de serviço do Artifact Registry usando um dos seguintes métodos:
- Desative temporariamente a chave de criptografia gerenciada pelo cliente
- Destruir permanentemente a chave CMEK
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 leitor
(roles/artifactregistry.viewer
) ainda podem ver os metadados do artefato, como o
nome, a versão ou a tag.
Os usuários com os papéis de Administrador (roles/artifactregistry.admin
) ou Proprietário (roles/owner
) do Artifact Registry podem excluir o repositório.
Políticas da organização de CMEK
O Artifact Registry é compatível com 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 com CMEK.
Quando a API Artifact Registry está na lista de serviços da política
Deny
da restriçãoconstraints/gcp.restrictNonCmekServices
, o Artifact Registry se recusa a criar novos repositórios que não estejam 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 tem as mesmas restrições. Quando você ativa a
API Artifact Registry em um projeto Trusted Cloud by S3NS , o Artifact Registry
tenta criar automaticamente um tópico do Pub/Sub com o ID
gcr
usando chaves de criptografia do 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, você precisa
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 mais informações sobre como configurar políticas da organização, consulte Políticas da organização de CMEK.
A seguir
- Criar um repositório criptografado com CMEK
- Saiba mais sobre CMEK