Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan PutKeyPolicy
dengan AWS SDK atau CLI
Contoh kode berikut menunjukkan cara menggunakanPutKeyPolicy
.
- CLI
-
- AWS CLI
-
Untuk mengubah kebijakan kunci untuk KMS kunci
put-key-policy
Contoh berikut mengubah kebijakan kunci untuk kunci yang dikelola pelanggan.Untuk memulai, buat kebijakan kunci dan simpan dalam JSON file lokal. Dalam contoh ini, file tersebut adalah
key_policy.json
. Anda juga dapat menentukan kebijakan kunci sebagai nilai stringpolicy
parameter.Pernyataan pertama dalam kebijakan kunci ini memberikan izin AWS akun untuk menggunakan IAM kebijakan untuk mengontrol akses ke KMS kunci. Pernyataan kedua memberikan izin
test-user
pengguna untuk menjalankanlist-keys
perintahdescribe-key
dan pada KMS kunci.Isi dari
key_policy.json
:{ "Version" : "2012-10-17", "Id" : "key-default-1", "Statement" : [ { "Sid" : "Enable IAM User Permissions", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" }, { "Sid" : "Allow Use of Key", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:user/test-user" }, "Action" : [ "kms:DescribeKey", "kms:ListKeys" ], "Resource" : "*" } ] }
Untuk mengidentifikasi KMS kunci, contoh ini menggunakan ID kunci, tetapi Anda juga dapat menggunakan kunciARN. Untuk menentukan kebijakan kunci, perintah menggunakan
policy
parameter. Untuk menunjukkan bahwa kebijakan ada dalam file, kebijakan tersebut menggunakanfile://
awalan yang diperlukan. Awalan ini diperlukan untuk mengidentifikasi file pada semua sistem operasi yang didukung. Akhirnya, perintah menggunakanpolicy-name
parameter dengan nilaidefault
. Jika tidak ada nama kebijakan yang ditentukan, nilai defaultnya adalahdefault
. Satu-satunya nilai yang valid adalahdefault
.aws kms put-key-policy \ --policy-name
default
\ --key-id1234abcd-12ab-34cd-56ef-1234567890ab
\ --policyfile://key_policy.json
Perintah ini tidak menghasilkan output apa pun. Untuk memverifikasi bahwa perintah itu efektif, gunakan
get-key-policy
perintah. Contoh perintah berikut mendapatkan kebijakan kunci untuk KMS kunci yang sama.output
Parameter dengan nilaitext
mengembalikan format teks yang mudah dibaca.aws kms get-key-policy \ --policy-name
default
\ --key-id1234abcd-12ab-34cd-56ef-1234567890ab
\ --outputtext
Output:
{ "Version" : "2012-10-17", "Id" : "key-default-1", "Statement" : [ { "Sid" : "Enable IAM User Permissions", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" }, { "Sid" : "Allow Use of Key", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:user/test-user" }, "Action" : [ "kms:Describe", "kms:List" ], "Resource" : "*" } ] }
Untuk informasi selengkapnya, lihat Mengubah Kebijakan Utama di Panduan Pengembang Layanan Manajemen AWS Kunci.
-
Untuk API detailnya, lihat PutKeyPolicy
di Referensi AWS CLI Perintah.
-
- PHP
-
- SDKuntuk PHP
-
catatan
Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS
. /*** * @param string $keyId * @param string $policy * @return void */ public function putKeyPolicy(string $keyId, string $policy) { try { $this->client->putKeyPolicy([ 'KeyId' => $keyId, 'Policy' => $policy, ]); }catch(KmsException $caught){ echo "There was a problem replacing the key policy: {$caught->getAwsErrorMessage()}\n"; throw $caught; } }
-
Untuk API detailnya, lihat PutKeyPolicydi AWS SDK for PHP APIReferensi.
-
- Python
-
- SDKuntuk Python (Boto3)
-
catatan
Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS
. class KeyPolicy: def __init__(self, kms_client): self.kms_client = kms_client @classmethod def from_client(cls) -> "KeyPolicy": """ Creates a KeyPolicy instance with a default KMS client. :return: An instance of KeyPolicy initialized with the default KMS client. """ kms_client = boto3.client("kms") return cls(kms_client) def set_policy(self, key_id: str, policy: dict[str, any]) -> None: """ Sets the policy of a key. Setting a policy entirely overwrites the existing policy, so care is taken to add a statement to the existing list of statements rather than simply writing a new policy. :param key_id: The ARN or ID of the key to set the policy to. :param policy: The existing policy of the key. :return: None """ principal = input( "Enter the ARN of an IAM role to set as the principal on the policy: " ) if key_id != "" and principal != "": # The updated policy replaces the existing policy. Add a new statement to # the list along with the original policy statements. policy["Statement"].append( { "Sid": "Allow access for ExampleRole", "Effect": "Allow", "Principal": {"AWS": principal}, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*", "kms:Decrypt", "kms:DescribeKey", "kms:ReEncrypt*", ], "Resource": "*", } ) try: self.kms_client.put_key_policy(KeyId=key_id, Policy=json.dumps(policy)) except ClientError as err: logger.error( "Couldn't set policy for key %s. Here's why %s", key_id, err.response["Error"]["Message"], ) raise else: print(f"Set policy for key {key_id}.") else: print("Skipping set policy demo.")
-
Untuk API detailnya, lihat PutKeyPolicy AWSSDKReferensi Python (Boto3). API
-
Untuk daftar lengkap panduan AWS SDK pengembang dan contoh kode, lihatMenggunakan layanan ini dengan AWS SDK. Topik ini juga mencakup informasi tentang memulai dan detail tentang SDK versi sebelumnya.