Crittografia e decrittografia delle chiavi di AWS KMS dati utilizzando la versione 3 AWS SDK for PHP - AWS SDK for PHP

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crittografia e decrittografia delle chiavi di AWS KMS dati utilizzando la versione 3 AWS SDK for PHP

Le chiavi di dati sono chiavi di crittografia che possono essere usate per crittografare i dati, incluso grandi quantità di dati e altre chiavi di crittografia.

È possibile utilizzare AWS Key Management Service an's (AWS KMS) AWS KMS keyper generare, crittografare e decrittografare le chiavi di dati.

Gli esempi seguenti mostrano come:

  • Crittografare una chiave di dati utilizzando Encrypt.

  • Decrittografare una chiave di dati utilizzando Decrypt.

  • Crittografa nuovamente una chiave dati con una nuova chiave KMS utilizzando. ReEncrypt

Tutto il codice di esempio per il AWS SDK for PHP è disponibile qui. GitHub

Credenziali

Prima di eseguire il codice di esempio, configurate AWS le vostre credenziali, come descritto inCredenziali. Quindi importate il fileAWS SDK for PHP, come descritto inUtilizzo di base.

Per ulteriori informazioni sull'utilizzo di AWS Key Management Service (AWS KMS), consulta la Guida per gli AWS KMS sviluppatori.

Crittografa

L'operazione Encrypt è progettata per crittografare le chiavi dei dati, ma non viene utilizzata di frequente. Le GenerateDataKeyWithoutPlaintextoperazioni GenerateDataKeyand restituiscono chiavi di dati crittografate. È possibile utilizzare il Encypt metodo quando si spostano dati crittografati in una nuova AWS regione e si desidera crittografare la relativa chiave dati utilizzando una chiave KMS nella nuova regione.

Importazioni

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Codice di esempio

$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-2' ]); $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $message = pack('c*', 1, 2, 3, 4, 5, 6, 7, 8, 9, 0); try { $result = $KmsClient->encrypt([ 'KeyId' => $keyId, 'Plaintext' => $message, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Decrypt

Per decrittografare una chiave di dati, utilizza l'operazione Decrypt.

ciphertextBlobQuello che specifichi deve essere il valore del CiphertextBlob campo proveniente da una risposta GenerateDataKeyo Encrypt. GenerateDataKeyWithoutPlaintext

Importazioni

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Codice di esempio

$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-2' ]); $ciphertext = 'Place your cipher text blob here'; try { $result = $KmsClient->decrypt([ 'CiphertextBlob' => $ciphertext, ]); $plaintext = $result['Plaintext']; var_dump($plaintext); } catch (AwsException $e) { // Output error message if fails echo $e->getMessage(); echo "\n"; }

Ricrittografa

Per decrittografare una chiave dati crittografata e quindi ricrittografare immediatamente la chiave dati con una chiave KMS diversa, utilizza l'operazione. ReEncrypt Le operazioni vengono eseguite interamente su lato server all'interno di AWS KMS, in modo che il testo normale non dovrà mai essere esposto all'esterno di AWS KMS.

Il ciphertextBlob valore specificato deve essere il valore del CiphertextBlob campo di una GenerateDataKeyrisposta o Encrypt. GenerateDataKeyWithoutPlaintext

Importazioni

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Codice di esempio

$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-2' ]); $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $ciphertextBlob = 'Place your cipher text blob here'; try { $result = $KmsClient->reEncrypt([ 'CiphertextBlob' => $ciphertextBlob, 'DestinationKeyId' => $keyId, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }