Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verschlüsseln und Entschlüsseln von AWS KMS Datenschlüsseln mit der AWS SDK for PHP Version 3
Datenschlüssel sind Verschlüsselungsschlüssel, mit denen Sie Daten verschlüsseln können. Dazu gehören große Datenmengen und andere Datenverschlüsselungsschlüssel.
Sie können die (AWS KMS) eines verwenden, AWS KMS key um Datenschlüssel zu generieren, zu AWS Key Management Serviceverschlüsseln und zu entschlüsseln.
In den nachstehenden Beispielen wird Folgendes veranschaulicht:
Der gesamte Beispielcode für die AWS SDK for PHP ist hier auf GitHub
Anmeldeinformationen
Bevor Sie den Beispielcode ausführen, konfigurieren Sie Ihre AWS Anmeldeinformationen, wie unter beschriebenAnmeldeinformationen. Importieren Sie dann die AWS SDK for PHP, wie unter beschriebenGrundlegende Verwendung.
Weitere Informationen zur Verwendung von AWS Key Management Service (AWS KMS) finden Sie im AWS KMS -Entwicklerhandbuch.
Encrypt
Die Operation Encrypt (Verschlüsseln) ist für die Verschlüsselung von Datenschlüsseln konzipiert, wird aber nicht häufig verwendet. Die GenerateDataKeyWithoutPlaintext Operationen GenerateDataKey und geben verschlüsselte Datenschlüssel zurück. Sie können die Encypt
Methode verwenden, wenn Sie verschlüsselte Daten in eine neue AWS Region verschieben und ihren Datenschlüssel mit einem KMS-Schlüssel in der neuen Region verschlüsseln möchten.
Importe
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Beispiel-Code
$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
Zur Entschlüsselung eines Datenschlüssels verwenden Sie die Produktion Decrypt.
Die ciphertextBlob
von Ihnen angegebene muss der Wert des CiphertextBlob
Feldes aus einer GenerateDataKey-, - oder -Verschlüsselungsantwort GenerateDataKeyWithoutPlaintextsein.
Importe
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Beispiel-Code
$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"; }
Neuverschlüsseln
Um einen verschlüsselten Datenschlüssel zu entschlüsseln und dann den Datenschlüssel sofort mit einem anderen KMS-Schlüssel erneut zu verschlüsseln, verwenden Sie die -ReEncryptOperation. Die Operationen werden vollständig serverseitig in AWS KMS ausgeführt, sodass Ihr Klartext niemals außerhalb von AWS KMS sichtbar ist.
Die ciphertextBlob
von Ihnen angegebene muss der Wert des CiphertextBlob
Feldes aus einer GenerateDataKey-, - GenerateDataKeyWithoutPlaintextoder -Verschlüsselungsantwort sein.
Importe
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Beispiel-Code
$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"; }