Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Chiffrement et déchiffrement des clés de AWS KMS données à l'aide de la version 3 AWS SDK for PHP
Les clés de données sont des clés de chiffrement que vous pouvez utiliser pour chiffrer des données, y compris de grandes quantités de données et d'autres clés de chiffrement des données.
Vous pouvez utiliser AWS Key Management Service an's (AWS KMS) AWS KMS keypour générer, chiffrer et déchiffrer des clés de données.
Les exemples suivants montrent comment :
Tous les exemples de code pour le AWS SDK for PHP sont disponibles ici GitHub
Informations d’identification
Avant d'exécuter l'exemple de code, configurez vos AWS informations d'identification, comme décrit dansInformations d’identification. Importez ensuite leAWS SDK for PHP, comme décrit dansUtilisation de base.
Pour plus d'informations sur l'utilisation de AWS Key Management Service (AWS KMS), consultez le manuel du AWS KMS développeur.
Encrypt
L'opération Encrypt est conçue pour chiffrer des clés de données, mais elle n'est pas fréquemment utilisée. Les GenerateDataKeyWithoutPlaintextopérations GenerateDataKeyet renvoient des clés de données chiffrées. Vous pouvez utiliser Encypt
cette méthode lorsque vous déplacez des données chiffrées vers une nouvelle AWS région et que vous souhaitez chiffrer leur clé de données à l'aide d'une clé KMS dans la nouvelle région.
Importations
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Exemple de 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
Pour déchiffrer une clé de données, utilisez l'opération Decrypt.
La valeur ciphertextBlob
que vous spécifiez doit être la valeur du CiphertextBlob
champ provenant d'une réponse GenerateDataKeyGenerateDataKeyWithoutPlaintext, ou Encrypt.
Importations
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Exemple de 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"; }
Rechiffrer
Pour déchiffrer une clé de données chiffrée, puis la rechiffrer immédiatement sous une autre clé KMS, utilisez l'opération. ReEncrypt Les opérations sont effectuées entièrement côté serveur dans AWS KMS, pour que votre texte brut ne soit jamais exposé en dehors d'AWS KMS.
La valeur ciphertextBlob
que vous spécifiez doit être la valeur du CiphertextBlob
champ provenant d'une réponse GenerateDataKeyGenerateDataKeyWithoutPlaintext, ou Encrypt.
Importations
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Exemple de 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"; }