Bekerja dengan kebijakan AWS KMS utama menggunakan 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 kebijakan AWS KMS utama menggunakan AWS SDK for PHP Versi 3

Saat Anda membuat AWS KMS key, Anda menentukan siapa yang dapat menggunakan dan mengelola kunci KMS itu. Izin ini disertakan dalam dokumen yang disebut kebijakan kunci. Anda dapat menggunakan kebijakan kunci untuk menambah, menghapus, atau mengubah izin kapan saja untuk kunci KMS yang dikelola pelanggan, tetapi Anda tidak dapat mengedit kebijakan kunci untuk kunci KMS AWS terkelola. Untuk informasi selengkapnya, lihat Otentikasi dan kontrol akses untuk AWS KMS.

Contoh berikut menunjukkan cara:

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

Kredensial

Sebelum menjalankan kode contoh, konfigurasikan AWS kredenal 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.

Daftar semua kebijakan utama

Untuk mendapatkan nama kebijakan kunci untuk kunci KMS, gunakan ListKeyPolicies operasi.

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

Mengambil kebijakan utama

Untuk mendapatkan kebijakan kunci untuk kunci KMS, gunakan GetKeyPolicy operasi.

GetKeyPolicy memerlukan nama kebijakan. Kecuali Anda membuat kebijakan kunci saat membuat kunci KMS, satu-satunya nama kebijakan yang valid adalah default. Pelajari selengkapnya tentang kebijakan kunci default di Panduan AWS Key Management Service Pengembang.

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

Menetapkan kebijakan utama

Untuk membuat atau mengubah kebijakan kunci untuk kunci KMS, gunakan PutKeyPolicy operasi.

PutKeyPolicy memerlukan nama kebijakan. Kecuali Anda membuat Kebijakan Kunci saat membuat kunci KMS, satu-satunya nama kebijakan yang valid adalah default. Pelajari selengkapnya tentang kebijakan kunci default di Panduan AWS Key Management Service Pengembang.

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'; $policyName = "default"; try { $result = $KmsClient->putKeyPolicy([ 'KeyId' => $keyId, 'PolicyName' => $policyName, 'Policy' => '{ "Version": "2012-10-17", "Id": "custom-policy-2016-12-07", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/root" }, "Action": [ "kms:*" ], "Resource": "*" }, { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": [ "kms:Encrypt*", "kms:GenerateDataKey*", "kms:Decrypt*", "kms:DescribeKey*", "kms:ReEncrypt*" ], "Resource": "*" } ] } ' ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }