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:
-
Buat daftar nama-nama kebijakan utama yang menggunakan ListKeyPolicies.
-
Dapatkan kebijakan utama menggunakan GetKeyPolicy.
-
Tetapkan kebijakan kunci menggunakan PutKeyPolicy.
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"; }