Bekerja dengan kunci menggunakan AWS KMS API dan AWS SDK for PHP Versi 3 - AWS SDK for PHP

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bekerja dengan kunci menggunakan AWS KMS API dan AWS SDK for PHP Versi 3

Sumber daya utama di AWS Key Management Service (AWS KMS) adalah AWS KMS keys. Anda dapat menggunakan kunci KMS untuk mengenkripsi data Anda.

Contoh berikut menunjukkan cara:

Semua kode contoh untuk AWS SDK for PHP tersedia di sini GitHub.

Kredensial

Sebelum menjalankan kode contoh, konfigurasikan AWS kredensil Anda, seperti yang dijelaskan dalam. Kredensial Kemudian imporAWS SDK for PHP, seperti yang dijelaskan dalamPenggunaan dasar.

Untuk informasi selengkapnya tentang menggunakan AWS Key Management Service (AWS KMS), lihat Panduan AWS KMS Pengembang.

Buat kunci KMS

Untuk membuat kunci KMS, gunakan CreateKeyoperasi.

Impor

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

Kode Sampel

$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-2' ]); //Creates a customer master key (CMK) in the caller's AWS account. $desc = "Key for protecting critical data"; try { $result = $KmsClient->createKey([ 'Description' => $desc, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Menghasilkan kunci data

Untuk menghasilkan kunci enkripsi data, gunakan GenerateDataKeyoperasi. Operasi ini mengembalikan plaintext dan salinan terenkripsi dari kunci data yang dibuatnya. Tentukan AWS KMS key di bawah mana untuk menghasilkan kunci data.

Impor

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

Kode Sampel

$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'; $keySpec = 'AES_256'; try { $result = $KmsClient->generateDataKey([ 'KeyId' => $keyId, 'KeySpec' => $keySpec, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Lihat kunci KMS

Untuk mendapatkan informasi terperinci tentang kunci KMS, termasuk Amazon Resource Name (ARN) kunci KMS dan status kunci, gunakan operasi. DescribeKey

DescribeKeytidak mendapatkan alias. Untuk mendapatkan alias, gunakan ListAliasesoperasi.

Impor

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

Kode Sampel

$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'; try { $result = $KmsClient->describeKey([ 'KeyId' => $keyId, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Dapatkan ID kunci dan ARN kunci dari kunci KMS

Untuk mendapatkan ID dan ARN dari kunci KMS, gunakan operasi. ListAliases

Impor

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

Kode Sampel

$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-2' ]); $limit = 10; try { $result = $KmsClient->listKeys([ 'Limit' => $limit, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Aktifkan kunci KMS

Untuk mengaktifkan kunci KMS yang dinonaktifkan, gunakan EnableKeyoperasi.

Impor

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

Kode Sampel

$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'; try { $result = $KmsClient->enableKey([ 'KeyId' => $keyId, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Nonaktifkan tombol KMS

Untuk menonaktifkan kunci KMS, gunakan DisableKeyoperasi. Menonaktifkan kunci KMS mencegahnya digunakan.

Impor

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

Kode Sampel

$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'; try { $result = $KmsClient->disableKey([ 'KeyId' => $keyId, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }