Habilita y habilita versiones de clave

En Cloud KMS, el material de clave criptográfica que usas para encriptar, desencriptar, firmar y verificar los datos se almacena en una versión de clave. Una clave tiene cero o más versiones de clave. Cuando rotas una clave, creas una versión de clave nueva.

En este documento, se muestra cómo inhabilitar una versión de clave. Durante el tiempo que se inhabilita una clave, no se puede acceder a los datos encriptados con la clave. Para acceder a los datos, puedes volver a habilitar la versión de clave.

A menos que se especifique lo contrario en el panel de estado del servicio, la inhabilitación de una versión de clave suele ser coherente en el plazo de un minuto. Habilitar una versión de clave es casi instantáneo. También puedes administrar el acceso a una versión de clave con Identity and Access Management (IAM). Las operaciones de IAM son coherentes en segundos. Para obtener más información, consulta Usa IAM.

También puedes destruir de manera permanente una versión de clave. Según las políticas de tu organización, es posible que debas inhabilitar una versión de clave antes de destruirla. Para obtener más información, consulta Controla la destrucción de las versiones de claves.

Inhabilitar una versión de clave

Puedes inhabilitar una versión de clave en el estado habilitado. Antes de inhabilitar una versión de clave, te recomendamos que verifiques si la clave aún está en uso. Puedes ver los detalles del seguimiento de uso de la clave para saber si protege recursos de CMEK. Si algún recurso está protegido por la versión de clave que deseas inhabilitar, vuelve a encriptarlo con otra versión de clave antes de inhabilitar la clave.

Console

  1. Ve a la página Administración de claves en la consola de Google Cloud .

    Ir a la página Administración de claves

  2. Haz clic en el nombre del llavero de claves que contiene la clave cuya versión se inhabilitará.

  3. Haz clic en la clave cuya versión de clave deseas inhabilitar.

  4. Marca la casilla junto a las versiones de clave que deseas inhabilitar.

  5. Haz clic en Inhabilitar en el encabezado.

  6. En el mensaje de confirmación, haz clic en Inhabilitar.

gcloud

Para usar Cloud KMS en la línea de comandos, primero instala o actualiza a la versión más reciente de Google Cloud CLI.

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

Reemplaza key-version por la versión de la clave que deseas inhabilitar. Reemplaza key por el nombre de la clave. Reemplaza key-ring por el nombre del llavero de claves en el que se encuentra la clave. Reemplaza location por la ubicación de Cloud KMS para el llavero de claves.

Para obtener información sobre todas las marcas y los valores posibles, ejecuta el comando con la marca --help.

C#

Para ejecutar este código, primero configura un entorno de desarrollo de C# e instala el SDK de C# para Cloud KMS.


using Google.Cloud.Kms.V1;
using Google.Protobuf.WellKnownTypes;

public class DisableKeyVersionSample
{
    public CryptoKeyVersion DisableKeyVersion(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.
        CryptoKeyVersion keyVersion = new CryptoKeyVersion
        {
            CryptoKeyVersionName = new CryptoKeyVersionName(projectId, locationId, keyRingId, keyId, keyVersionId),
            State = CryptoKeyVersion.Types.CryptoKeyVersionState.Disabled,
        };

        // Build the update mask.
        FieldMask fieldMask = new FieldMask
        {
            Paths = { "state" },
        };

        // Call the API.
        CryptoKeyVersion result = client.UpdateCryptoKeyVersion(keyVersion, fieldMask);

        // Return the result.
        return result;
    }
}

Go

Para ejecutar este código, primero configura un entorno de desarrollo de Go y, luego, instala el SDK de Go para Cloud KMS.

import (
	"context"
	"fmt"
	"io"

	kms "cloud.google.com/go/kms/apiv1"
	"cloud.google.com/go/kms/apiv1/kmspb"
	fieldmask "google.golang.org/genproto/protobuf/field_mask"
)

// disableKeyVersion disables the specified key version on Cloud KMS.
func disableKeyVersion(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.UpdateCryptoKeyVersionRequest{
		CryptoKeyVersion: &kmspb.CryptoKeyVersion{
			Name:  name,
			State: kmspb.CryptoKeyVersion_DISABLED,
		},
		UpdateMask: &fieldmask.FieldMask{
			Paths: []string{"state"},
		},
	}

	// Call the API.
	result, err := client.UpdateCryptoKeyVersion(ctx, req)
	if