GenerateDataKey#

Description#

Генерирует случайный ключ шифрования для использования вне KMS. Метод возвращает копию ключа в открытом виде и копию ключа, зашифрованную ключом KMS.

Request Parameters#

Необходимые параметры#

  • KeyId — Идентификатор ключа KMS или имя алиаса с префиксом alias/.

    • Тип: String

    • Необходимо: Да

Опциональные параметры#

  • EncryptionContext — Контекст шифрования, используемый как дополнительные аутентифицированные данные (AAD).

    • Тип: Map of strings

    • Необходимо: Нет

    • Ограничения: Суммарная длина всех строк в кодировке UTF-8 не должна превышать 6144 байт

  • KeySpec — Тип ключа. Используйте AES_128, чтобы сгенерировать 128-разрядный ключ, или AES_256, чтобы сгенерировать 256-разрядный ключ.

    • Тип: String

    • Необходимо: Да, если не указан NumberOfBytes

    • Возможные значения: AES_128 | AES_256

  • NumberOfBytes — Длина ключа в байтах.

    • Тип: String

    • Необходимо: Да, если не указан KeySpec

    • Диапазон: От 1 до 1024

Response Elements#

  • CiphertextBlob — Копия ключа, зашифрованная ключом KMS.

    • Тип: Base64-encoded binary data

    • Ограничение длины: От 1 до 6144 байт

  • Plaintext — Копия ключа в открытом виде.

    • Тип: Base64-encoded binary data

    • Ограничение длины: От 1 до 4096 байт

Examples#

Пример запроса#

POST / HTTP/1.1
Host: kms.<region>.<domain>
Content-Length: <PayloadSizeBytes>
Content-Type: application/x-amz-json-1.1
Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature>
X-Amz-Date: <Date>
X-Amz-Target: TrentService.GenerateDataKey

{
    "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeySpec": "AES_256"
}

Пример ответа#

HTTP/1.1 200 OK
Content-Type: application/x-amz-json-1.1

{
    "CiphertextBlob": "AAAAAM4+iMkZakUYoOjQVwv/+RaNerguTbNtiK78FmF8u+P9u6gNwryNN5JSqsv3meTKbhXnO6vi7OW028t4wbFW7Qbr5FvWRLPtlTSrLqcpZO1R8gB+7JPYMdW+/ndH2BiCMoYwOmjVOiXN/CclpQ==",
    "Plaintext": "0PBAnZfnI00Q+GGesjC0AXg6orjmHUMirVhh0ahYyqY="
}