Cloud HSM

En este documento se ofrece una descripción general de Cloud HSM y se explica cómo crear y usar claves de cifrado protegidas por HSM en Cloud Key Management Service.

¿Qué es Cloud HSM?

Cloud HSM es un servicio de módulo de seguridad de hardware (HSM) alojado en la nube que te permite alojar claves de encriptado y llevar a cabo operaciones criptográficas en un clúster formado por HSMs con certificación FIPS 140-2 de nivel 3. Google se encarga de gestionar el clúster de HSM, de modo que no tienes que preocuparte por los clústeres, el escalado o los parches. Cloud HSM utiliza Cloud KMS como frontend, por lo que puedes aprovechar todas las ventajas y funciones que ofrece Cloud KMS.

Crear un conjunto de claves

Cuando creas una clave, la añades a un conjunto de claves en una Google Cloud ubicación determinada. Puedes crear un nuevo llavero o usar uno que ya tengas. En este tema, creará un conjunto de claves y le añadirá una clave.

Crea un conjunto de claves en una Google Cloud ubicación que admita Cloud HSM.

Consola

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

    Ir a Administración de claves

  2. Haz clic en Crear conjunto de claves.

  3. En Nombre del conjunto de claves, introduce el nombre que quieras darle al conjunto de claves.

  4. En Ubicación del conjunto de claves, selecciona una ubicación como "us-east1".

  5. Haz clic en Crear.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

  2. En tu entorno, ejecuta el comando gcloud kms keyrings create:

    gcloud kms keyrings create KEY_RING \
        --location LOCATION
    

    Haz los cambios siguientes:

    • KEY_RING: el nombre del conjunto de claves que contiene la clave.
    • LOCATION: la ubicación de Cloud KMS del conjunto de claves.

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

  3. C#

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

    
    using Google.Api.Gax.ResourceNames;
    using Google.Cloud.Kms.V1;
    
    public class CreateKeyRingSample
    {
        public KeyRing CreateKeyRing(
          string projectId = "my-project", string locationId = "us-east1",
          string id = "my-key-ring")
        {
            // Create the client.
            KeyManagementServiceClient client = KeyManagementServiceClient.Create();
    
            // Build the parent location name.
            LocationName locationName = new LocationName(projectId, locationId);
    
            // Build the key ring.
            KeyRing keyRing = new KeyRing { };
    
            // Call the API.
            KeyRing result = client.CreateKeyRing(locationName, id, keyRing);
    
            // Return the result.
            return result;
        }
    }

    Go

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Go e instalar el SDK de Go de Cloud KMS.

    import (
    	"context"
    	"fmt"
    	"io"
    
    	kms "cloud.google.com/go/kms/apiv1"
    	"cloud.google.com/go/kms/apiv1/kmspb"
    )
    
    // createKeyRing creates a new ring to store keys on KMS.
    func createKeyRing(w io.Writer, parent, id string) error {
    	// parent := "projects/PROJECT_ID/locations/global"
    	// id := "my-key-ring"
    
    	// 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.CreateKeyRingRequest{
    		Parent:    parent,
    		KeyRingId: id,
    	}
    
    	// Call the API.
    	result, err := client.CreateKeyRing(ctx, req)
    	if err != nil {
    		return fmt.Errorf("failed to create key ring: %w", err)
    	}
    	fmt.Fprintf(w, "Created key ring: %s\n", result.Name)
    	return nil
    }
    

    Java

    Para ejecutar este código, primero debes configurar un entorno de desarrollo de Java e instalar el SDK de Java de Cloud KMS.

    import com.google.cloud.kms.v1.KeyManagementServiceClient;
    import com.google.cloud.kms.v1.KeyRing;
    import com.google.cloud.kms.v1.LocationName;
    import java.io.IOException;
    
    public class CreateKeyRing {
    
      public void createKeyRing() throws IOException {
        // TODO(developer): Replace these variables before running the sample.
        String projectId = "your-project-id";
        String locationId = "us-east1";
        String id = "my-asymmetric-signing-key";
        createKeyRing(projectId, locationId, id);
      }
    
      // Create a new key ring.
      public void createKeyRing(String projectId, String locationId, String id) 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 =