Crittografia e decriptazione dei dati con una chiave simmetrica

Questa pagina mostra come utilizzare Cloud Key Management Service (Cloud KMS) per eseguire le seguenti operazioni con chiavi simmetriche:

  • Cripta testo o contenuti binari (testo non criptato) utilizzando una chiave Cloud KMS.
  • Decripta il testo cifrato criptato con una chiave Cloud KMS.

Se vuoi utilizzare una chiave asimmetrica per la crittografia, consulta Crittografia e decriptazione dei dati con una chiave asimmetrica. Per saperne di più sulla crittografia simmetrica non elaborata, consulta Crittografia simmetrica non elaborata.

Prima di iniziare

  1. Crea un keyring e crea una chiave.

  2. Assicurati che l'utente che chiama i metodi di crittografia e decrittografia disponga delle autorizzazioni cloudkms.cryptoKeyVersions.useToEncrypt e cloudkms.cryptoKeyVersions.useToDecrypt sulla chiave.

    Un modo per consentire a un utente di eseguire la crittografia o la decriptazione è aggiungerlo ai ruoli IAM roles/cloudkms.cryptoKeyEncrypter, roles/cloudkms.cryptoKeyDecrypter o roles/cloudkms.cryptoKeyEncrypterDecrypter per quella chiave. Il roles/cloudkms.admin ruolo non fornisce queste due autorizzazioni. Per ulteriori informazioni, consulta Autorizzazioni e ruoli.

Cripta

gcloud

Per utilizzare Cloud KMS dalla riga di comando, devi prima installare o eseguire l'upgrade all'ultima versione di Google Cloud CLI.

gcloud kms encrypt \
    --key KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION  \
    --plaintext-file FILE_TO_ENCRYPT \
    --ciphertext-file ENCRYPTED_OUTPUT

Sostituisci quanto segue:

  • KEY_NAME: il nome della chiave che vuoi utilizzare per la crittografia.
  • KEY_RING: il nome delle chiavi automatizzate che contengono la chiave.
  • LOCATION: la posizione di Cloud KMS che contiene l'anello di chiavi.
  • FILE_TO_ENCRYPT: il percorso del file che vuoi criptare.
  • ENCRYPTED_OUTPUT: il percorso in cui vuoi salvare l'output criptato.

Per informazioni su tutti i flag e i valori possibili, esegui il comando con il flag --help.

C#

Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo C# e installare l'SDK C# Cloud KMS.


using Google.Cloud.Kms.V1;
using Google.Protobuf;
using System.Text;

public class EncryptSymmetricSample
{
    public byte[] EncryptSymmetric(
      string projectId = "my-project", string locationId = "us-east1", string keyRingId = "my-key-ring", string keyId = "my-key",
      string message = "Sample message")
    {
        // Create the client.
        KeyManagementServiceClient client = KeyManagementServiceClient.Create();

        // Build the key name.
        CryptoKeyName keyName = new CryptoKeyName(projectId, locationId, keyRingId, keyId);

        // Convert the message into bytes. Cryptographic plaintexts and
        // ciphertexts are always byte arrays.
        byte[] plaintext = Encoding.UTF8.GetBytes(message);

        // Call the API.