Excluir recursos do Cloud KMS

Este documento mostra como excluir permanentemente chaves e versões de chaves do Cloud Key Management Service. Essa operação é irreversível.

No Cloud KMS, destruição e exclusão são operações diferentes:

  • Destruição: desativa uma versão de chave permanentemente, incluindo a destruição irreversível do material de chave subjacente após o período de destruição especificado. Uma versão de chave no estado DESTROYED não pode ser usada para operações criptográficas e não é mais cobrada. É possível destruir uma versão de chave usada para criptografar dados e triturar criptograficamente os dados que você quer tornar permanentemente irrecuperáveis. As versões de chave destruídas ainda são incluídas nas listas de recursos do Cloud KMS.

  • Exclusão: remove uma chave ou versão de chave das listas de recursos do Cloud KMS no console Google Cloud , na Google Cloud CLI, na API Cloud Key Management Service e nas bibliotecas de cliente. Para projetos com muitas chaves ou versões de chaves que não estão mais ativas, a exclusão simplifica as operações de pesquisa e listagem. Não é possível reutilizar nomes de CryptoKeys excluídas. É possível conferir uma lista de nomes de CryptoKey excluídos que não podem ser reutilizados usando o método retiredResources.list.

Antes de começar

Para receber as permissões necessárias para excluir e visualizar recursos do Cloud KMS, peça ao administrador para conceder a você o papel do IAM de administrador do Cloud KMS (roles/cloudkms.admin) na chave. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para excluir e visualizar recursos do Cloud KMS. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para excluir e visualizar recursos do Cloud KMS:

  • Para excluir uma versão de chave: cloudkms.cryptoKeyVersions.delete
  • Para excluir uma chave: cloudkms.cryptoKeys.delete
  • Para conferir os recursos excluídos:
    • cloudkms.retiredResources.get
    • cloudkms.retiredResources.list

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Excluir uma versão de chave

É possível excluir uma versão de chave se ela estiver no estado DESTROYED, IMPORT_FAILED ou GENERATION_FAILED. Se a versão da chave foi importada, ela só poderá ser excluída se a importação falhar.

Para excluir permanentemente uma versão da chave, siga estas etapas:

gcloud

Para excluir uma versão da chave, execute o seguinte comando:

gcloud kms keys versions delete KEY_VERSION \
    --location=LOCATION \
    --keyring=KEY_RING \
    --key=KEY_NAME

Substitua:

  • KEY_VERSION: o número da versão da chave que você quer excluir permanentemente. A versão da chave indicada precisa estar no estado DESTROYED, IMPORT_FAILED ou GENERATION_FAILED.
  • LOCATION: o local do Cloud KMS do keyring.
  • KEY_RING: o nome do keyring que contém a chave.
  • KEY_NAME: o nome da chave que contém a versão que você quer excluir permanentemente.

REST

  1. Para excluir uma versão da chave, chame o método cryptoKeyVersions.delete. Esse método retorna uma operação de longa duração que pode ser pesquisada para confirmar se a versão da chave foi excluída.

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION" \
    --request "DELETE" \
    --header "authorization: Bearer TOKEN"
    

    Substitua:

    • PROJECT_ID: o ID do projeto que contém o keyring.
    • LOCATION: o local do Cloud KMS do keyring.
    • KEY_RING: o nome do keyring que contém a chave.
    • KEY_NAME: o nome da chave que contém a versão que você quer excluir permanentemente.
    • KEY_VERSION: o número da versão da chave que você quer excluir permanentemente. A versão da chave indicada precisa estar no estado DESTROYED, IMPORT_FAILED ou GENERATION_FAILED.

    A saída do comando retorna um Operation. Você vai precisar do name da operação na próxima etapa.

  2. Para confirmar que a versão da chave foi excluída, chame o método operations.get:

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_NAME" \
        --request "GET" \
        --header "authorization: Bearer TOKEN"
    

    Substitua:

    • PROJECT_ID: o ID do projeto que contém o keyring.
    • LOCATION: o local do Cloud KMS do keyring.
    • OPERATION_NAME: o nome da operação que foi retornada pelo método anterior.

    Quando a saída desse método mostrar que done é true, a operação terá sido concluída. Se nenhum error for indicado, a versão da chave será excluída permanentemente.

Excluir uma chave

Você pode excluir uma chave se ela atender às seguintes condições:

  • A chave não contém versões que ainda não foram excluídas.
  • A chave não tem uma rotação de chaves automática programada.
  • A chave não foi criada pela chave automática do Cloud KMS.

Para excluir uma chave permanentemente, siga estas etapas:

gcloud

Para excluir uma chave, execute o seguinte comando:

gcloud kms keys delete KEY_NAME \
    --location=LOCATION \
    --keyring=KEY_RING

Substitua:

  • KEY_NAME: o nome da chave que você quer excluir permanentemente. A chave não pode conter versões que ainda não foram excluídas e não pode ser uma chave criada pelo Autokey.
  • LOCATION: o local do Cloud KMS do keyring.
  • KEY_RING: o nome do keyring que contém a chave.

REST

  1. Para excluir uma chave, chame o método cryptoKey.delete. Esse método retorna uma operação de longa duração que pode ser pesquisada para confirmar se a chave foi excluída.

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \
    --request "DELETE" \
    --header "authorization: Bearer TOKEN"
    

    Substitua:

    • PROJECT_ID: o ID do projeto que contém o keyring.
    • LOCATION: o local do Cloud KMS do keyring.
    • KEY_RING: o nome do keyring que contém a chave.
    • KEY_NAME: o nome da chave que você quer excluir permanentemente. A chave não pode conter versões que ainda não foram excluídas e não pode ser uma chave criada pelo Autokey.

    A saída do comando retorna um Operation. Você vai precisar do name da operação na próxima etapa.

  2. Para confirmar que a chave foi excluída, chame o método operations.get:

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_NAME" \
        --request "GET" \
        --header "authorization: Bearer TOKEN"
    

    Substitua:

    • PROJECT_ID: o ID do projeto que contém o keyring.
    • LOCATION: o local do Cloud KMS do keyring.
    • OPERATION_NAME: o nome da operação retornada pelo método anterior.

    Quando a saída desse método mostrar que done é true, a operação será concluída. Se nenhum error for indicado, a chave terá sido excluída permanentemente.

Ver nomes de recursos desativados

Os nomes das chaves excluídas não podem ser reutilizados no mesmo projeto doGoogle Cloud . Isso impede que duas chaves diferentes tenham o mesmo identificador de recurso. Os nomes das chaves excluídas são armazenados em objetos retiredResources. Você pode consultar retiredResources para ver nomes que não podem ser reutilizados para novos recursos do Cloud KMS.

Para conferir uma lista de todos os recursos desativados, siga estas etapas:

gcloud

Execute este comando:

gcloud kms retired-resources list \
    --location=LOCATION

Substitua:

  • LOCATION: o local em que você quer ver os recursos desativados.

REST

Use o método retiredResources.list:

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/retiredResources/" \
    --request "GET" \
    --header "authorization: Bearer TOKEN"

Substitua:

  • PROJECT_ID: o identificador do projeto em que você quer ver recursos desativados.
  • LOCATION: o local em que você quer ver os recursos desativados.

Para conferir os metadados de um recurso desativado específico, siga estas etapas:

gcloud

Execute este comando:

gcloud kms retired-resources describe RETIRED_RESOURCE \
    --location=LOCATION

Substitua:

  • RETIRED_RESOURCE: o nome do recurso que você quer visualizar.
  • LOCATION: o local em que você quer ver um recurso desativado.

REST

Use o método retiredResources.get:

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/retiredResources/RETIRED_RESOURCE" \
    --request "GET" \
    --header "authorization: Bearer TOKEN"

Substitua:

  • PROJECT_ID: o identificador do projeto em que você quer ver um recurso desativado.
  • LOCATION: o local em que você quer ver um recurso desativado.
  • RETIRED_RESOURCE: o nome do recurso que você quer visualizar.

A saída desse método inclui o resourceType, o deleteTime e o identificador completo do recurso excluído.

A seguir