Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan GenerateDataKey
dengan AWS SDK atau CLI
Contoh kode berikut menunjukkan cara menggunakanGenerateDataKey
.
- CLI
-
- AWS CLI
-
Contoh 1: Untuk menghasilkan kunci data simetris 256-bit
generate-data-key
Contoh berikut meminta kunci data simetris 256-bit untuk digunakan di luar. AWS Perintah mengembalikan kunci data plaintext untuk segera digunakan dan dihapus, dan salinan kunci data yang dienkripsi di bawah kunci yang ditentukan. KMS Anda dapat dengan aman menyimpan kunci data terenkripsi dengan data terenkripsi.Untuk meminta kunci data 256-bit, gunakan
key-spec
parameter dengan nilai.AES_256
Untuk meminta kunci data 128-bit, gunakankey-spec
parameter dengan nilai.AES_128
Untuk semua panjang kunci data lainnya, gunakannumber-of-bytes
parameter.KMSKunci yang Anda tentukan harus berupa KMS kunci enkripsi simetris, yaitu KMS kunci dengan nilai spesifikasi kunci _. SYMMETRIC DEFAULT
aws kms generate-data-key \ --key-id
alias/ExampleAlias
\ --key-specAES_256
Output:
{ "Plaintext": "VdzKNHGzUAzJeRBVY+uUmofUGGiDzyB3+i9fVkh3piw=", "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogLqPWZconQhwHAIBEIA7d9AC7GeJJM34njQvg4Wf1d5sw0NIo1MrBqZa+YdhV8MrkBQPeac0ReRVNDt9qleAt+SHgIRF8P0H+7U=" }
Plaintext
(Kunci data teks biasa) danCiphertextBlob
(kunci data terenkripsi) dikembalikan dalam format yang disandikan base64.Untuk informasi selengkapnya, lihat Kunci data < https://docs.aws.amazon.com/kms/ latest/developerguide/concepts .html #data -keys di Panduan Pengembang Layanan Manajemen AWS Kunci.
Contoh 2: Untuk menghasilkan kunci data simetris 512-bit
generate-data-key
Contoh berikut meminta kunci data simetris 512-bit untuk enkripsi dan dekripsi. Perintah mengembalikan kunci data plaintext untuk segera digunakan dan dihapus, dan salinan kunci data yang dienkripsi di bawah kunci yang ditentukan. KMS Anda dapat dengan aman menyimpan kunci data terenkripsi dengan data terenkripsi.Untuk meminta panjang kunci selain 128 atau 256 bit, gunakan
number-of-bytes
parameter. Untuk meminta kunci data 512-bit, contoh berikut menggunakannumber-of-bytes
parameter dengan nilai 64 (byte).KMSKunci yang Anda tentukan harus berupa KMS kunci enkripsi simetris, yaitu KMS kunci dengan nilai spesifikasi kunci _. SYMMETRIC DEFAULT
NOTE: Nilai-nilai dalam output dari contoh ini terpotong untuk tampilan.
aws kms generate-data-key \ --key-id
1234abcd-12ab-34cd-56ef-1234567890ab
\ --number-of-bytes64
Output:
{ "CiphertextBlob": "AQIBAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAEnX/QQNmMwDfg2korNMEc8AAACaDCCAmQGCSqGSIb3DQEHBqCCAlUwggJRAgEAMIICSgYJKoZ...", "Plaintext": "ty8Lr0Bk6OF07M2BWt6qbFdNB+G00ZLtf5MSEb4al3R2UKWGOp06njAwy2n72VRm2m7z/Pm9Wpbvttz6a4lSo9hgPvKhZ5y6RTm4OovEXiVfBveyX3DQxDzRSwbKDPk/...", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }
Plaintext
(Kunci data teks biasa) danCiphertextBlob
(kunci data terenkripsi) dikembalikan dalam format yang disandikan base64.Untuk informasi selengkapnya, lihat Kunci data < https://docs.aws.amazon.com/kms/ latest/developerguide/concepts .html #data -keys di Panduan Pengembang Layanan Manajemen AWS Kunci.
-
Untuk API detailnya, lihat GenerateDataKey
di Referensi AWS CLI Perintah.
-
- 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 KeyManager: def __init__(self, kms_client): self.kms_client = kms_client self.created_keys = [] @classmethod def from_client(cls) -> "KeyManager": """ Creates a KeyManager instance with a default KMS client. :return: An instance of KeyManager initialized with the default KMS client. """ kms_client = boto3.client("kms") return cls(kms_client) def generate_data_key(self, key_id): """ Generates a symmetric data key that can be used for client-side encryption. """ answer = input( f"Do you want to generate a symmetric data key from key {key_id} (y/n)? " ) if answer.lower() == "y": try: data_key = self.kms_client.generate_data_key( KeyId=key_id, KeySpec="AES_256" ) except ClientError as err: logger.error( "Couldn't generate a data key for key %s. Here's why: %s", key_id, err.response["Error"]["Message"], ) else: pprint(data_key)
-
Untuk API detailnya, lihat GenerateDataKey AWSSDKReferensi Python (Boto3). API
-
- Rust
-
- SDKuntuk Rust
-
catatan
Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS
. async fn make_key(client: &Client, key: &str) -> Result<(), Error> { let resp = client .generate_data_key() .key_id(key) .key_spec(DataKeySpec::Aes256) .send() .await?; // Did we get an encrypted blob? let blob = resp.ciphertext_blob.expect("Could not get encrypted text"); let bytes = blob.as_ref(); let s = base64::encode(bytes); println!(); println!("Data key:"); println!("{}", s); Ok(()) }
-
Untuk API detailnya, lihat GenerateDataKey AWS
SDKuntuk API referensi Rust.
-
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.