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:
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.
ciphertextBlob
Quello 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"; }