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
DESTROYEDnã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 estadoDESTROYED,IMPORT_FAILEDouGENERATION_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
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 estadoDESTROYED,IMPORT_FAILEDouGENERATION_FAILED.
A saída do comando retorna um
Operation. Você vai precisar donameda operação na próxima etapa.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 nenhumerrorfor 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
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 donameda operação na próxima etapa.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 nenhumerrorfor 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
- Saiba mais sobre como destruir e restaurar versões de chaves.