Bir KMS anahtarı kullanarak düz metin bir veri anahtarı ve şifrelenmiş karşılığını oluşturur.
Kullanım notları
Genel bakış
GenerateDataKey; rastgele sayı üreteciyle bir veri anahtarı oluşturur, bu anahtarı Key Management Service (KMS) anahtarının ilk sürümüyle şifreler ve hem düz metin hem de şifreli metin veri anahtarını döndürür. Düz metin veri anahtarını KMS dışında verileri şifrelemek için kullanın. Şifrelemeden sonra şifreli metin veri anahtarını (CiphertextBlob), başlangıç vektörünü (Iv), şifreleme algoritmasını (Algorithm) ve ek kimlik doğrulama verilerini (Aad) saklayın. Verilerin şifresini daha sonra çözmek için bu dört değerin tamamı gerekir.
Anahtar teknik özellikleri ve şifreleme modları hakkında daha fazla bilgi için bkz. Anahtar türleri ve teknik özellikler.
Veri anahtarını şifrelerken yalnızca Galois/Counter Mode (GCM) desteklenir.
KMS, veri anahtarını üretmek için yüksek kaliteli bir rastgele sayı üreteci kullanır. Bu üreteç, veri anahtarını şifrelemek için kullanılan KMS anahtar malzemesinden bağımsız çalışır.
GenerateDataKey ile AdvanceGenerateDataKey arasındaki farklar
Hem GenerateDataKey hem de AdvanceGenerateDataKey bir veri anahtarı oluşturur. Aşağıdaki tabloda temel farklar açıklanmıştır:
| GenerateDataKey | AdvanceGenerateDataKey | |
|---|---|---|
| Kullanılan anahtar sürümü | İlk sürüm | Birincil sürüm |
| Desteklenen anahtar türü | Desteklenen herhangi bir anahtar | Yalnızca yazılım tabanlı anahtar yönetimi KMS örneklerindeki simetrik anahtarlar |
| Şifrelemeden sonra saklanması gereken değerler | CiphertextBlob, Iv, Algorithm, Aad | CiphertextBlob, Aad |
| Şifre çözme işlemleri | Decrypt veya AdvanceDecrypt | Yalnızca AdvanceDecrypt |
Otomatik rotasyonun etkin olduğu yazılım tabanlı anahtar yönetimi KMS örneğinde simetrik anahtar kullanıyorsanız GenerateDataKey yerine AdvanceGenerateDataKey'i çağırın. Bu yapılandırmada GenerateDataKey kullanımı anahtar rotasyonu özelliğinin çalışmasını durdurur. Daha fazla bilgi için bkz. Anahtar rotasyonunu yapılandırma.
İstek parametreleri
| Parametre | Tür | Zorunlu | Örnek | Açıklama |
|---|---|---|---|---|
| KeyId | string | Evet | key-hzz62f1cb66fa42qo**** | KMS anahtarının genel benzersiz ID'si. Anahtara bağlı bir takma ad da belirtebilirsiniz. |
| NumberOfBytes | int | Evet | 32 | Oluşturulacak veri anahtarının uzunluğu. |
| Aad | binary | Hayır | İkili veriler | Şifreleme sırasında veri anahtarını kimlik doğrulamak için kullanılan ek kimlik doğrulama verileri (Aad). Desteklenen tek şifreleme modu GCM'dir. Bu parametreyi belirtirseniz Decrypt işlemini çağırırken aynı değeri iletin. |
Yanıt parametreleri
| Parametre | Tür | Örnek | Açıklama |
|---|---|---|---|
| KeyId | string | key-hzz62f1cb66fa42qo**** | KMS anahtarının genel benzersiz ID'si. İstek bir takma ad belirttiyse bu alan, takma adın bağlı olduğu anahtarın ID'sini döndürür. |
| Iv | bytes | İkili veriler | Veri anahtarı şifrelenirken kullanılan başlangıç vektörü. Veri anahtarının şifresini çözmek için Decrypt işlemini çağırırken Iv için geçerli bir değer belirtmeniz gerekir. |
| Plaintext | bytes | Düz metin ikili veriler | Düz metin veri anahtarı. |
| CiphertextBlob | bytes | Şifreli metin ikili veriler | Şifreli metin veri anahtarı. |
| Algorithm | string | AES_GCM | Şifreleme algoritması. |
| RequestId | string | 475f1620-b9d3-4d35-b5c6-3fbdd941423d | İstek ID'si. |
Hata kodları
Hata kodlarının listesi için bkz. Hizmet hata kodları.