Hierarquia de objetos

O Cloud Key Management Service armazena chaves criptográficas em uma estrutura hierárquica projetada para gerenciamento de controle de acesso útil e elegante. O acesso a recursos nessa estrutura é regido pelo gerenciamento de identidade e acesso.

Os níveis desta hierarquia, de cima para baixo, são:

  1. Projeto
  2. Local
  3. Keyring
  4. Chave
  5. Versão de chave

Projeto

Os recursos do Cloud KMS pertencem a um projeto, assim como todos os outros recursos do Google Cloud. Isso significa que as contas com papéis primitivos do IAM em qualquer projeto com recursos do Cloud KMS têm permissões correspondentes nesses recursos. Por esse motivo, convém executar o Cloud KMS em um projeto separado de outros recursos do Google Cloud.

Local

Os recursos do Cloud KMS podem ser criados em diversos locais dentro de um projeto. Eles representam a localização geográfica do data center em que são processadas as solicitações para o Cloud KMS relativas a um determinado recurso e em que as chaves criptográficas correspondentes são armazenadas.

Há um local especial para os recursos do Cloud KMS chamado global. Quando criados no local global, seus recursos do Cloud KMS ficam disponíveis em várias centrais de dados.

Para saber mais sobre as implicações no desempenho de rede dos locais escolhidos para hospedar os recursos do Cloud KMS, consulte Locais do Cloud KMS.

Keyring

Recursos

O keyring é um agrupamento de chaves para fins organizacionais. Um keyring pertence a um projeto do Google Cloud e reside em um local específico. As chaves herdam as permissões do keyring que as contém. O agrupamento de chaves com permissões relacionadas em um keyring possibilita a concessão, revogação ou modificação de permissões nelas no nível do keyring, sem a necessidade de cuidar de cada uma separadamente.

Código de recurso do keyring

Algumas chamadas de API e comandos da ferramenta de linha de comando gcloud podem exigir o código do recurso do keyring, que é o nome KeyRing totalmente qualificado. Este valor faz distinção entre maiúsculas e minúsculas e está no formato

projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING

Você pode recuperar o código do recurso de keyring usando o Console do Cloud:

  1. Abra a página Chaves criptográficas no Console do Cloud.

    Abrir a página "Chaves criptográficas".

  2. No keyring referente ao código de recurso que está sendo recuperado, clique no ícone Mais (três pontos verticais).

  3. Clique em Copiar código do recurso. Ele será copiado para a área de transferência.

Key

A chave é um objeto nomeado que representa uma chave criptográfica usada para um propósito específico. O material da chave, ou seja, os bits efetivamente usados para criptografia, pode mudar com o tempo à medida que novas versões de chave são criadas.

A chave é usada para proteger algumas coletâneas de dados. É possível criptografar uma coleção de arquivos com a mesma chave. Quem tiver permissões de descriptografia nessa chave conseguirá descriptografar os arquivos.

ID de recurso da chave

Algumas chamadas de API e a ferramenta gcloud podem exigir o código do recurso da chave, que é o nome CryptoKey totalmente qualificado. Este valor faz distinção entre maiúsculas e minúsculas e está no formato:

projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY

Você pode recuperar o código de recurso principal usando o Console do Cloud:

  1. Abra a página Chaves criptográficas no Console do Cloud.

    Abrir a página "Chaves criptográficas".

  2. Clique no nome do keyring que contém a chave.

  3. Na chave referente ao código de recurso que está sendo recuperado, clique no ícone Mais (três pontos verticais).

  4. Clique em Copiar código do recurso. Ele será copiado para a área de transferência.

Versão de chave

A versão de chave representa o material associado a uma chave em um dado momento. Cada chave pode ter arbitrariamente diversas versões, mas precisa ter pelo menos uma. As versões são numeradas sequencialmente, começando com 1.

Voltando ao exemplo de um conjunto de arquivos criptografados, a criptografia de arquivos que têm a mesma chave pode ser feita com versões de chave diferentes. Alguns dos arquivos são criptografados com a versão 1 e outros com a versão 2. Ao solicitar que o Cloud KMS descriptografe qualquer um desses arquivos, especifique o nome da chave que o criptografou, e não uma versão específica. O Cloud KMS identifica automaticamente qual versão foi usada para criptografia e a usa para descriptografar o arquivo caso a versão ainda esteja ativada.

O material de chave associado a uma versão tem um tipo, que indica o comprimento da chave e o algoritmo a ser usado com ele. No momento, todas as chaves têm o Padrão de criptografia avançada em 256 bits (AES-256, na sigla em inglês), usadas no modo de contador Galois (GCM, na sigla em inglês). O Cloud KMS usa a criptografia probabilística. Assim, o mesmo texto simples criptografado duas vezes com a mesma versão de chave não será criptografado com o mesmo texto cifrado. Os modos das chaves não são atualmente expostos pela nossa API.

As versões de chave têm estados, como ativada, desativada, programada para destruição ou destruída. Qualquer versão de uma chave é usada para descriptografia, até que ela seja explicitamente transferida para um estado desativado, destruído ou programado para destruição.

Por questões de segurança, o material bruto da chave criptográfica representada por uma versão de chave nunca é exibido nem exportado. Ele só pode ser usado para criptografar ou descriptografar dados quando um usuário ou aplicativo autorizado invocar o serviço do Cloud KMS.

Uma chave simétrica sempre terá uma versão de chave primária. Essa é a versão usada pelo Cloud KMS para criptografar dados. Ao criar uma nova versão de chave e defini-la como principal, faça a rotação de uma chave simétrica sem perder o acesso a quaisquer dados criptografados com as versões anteriores. Chaves assimétricas não têm uma versão principal. As chaves assimétricas também têm considerações de rotação diferentes em relação às chaves simétricas.

ID do recurso da versão da chave

Algumas chamadas de API e a ferramenta gcloud podem exigir o código do recurso da versão da chave, que é o nome CryptoKeyVersion totalmente qualificado. Este valor faz distinção entre maiúsculas e minúsculas e está no formato:


projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/VERSION

É possível recuperar o código do recurso da versão da chave usando o Console do Cloud:

  1. Abra a página Chaves criptográficas no Console do Cloud.

    Abrir a página "Chaves criptográficas".

  2. Clique no nome do keyring que contém a chave.

  3. Clique no nome da chave que contém a versão dela.

  4. Na versão de chave referente ao código de recurso que está sendo recuperado, clique no ícone Mais (três pontos verticais).

  5. Clique em Copiar código de recurso. Ele será copiado para a área de transferência.

Exemplo de hierarquias

O tipo de hierarquia escolhido depende de fatores como seu caso de uso, aplicativos e controles de segurança desejados.

Exemplo 1

Uma empresa tem vários aplicativos, e cada aplicativo contém dados secretos protegidos pelo Cloud KMS. A hierarquia pode conter um conjunto de chaves para cada ambiente de desenvolvimento, como prod, test e dev. Cada keyring pode conter uma chave por aplicativo.

A hierarquia teria a seguinte configuração:

  • Keyrings (um por ambiente): prod, test, dev.

  • Chaves para keyrings prod (uma por aplicativo): Payroll, Expense_reports, Insurance_claims.
    Os outros keyrings teriam um conjunto semelhante de chaves para cada aplicativo que eles protegem.

  • Cada chave pode ser alternada de maneira independente, com base nas necessidades do negócio.

Exemplo 2

Uma empresa tem muitos conjuntos de dados protegidos pelo Cloud KMS. A hierarquia pode conter um keyring para cada classificação de dados, como confidencial, sensível e restrito. Cada keyring pode conter uma chave por conjunto de dados.

A hierarquia teria a seguinte configuração:

  • Keyrings (um por nível de classificação): confidential, sensitive, restricted.

  • Chaves para keyring confidencial (um por conjunto de dados): dataset_1, dataset_2, dataset_3 etc.
    Os outros keyring têm um conjunto semelhante de chaves para os conjuntos de dados protegidos.

  • Cada chave pode ser alternada de maneira independente, com base nas necessidades do negócio.

Duração dos objetos

Os keyrings, as chaves e as versões da chave não podem ser excluídos. Isso garante que o identificador de recursos de uma versão de chave seja exclusivo e sempre aponte para o material da chave original dessa versão de chave.

É possível armazenar um número ilimitado de keyrings, chaves ativadas ou desativadas e versões de chave ativadas ou desativadas. Para mais informações, consulte Preços e Cotas.

Para saber mais sobre como destruir versões de chave, consulte Como destruir e restaurar versões de chave.

Se você programar o encerramento de um projeto do Google Cloud, não conseguirá acessar os recursos do projeto, incluindo os recursos do Cloud KMS, a menos que recupere o projeto seguindo as etapas para restaurar um projeto.