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 decrittografiaAWS KMSChiavi dati utilizzando ilAWS SDK for PHPVersione 3
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 unaAWS Key Management Service(AWS KMS)customer master key (CMK)per generare, crittografare e decrittare le chiavi di dati. Tuttavia, AWS KMS non consente di memorizzare, gestire o monitorare le tue chiavi di dati o eseguire operazioni di crittografia con le chiavi di dati. Utilizzare e gestire le chiavi dei dati all'esterno di AWS KMS.
Gli esempi seguenti mostrano come:
La versione integrale del codice di esempio di AWS SDK for PHP è disponibile qui su GitHub
Credenziali
Prima di eseguire il codice di esempio, configura ilAWScredenziali come descritto inImpostazione delle credenziali . Quindi importa il fileAWS SDK for PHP, come descritto inUtilizzo di base.
Per ulteriori informazioni sull'utilizzo diAWS Key Management Service(AWS KMS), consulta laAWS KMSGuida per gli sviluppatori.
Crittografa
L'operazione Encrypt è progettata per crittografare le chiavi dei dati, ma non viene utilizzata di frequente. Le operazioni GenerateDataKey e GenerateDataKeyWithoutPlaintext restituiscono chiavi di dati crittografate. È possibile utilizzare ilEncypt
metodo quando si spostano dati crittografati su un nuovoAWSRegion e desidera crittografare la chiave di dati con una CMK nella nuova regione.
Importazioni
require 'vendor/autoload.php'; use Aws\Kms\KmsClient; 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.
Il valore ciphertextBlob
specificato deve essere il valore del campo CiphertextBlob
da una risposta GenerateDataKey, GenerateDataKeyWithoutPlaintext o Encrypt.
Importazioni
require 'vendor/autoload.php'; use Aws\Kms\KmsClient; 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 di dati crittografata e quindi immediatamente ricrittografare la chiave di dati con un'altra chiave master del cliente (CMK), 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 valore ciphertextBlob
specificato deve essere il valore del campo CiphertextBlob
da una risposta GenerateDataKey, GenerateDataKeyWithoutPlaintext o Encrypt.
Importazioni
require 'vendor/autoload.php'; use Aws\Kms\KmsClient; 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"; }