Destruir e restaurar versões de chaves

Nesta página, mostramos como programar uma versão de chave do Cloud Key Management Service para destruição. No Cloud KMS, o material da chave criptográfica que você usa para criptografar, descriptografar, assinar e verificar se os dados estão armazenados em uma versão de chave. Uma chave não tem nenhuma ou mais versões de chave. Ao fazer isso, você cria uma nova chave para a versão anterior.

Destruir uma versão de chave significa que o material dela será excluído permanentemente. Quando você destrói uma versão de chave, outros detalhes, como o nome e a chave não serão excluídos. Depois que uma chave é destruída, os dados criptografados com a versão da chave não poderão ser descriptografados.

Como a destruição da chave é irreversível, o Cloud KMS não destruir versões de chave imediatamente. Em vez disso, você programa uma versão destruição. a versão da chave permanece no estado programado para destruição; por um período configurável. Durante o período de destruição programado, é possível restaurar uma versão de chave para cancelar a destruição dela.

A duração padrão programada para a destruição é de 30 dias. Você pode definir um com duração de destruição personalizada programada para uma chave durante o criação. Sua organização pode aplicar com duração mínima programada para a duração da destruição definindo a configuração Minimum destroy duração programada por chave nas políticas da organização.

Também é possível gerenciar o acesso à chave usando o gerenciamento de identidade e acesso (IAM). As operações do IAM são consistentes em segundos. Para mais informações, consulte Como usar o IAM.

Também é possível desativar temporariamente uma versão de chave. Qa recomendamos desativar as versões de chave antes de programá-las para destruição, parte de seus procedimentos para garantir que a chave possa ser destruída com segurança. Dependendo das políticas da sua organização, talvez seja necessário desativar uma chave antes de programá-la para destruição. Para mais informações sobre controlar a destruição da versão da chave usando políticas da organização, consulte Controlar destruição da versão da chave.

No restante deste tópico, o agendamento de uma chave para destruição é como destruir a chave, mesmo que a destruição não seja imediata.

Antes de começar

Entender os riscos

Destruir uma versão de chave é uma operação permanente. Destruir uma versão de chave que ainda é necessária tem riscos, incluindo:

  • Interrupção do serviço: se você destruir uma chave necessária para iniciar um contêiner por exemplo, seus serviços ou aplicativos podem ficar indisponíveis.

  • Perda permanente de dados: se você destruir uma chave usada para criptografar dados, esses dados ficam indisponíveis. Dados criptografados com uma chave que foi destruídos são considerados triturados criptograficamente. Em alguns casos, destruir uma chave pode fazer com que os recursos criptografados sejam excluídos permanentemente.

  • Problemas regulatórios ou de conformidade: se você destruir uma chave que é necessária para acessar os dados que estão sujeitos a um período de armazenamento anterior a essa retenção for concluído, é possível que você tenha violado um regulamento ou conformidade requisito fundamental.

Funções exigidas

Para ter as permissões necessárias para destruir e restaurar versões de chave, peça ao administrador para conceder a você Papel do IAM Administrador do Cloud KMS (roles/cloudkms.admin) na chave. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.

Verificar se a versão da chave está em uso

Antes de destruir uma versão de chave, conclua as etapas a seguir para saber se a versão da chave está em uso:

  1. Veja os detalhes de rastreamento de uso da chave. Se algum recurso estiver protegido pela versão da chave que você quer destruir, criptografe-os novamente com outra versão de chave.

  2. Ative os registros de qualquer serviço ou aplicativo que possa estar usando a chave para a versão anterior.

  3. Ative os registros no projeto do Cloud KMS que contém a chave.

  4. Desative a versão da chave. Como desativar a chave impede que a versão da chave seja usada. Com o versão de chave desativada, qualquer tentativa de usar a versão da chave falhará.

  5. Monitore os registros até ter certeza de que nenhum aplicativo ou serviço ainda depende da versão da chave que você desativou. Se algum erro indicar falha acesso à versão da chave, configurar o aplicativo ou recurso para usar outra versão de chave.

    O tempo gasto monitorando registros antes de destruir um depende do tipo de chave, do padrão de uso e nível de sensibilidade. Por exemplo, antes de destruir uma versão de chave usada em um processo que é executado trimestralmente, mantenha a versão da chave desativada até que é bem-sucedido.

  6. Verifique se o uso da chave está de acordo com os requisitos de conformidade aplicáveis. Por exemplo, a versão da chave e os dados criptografados com ela podem estar sujeitos a e períodos de retenção de dados.

Essas etapas ajudam a identificar se uma chave ainda é necessária. No entanto, eles não podem garantir que uma versão de chave não seja mais necessária. Sua organização deve implementar procedimentos e diretrizes para garantir que a versão principal e destruição não causarão efeitos negativos.

Destruir uma versão de chave

É possível destruir uma versão de chave ativada ou desativada.

Console

  1. No console do Google Cloud, acesse Gerenciamento de chaves.

    Vá para Gerenciamento de chaves

  2. Marque a caixa ao lado da versão da chave que você quer programar para destruição.

  3. Clique em Destruir no cabeçalho.

  4. No prompt de confirmação, insira o nome da chave e clique em Programar destruição.

gcloud

Para usar o Cloud KMS na linha de comando, primeiro Instale ou faça upgrade para a versão mais recente da Google Cloud CLI.

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

Substitua:

  • KEY_VERSION: o número da versão da chave que você quer. para destruir.
  • KEY_NAME: o nome da chave que você quer destruir. para a versão anterior.
  • KEY_RING: o nome do keyring que contém a chave.
  • LOCATION: o local do keyring no Cloud KMS.

Para informações sobre todas as sinalizações e valores possíveis, execute o comando com a sinalização --help.

C#

Para executar esse código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK do Cloud KMS para C#.


using Google.Cloud.Kms.V1;

public class DestroyKeyVersionSample
{
    public CryptoKeyVersion DestroyKeyVersion(
      string projectId = "my-project", string locationId = "us-east1", string keyRingId = "my-key-ring", string keyId = "my-key", string keyVersionId = "123")
    {
        // Create the client.
        KeyManagementServiceClient client = KeyManagementServiceClient.Create();

        // Build the key version name.
        CryptoKeyVersionName keyVersionName = new CryptoKeyVersionName(projectId, locationId, keyRingId, keyId, keyVersionId);

        // Call the API.
        CryptoKeyVersion result = client.DestroyCryptoKeyVersion(keyVersionName);

        // Return the result.
        return result;
    }
}

Go

Para executar esse código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK do Cloud KMS para Go.

import (
	"context"
	"fmt"
	"io"

	kms "cloud.google.com/go/kms/apiv1"
	"cloud.google.com/go/kms/apiv1/kmspb"
)

// destroyKeyVersion marks a specified key version for deletion. The key can be
// restored if requested within 24 hours.
func destroyKeyVersion(w io.Writer, name string) error {
	// name := "projects/my-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key/cryptoKeyVersions/123"

	// Create the client.
	ctx := context.Background()
	client, err := kms.NewKeyManagementClient(ctx)
	if err != nil {
		return fmt.Errorf("failed to create kms client: %w", err)
	}
	defer client.Close()

	// Build the request.
	req := &kmspb.DestroyCryptoKeyVersionRequest{
		Name: name,
	}

	// Call the API.
	result, err := client.DestroyCryptoKeyVersion(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to destroy key version: %w", err)
	}
	fmt.Fprintf(w, "Destroyed key version: %s\n", result)
	return nil
}

Java

Para executar esse código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK do Cloud KMS para Java.

import com.google.cloud.kms.v1.CryptoKeyVersion;
import com.google.cloud.kms.v1.CryptoKeyVersionName;
import com.google.cloud.kms.v1.KeyManagementServiceClient;
import java.io.IOException;

public class DestroyKeyVersion {

  public void destroyKeyVersion() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String locationId = "us-east1";
    String keyRingId = "my-key-ring";
    String keyId = "my-key";
    String keyVersionId = "123";
    destroyKeyVersion(projectId, locationId, keyRingId, keyId, keyVersionId);
  }

  // Schedule destruction of the given key version.
  public void destroyKeyVersion(
      String projectId, String locationId, String keyRingId, String keyId, String keyVersionId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only
    // needs to be created once, and can be reused for multiple requests. After
    // completing all of your requests, call the "close" method on the client to
    // safely clean up any remaining background resources.
    try (KeyManagementServiceClient client = KeyManagementServiceClient.create()) {
      // Build the key version name from the project, location, key ring, key,
      // and key version.
      CryptoKeyVersionName keyVersionName =
          CryptoKeyVersionName.of(projectId, locationId, keyRingId, keyId, keyVersionId);

      // Destroy the key version.
      CryptoKeyVersion response = client.destroyCryptoKeyVersion(keyVersionName);
      System.out.printf("Destroyed key version: %s%n", response.getName());
    }
  }
}

Node.js

Para executar esse código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Cloud KMS para Node.js.

//
// TODO(developer): Uncomment these variables before running the sample.
//
// const projectId = 'my-project';
// const locationId = 'us-east1';
// const keyRingId = 'my-key-ring';
// const keyId = 'my-key';
// const versionId = '123';

// Imports the Cloud KMS library
const {KeyManagementServiceClient} = require('@google-cloud/kms');

// Instantiates a client
const client = new KeyManagementServiceClient();

// Build the key version name
const versionName = client.cryptoKeyVersionPath(
  projectId,
  locationId,
  keyRingId,
  keyId,
  versionId
);

async function destroyKeyVersion() {
  const [version] = await client.destroyCryptoKeyVersion({
    name: versionName,
  });

  console.log(`Destroyed key version: ${version.name}`);
  return version;
}

return destroyKeyVersion();

PHP

Para executar esse código, primeiro saiba como usar o PHP no Google Cloud e instalar o SDK do Cloud KMS para PHP.

use Google\Cloud\Kms\V1\Client\KeyManagementServiceClient;
use Google\Cloud\Kms\V1\DestroyCryptoKeyVersionRequest;

function destroy_key_version(
    string $projectId = 'my-project',
    string $locationId = 'us-east1',
    string $keyRingId = 'my-key-ring',
    string $keyId = 'my-key',
    string $versionId = '123'
) {
    // Create the Cloud KMS client.
    $client = new KeyManagementServiceClient();

    // Build the key version name.
    $keyVersionName = $client->cryptoKeyVersionName($projectId, $locationId, $keyRingId, $keyId, $versionId);

    // Call the API.
    $destroyCryptoKeyVersionRequest = (new DestroyCryptoKeyVersionRequest())
        ->setName($keyVersionName);
    $destroyedVersion = $client->destroyCryptoKeyVersion($destroyCryptoKeyVersionRequest);
    printf('Destroyed key version: %s' . PHP_EOL, $destroyedVersion->getName());

    return $destroyedVersion;
}

Python

Para executar esse código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK do Cloud KMS para Python.

from google.cloud import kms


def destroy_key_version(
    project_id: str, location_id: str, key_ring_id: str, key_id: str, version_id: str
) -> kms.CryptoKeyVersion:
    """
    Schedule destruction of the given key version.

    Args:
        project_id (string): Google Cloud project ID (e.g. 'my-project').
        location_id (string): Cloud KMS location (e.g. 'us-east1').
        key_ring_id (string): ID of the Cloud KMS key ring (e.g. 'my-key-ring').
        key_id (string): ID of the key to use (e.g. 'my-key').
        version_id (string): ID of the key version to destroy (e.g. '1').

    Returns:
        CryptoKeyVersion: The version.

    """

    # Create the client.
    client = kms.KeyManagementServiceClient()

    # Build the key version name.
    key_version_name = client.crypto_key_version_path(
        project_id, location_id, key_ring_id, key_id, version_id
    )

    # Call the API.
    destroyed_version = client.destroy_crypto_key_version(
        request={"name": key_version_name}
    )
    print(f"Destroyed key version: {destroyed_version.name}")
    return destroyed_version

Ruby

Para executar esse código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK do Cloud KMS para Ruby.

# TODO(developer): uncomment these values before running the sample.
# project_id  = "my-project"
# location_id = "us-east1"
# key_ring_id = "my-key-ring"
# key_id      = "my-key"
# version_id  = "123"

# Require the library.
require "google/cloud/kms"

# Create the client.
client = Google::Cloud::Kms.key_management_service

# Build the key version name.
key_version_name = client.crypto_key_version_path project:            project_id,
                                                  location:           location_id,
                                                  key_ring:           key_ring_id,
                                                  crypto_key:         key_id,
                                                  crypto_key_version: version_id

# Call the API.
destroyed_version = client.destroy_crypto_key_version name: key_version_name
puts "Destroyed key version: #{destroyed_version.name}"

API

Estes exemplos usam curl como um cliente HTTP para demonstrar o uso da API. Para mais informações sobre controle de acesso, consulte Como acessar a API Cloud KMS.

Destrua uma versão de chave chamando CryptoKeyVersions.destroy .

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

Se não for possível destruir uma versão de chave, sua organização pode exigir que antes da destruição. Tente desativar a versão da chave antes de destruí-lo.

Quando você envia a solicitação de destruição, o estado da versão da chave se torna programados para destruição. Depois que a chave for configurada programado para duração de destruição tem o estado da versão da chave será destruído, ou seja, exclusão lógica do material da chave do ativo sistemas for iniciado, e o material da chave não poderá ser recuperado pelo cliente. Chave o material pode permanecer nos sistemas do Google por até 45 dias a partir do o horário de destruição programado.

Para receber um alerta quando uma versão de chave estiver programada para destruição, consulte Como usar o Cloud Monitoring com o Cloud KMS.

Versões de chave destruídas não são recursos faturados.

Destruição de chaves externas

Para remover permanentemente a associação entre uma chave do Cloud EKM e uma chave externa, é possível destruir a versão da chave. Após o período Programado para destruição, a chave é destruída. Depois que a versão da chave for destruída, não será possível mais criptografar nem descriptografar dados criptografados com a versão de chave do Cloud EKM.

Destruir uma versão de chave gerenciada manualmente no Cloud KMS não modifica a chave no gerenciador externo. Recomendamos primeiro destruir a chave mais recente no Google Cloud. Depois que a versão da chave do Cloud EKM destruído, ele pode ser destruído no gerenciador de chaves externo.

Destruir primeiro uma versão de chave externa coordenada no Cloud KMS destrói a versão da chave no Google Cloud e depois envia uma destruição para que o EKM destrua o material da chave externa.

Restaurar uma versão de chave

Durante o período em que o estado de uma versão de chave está programado para destruição, é possível restaurar a versão da chave enviando uma solicitação de restauração.

Console

  1. Acesse a página Gerenciamento de chaves no console do Google Cloud.

    Acessar a página "Gerenciamento de chaves"

  2. Clique no nome do keyring que contém a chave com a versão você quer restaurar.

  3. Clique na chave cuja versão você quer restaurar.

  4. Marque a caixa ao lado da versão da chave que você quer restaurar.

  5. Clique em Restaurar no cabeçalho.

  6. No prompt de confirmação, clique em Restaurar.

gcloud

Para usar o Cloud KMS na linha de comando, primeiro Instale ou faça upgrade para a versão mais recente da Google Cloud CLI.

gcloud kms keys versions restore key-version \
    --key key \
    --keyring key-ring \
    --location location

Substitua key-version pela versão da chave a ser restaurada. Substitua key pelo nome da chave. Substitua key-ring pelo nome do keyring em que a chave está localizada. Substitua location pelo local do Cloud KMS para o keyring.

Para informações sobre todas as sinalizações e valores possíveis, execute o comando com a sinalização --help.

C#

Para executar esse código, primeiro configure um ambiente de desenvolvimento C# e instale o SDK do Cloud KMS para C#.


using Google.Cloud.Kms.V1;

public class RestoreKeyVersionSample
{
    public CryptoKeyVersion RestoreKeyVersion(string projectId = "my-project", string locationId = "us-east1", string keyRingId = "my-key-ring", string keyId = "my-key", string keyVersionId = "123")
    {
        // Create the client.
        KeyManagementServiceClient client = KeyManagementServiceClient.Create();

        // Build the key version name.
        CryptoKeyVersionName cryptoKeyVersionName = new CryptoKeyVersionName(projectId, locationId, keyRingId, keyId, keyVersionId);

        // Call the API.
        CryptoKeyVersion result = client.RestoreCryptoKeyVersion(cryptoKeyVersionName);

        // Return the result.
        return result;
    }
}

Go

Para executar esse código, primeiro configure um ambiente de desenvolvimento Go e instale o SDK do Cloud KMS para Go.

import (
	"context"
	"fmt"
	"io"

	kms "cloud.google.com/go/kms/apiv1"
	"cloud.google.com/go/kms/apiv1/kmspb"
)

// restoreKeyVersion attempts to recover a key that has been marked for
// destruction in the past 24h.
func restoreKeyVersion(w io.Writer, name string) error {
	// name := "projects/my-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key/cryptoKeyVersions/123"

	// Create the client.
	ctx := context.Background()
	client, err := kms.NewKeyManagementClient(ctx)
	if err != nil {
		return fmt.Errorf("failed to create kms client: %w", err)
	}
	defer client.Close()

	// Build the request.
	req := &kmspb.RestoreCryptoKeyVersionRequest{
		Name: name,
	}

	// Call the API.
	result, err := client.RestoreCryptoKeyVersion(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to restore key version: %w", err)
	}
	fmt.Fprintf(w, "Restored key version: %s\n", result)
	return nil
}

Java

Para executar esse código, primeiro configure um ambiente de desenvolvimento Java e instale o SDK do Cloud KMS para Java.

import com.google.cloud.kms.v1.CryptoKeyVersion;
import com.google.cloud.kms.v1.CryptoKeyVersionName;
import com.google.cloud.kms.v1.KeyManagementServiceClient;
import java.io.IOException;

public class RestoreKeyVersion {

  public void restoreKeyVersion() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String locationId = "us-east1";
    String keyRingId = "my-key-ring";
    String keyId = "my-key";
    String keyVersionId = "123";
    restoreKeyVersion(projectId, locationId, keyRingId, keyId, keyVersionId);
  }

  // Schedule destruction of the given key version.
  public void restoreKeyVersion(
      String projectId, String locationId, String keyRingId, String keyId, String keyVersionId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only
    // needs to be created once, and can be reused for multiple requests. After
    // completing all of your requests, call the "close" method on the client to
    // safely clean up any remaining background resources.
    try (KeyManagementServiceClient client = KeyManagementServiceClient.create()) {
      // Build the key version name from the project, location, key ring, key,
      // and key version.
      CryptoKeyVersionName keyVersionName =
          CryptoKeyVersionName.of(projectId, locationId, keyRingId, keyId, keyVersionId);

      // Restore the key version.
      CryptoKeyVersion response = client.restoreCryptoKeyVersion(keyVersionName);
      System.out.printf("Restored key version: %s%n", response.getName());
    }
  }
}

Node.js

Para executar esse código, primeiro configure um ambiente de desenvolvimento do Node.js e instale o SDK do Cloud KMS para Node.js.

//
// TODO(developer): Uncomment these variables before running the sample.
//
// const projectId = 'my-project';
// const locationId = 'us-east1';
// const keyRingId = 'my-key-ring';
// const keyId = 'my-key';
// const versionId = '123';

// Imports the Cloud KMS library
const {KeyManagementServiceClient} = require('@google-cloud/kms');

// Instantiates a client
const client = new KeyManagementServiceClient();

// Build the key version name
const versionName = client.cryptoKeyVersionPath(
  projectId,
  locationId,
  keyRingId,
  keyId,
  versionId
);

async function restoreKeyVersion() {
  const [version] = await client.restoreCryptoKeyVersion({
    name: versionName,
  });

  console.log(`Restored key version: ${version.name}`);
  return version;
}

return restoreKeyVersion();

PHP

Para executar esse código, primeiro saiba como usar o PHP no Google Cloud e instalar o SDK do Cloud KMS para PHP.

use Google\Cloud\Kms\V1\Client\KeyManagementServiceClient;
use Google\Cloud\Kms\V1\RestoreCryptoKeyVersionRequest;

function restore_key_version(
    string $projectId = 'my-project',
    string $locationId = 'us-east1',
    string $keyRingId = 'my-key-ring',
    string $keyId = 'my-key',
    string $versionId = '123'
) {
    // Create the Cloud KMS client.
    $client = new KeyManagementServiceClient();

    // Build the key version name.
    $keyVersionName = $client->cryptoKeyVersionName($projectId, $locationId, $keyRingId, $keyId, $versionId);

    // Call the API.
    $restoreCryptoKeyVersionRequest = (new RestoreCryptoKeyVersionRequest())
        ->setName($keyVersionName);
    $restoredVersion = $client->restoreCryptoKeyVersion($restoreCryptoKeyVersionRequest);
    printf('Restored key version: %s' . PHP_EOL, $restoredVersion->getName());

    return $restoredVersion;
}

Python

Para executar esse código, primeiro configure um ambiente de desenvolvimento Python e instale o SDK do Cloud KMS para Python.

from google.cloud import kms


def restore_key_version(
    project_id: str, location_id: str, key_ring_id: str, key_id: str, version_id: str
) -> kms.CryptoKeyVersion:
    """
    Restore a key version scheduled for destruction.

    Args:
        project_id (string): Google Cloud project ID (e.g. 'my-project').
        location_id (string): Cloud KMS location (e.g. 'us-east1').
        key_ring_id (string): ID of the Cloud KMS key ring (e.g. 'my-key-ring').
        key_id (string): ID of the key to use (e.g. 'my-key').
        version_id (string): ID of the version to use (e.g. '1').

    Returns:
        CryptoKeyVersion: Restored Cloud KMS key version.

    """

    # Create the client.
    client = kms.KeyManagementServiceClient()

    # Build the key version name.
    key_version_name = client.crypto_key_version_path(
        project_id, location_id, key_ring_id, key_id, version_id
    )

    # Call the API.
    restored_version = client.restore_crypto_key_version(
        request={"name": key_version_name}
    )
    print(f"Restored key version: {restored_version.name}")
    return restored_version

Ruby

Para executar esse código, primeiro configure um ambiente de desenvolvimento Ruby e instale o SDK do Cloud KMS para Ruby.

# TODO(developer): uncomment these values before running the sample.
# project_id  = "my-project"
# location_id = "us-east1"
# key_ring_id = "my-key-ring"
# key_id      = "my-key"
# version_id  = "123"

# Require the library.
require "google/cloud/kms"

# Create the client.
client = Google::Cloud::Kms.key_management_service

# Build the key version name.
key_version_name = client.crypto_key_version_path project:            project_id,
                                                  location:           location_id,
                                                  key_ring:           key_ring_id,
                                                  crypto_key:         key_id,
                                                  crypto_key_version: version_id

# Call the API.
restored_version = client.restore_crypto_key_version name: key_version_name
puts "Restored key version: #{restored_version.name}"

API

Estes exemplos usam curl como um cliente HTTP para demonstrar o uso da API. Para mais informações sobre controle de acesso, consulte Como acessar a API Cloud KMS.

Restaure uma versão de chave chamando o CryptoKeyVersions.restore .

curl "https://cloudkms.googleapis.com/v1/projects/project-id/locations/location-id/keyRings/key-ring-id/cryptoKeys/crypto-key-id/cryptoKeyVersions/version-id:restore" \
    --request "POST" \
    --header "authorization: Bearer token"

Depois que a solicitação de restauração for concluída, o estado da versão da chave será desativado. É preciso ativar a chave para que ela possa ser usada.

Permissões do IAM obrigatórias

Para destruir uma versão de chave, o autor da chamada precisa da cloudkms.cryptoKeyVersions.destroy permissão IAM na chave, o keyring, o projeto, a pasta ou a organização.

Para restaurar uma versão de chave, o autor da chamada precisa da permissão cloudkms.cryptoKeyVersions.restore.

Ambas as permissões são concedidas ao papel de administrador do Cloud KMS (roles/cloudkms.admin).

Linha do tempo de exclusão

O Cloud KMS se compromete a excluir o material da chave do cliente de todos os serviços infraestruturas em até 45 dias após o tempo de destruição programado. Isso inclui remoção de dados de sistemas ativos e de backups do data center. Outro cliente os dados estão sujeitos às normas Cronograma de exclusão do Google Cloud de 180 dias.