generate-data-key-pair
Описание
Возвращает уникальную асимметричную пару данных ключей для использования вне KMS. Данный оператор возвращает открытый ключ в виде простого текста, закрытый ключ в виде простого текста и копию закрытого ключа, зашифрованного с использованием заданного симметричного ключа шифрования KMS. Вы можете использовать пару данных ключей для выполнения асимметричной криптографии и реализации цифровых подписей вне KMS. Байты в ключах случайны; они не связаны с вызывающей стороной или с ключом KMS, используемым для шифрования закрытого ключа.
Вы можете использовать открытый ключ, который GenerateDataKeyPair возвращает, для шифрования данных или проверки подписи вне KMS. Затем сохраните зашифрованный закрытый ключ вместе с данными. Когда вы будете готовы расшифровать данные или подписать сообщение, вы можете использовать операцию Decrypt для расшифровки зашифрованного закрытого ключа.
Для генерации пары данных ключей необходимо указать симметричный ключ шифрования KMS для шифрования закрытого ключа в паре данных ключей. Вы не можете использовать асимметричный ключ KMS или ключ KMS в пользовательском хранилище ключей. Для получения типа и источника вашего ключа KMS используйте операцию DescribeKey.
Используйте параметр KeyPairSpec, чтобы выбрать пару данных ключей RSA или эллиптической кривой (ECC). В регионах Китая вы также можете выбрать пару данных ключей SM2. KMS рекомендует использовать пары ключей ECC для подписи и использовать пары ключей RSA и SM2 для шифрования или подписи, но не для обоих. Однако KMS не может вводить никаких ограничений на использование пар данных ключей вне KMS.
Если вы используете пару данных ключей для шифрования данных или для любой операции, где вам не нужен закрытый ключ сразу, рассмотрите использование операции GenerateDataKeyPairWithoutPlaintext. GenerateDataKeyPairWithoutPlaintext возвращает открытый ключ в виде простого текста и зашифрованный закрытый ключ, но опускает закрытый ключ в виде простого текста, который нужен только для расшифровки зашифрованного текста или подписи сообщения. Позже, когда вам нужно расшифровать данные или подписать сообщение, используйте операцию Decrypt для расшифровки зашифрованного закрытого ключа в паре данных ключей.
GenerateDataKeyPair возвращает уникальную пару данных ключей для каждого запроса. Байты в ключах случайны; они не связаны с вызывающей стороной или с ключом KMS, используемым для шифрования закрытого ключа. Открытый ключ является DER-кодированным X.509 SubjectPublicKeyInfo, как указано в RFC 5280. Закрытый ключ является DER-кодированным PKCS8 PrivateKeyInfo, как указано в RFC 5958.
GenerateDataKeyPair также поддерживает Amazon Web Services Nitro Enclaves, которые предоставляют изолированную вычислительную среду в Amazon EC2. Чтобы вызвать GenerateDataKeyPair для Amazon Web Services Nitro enclave, используйте Amazon Web Services Nitro Enclaves SDK или любой Amazon Web Services SDK. Используйте параметр Recipient для предоставления документа аутентификации для enclave. GenerateDataKeyPair возвращает открытый ключ данных и копию закрытого ключа данных, зашифрованного с использованием указанного ключа KMS, как обычно. Но вместо копии закрытого ключа данных в виде простого текста (PrivateKeyPlaintext), ответ содержит копию закрытого ключа данных, зашифрованного с помощью открытого ключа из документа аутентификации (CiphertextForRecipient). Сведения об взаимодействии KMS и Amazon Web Services Nitro Enclaves см. в разделе How Amazon Web Services Nitro Enclaves uses KMS в руководстве разработчика Key Management Service.
Вы можете использовать необязательный контекст шифрования, чтобы добавить дополнительную безопасность к операции шифрования. Если вы укажете EncryptionContext, вы должны указать тот же контекст шифрования (точная совпадение с учетом регистра) при расшифровке зашифрованных данных. В противном случае запрос на расшифровку завершится с ошибкой InvalidCiphertextException. Дополнительную информацию см. в разделе Encryption Context в руководстве разработчика Key Management Service.
Ключ KMS, который вы используете для этой операции, должен находиться в совместимом состоянии ключа. Подробности см. в разделе Состояния ключей ключей KMS в руководстве разработчика Key Management Service.
Использование между учетными записями : Да. Чтобы выполнить эту операцию с ключом KMS в другой учетной записи Amazon Web Services, укажите ARN ключа или ARN псевдонима в значении параметра KeyId.
Необходимые разрешения : kms:GenerateDataKeyPair (политика ключа)
Связанные операции :
- Decrypt
- Encrypt
- GenerateDataKey
- GenerateDataKeyPairWithoutPlaintext
- GenerateDataKeyWithoutPlaintext
См. также: Документация API AWS
Резюме
generate-data-key-pair
[--encryption-context <value>]
--key-id <value>
--key-pair-spec <value>
[--grant-tokens <value>]
[--recipient <value>]
[--dry-run | --no-dry-run]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]
Параметры
--encryption-context (карта)
Указывает контекст шифрования, который будет использоваться при шифровании закрытого ключа в паре данных ключей.
Предупреждение
Не включайте конфиденциальную или чувствительную информацию в это поле. Это поле может отображаться в виде простого текста в журнале CloudTrail и других выходных данных.Контекст шифрования — это набор пар ключ-значение, не являющихся секретными, которые представляют дополнительные аутентифицированные данные. При шифровании данных с использованием контекста шифрования необходимо указать тот же (точное совпадение с учетом регистра) контекст шифрования для расшифровки данных. Контекст шифрования поддерживается только в операциях с симметричными ключами KMS. В операциях с симметричными ключами KMS контекст шифрования является необязательным, но его настоятельно рекомендуется использовать.
Дополнительную информацию см. в разделе Контекст шифрования в руководстве разработчика Key Management Service.
ключ -> (строка)
значение -> (строка)
Упрощенный синтаксис:
KeyName1=string,KeyName2=string
Синтаксис JSON:
{"string": "string"
...}
--key-id (строка)
Указывает симметричный ключ шифрования KMS, который шифрует закрытый ключ в паре данных ключей. Вы не можете указать асимметричный ключ KMS или ключ KMS в пользовательском хранилище ключей. Чтобы получить тип и происхождение вашего ключа KMS, используйте операцию DescribeKey.
Для указания ключа KMS используйте его идентификатор ключа, ARN ключа, имя псевдонима или ARN псевдонима. При использовании имени псевдонима добавьте префикс "alias/". Для указания ключа KMS в другой учетной записи Amazon Web Services необходимо использовать ARN ключа или ARN псевдонима.
Например:
- Идентификатор ключа:
1234abcd-12ab-34cd-56ef-1234567890ab - ARN ключа:
arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab - Имя псевдонима:
alias/ExampleAlias - ARN псевдонима:
arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias
Чтобы получить идентификатор ключа и ARN ключа для ключа KMS, используйте ListKeys или DescribeKey. Чтобы получить имя псевдонима и ARN псевдонима, используйте ListAliases.
--key-pair-spec (строка)
Определяет тип пары данных ключей, который генерируется.
Правило KMS, которое ограничивает использование асимметричных ключей RSA и SM2 KMS для шифрования и дешифрования или для подписи и проверки (но не для обоих), и правило, которое позволяет использовать ключи KMS ECC только для подписи и проверки, не действуют на пары данных ключей, используемые вне KMS. Спецификация ключа SM2 доступна только в регионах Китая.
Возможные значения:
RSA_2048RSA_3072RSA_4096ECC_NIST_P256ECC_NIST_P384ECC_NIST_P521ECC_SECG_P256K1SM2
--grant-tokens (список)
Список маркеров грантов.
Используйте маркер гранта, когда ваше разрешение на вызов этой операции исходит от нового гранта, который еще не достиг постепенной согласованности. Дополнительную информацию см. в разделе Маркер гранта и Использование маркера гранта в руководстве разработчика Key Management Service.
(строка)
Синтаксис:
"string" "string" ...
--recipient (структура)
Подписанный документ аутентификации из Amazon Web Services Nitro enclave и алгоритм шифрования, который следует использовать с открытым ключом enclave. Единственный допустимый алгоритм шифрования — RSAES_OAEP_SHA_256.
Этот параметр поддерживает только документы аутентификации для Amazon Web Services Nitro Enclaves. Чтобы вызвать DeriveSharedSecret для Amazon Web Services Nitro Enclaves, используйте Amazon Web Services Nitro Enclaves SDK для генерации документа аутентификации, а затем используйте параметр Recipient из любого Amazon Web Services SDK для предоставления документа аутентификации для enclave.
При использовании этого параметра вместо возврата копии закрытого ключа данных в виде простого текста KMS шифрует закрытый ключ данных в виде простого текста с помощью открытого ключа в документе аутентификации и возвращает полученный зашифрованный текст в поле CiphertextForRecipient ответа. Этот зашифрованный текст может быть расшифрован только с помощью закрытого ключа в enclave. Поле CiphertextBlob в ответе содержит копию закрытого ключа данных, зашифрованного с использованием ключа KMS, указанного параметром KeyId. Поле PrivateKeyPlaintext в ответе равно null или пустое.
Дополнительную информацию об взаимодействии KMS и Amazon Web Services Nitro Enclaves см. в разделе How Amazon Web Services Nitro Enclaves uses KMS в руководстве разработчика Key Management Service.
KeyEncryptionAlgorithm -> (строка)
RSAES_OAEP_SHA_256.AttestationDocument -> (двоичные данные)
Упрощенный синтаксис:
KeyEncryptionAlgorithm=string,AttestationDocument=blob
Синтаксис JSON:
{
"KeyEncryptionAlgorithm": "RSAES_OAEP_SHA_256",
"AttestationDocument": blob
}
--dry-run | --no-dry-run (логическое значение)
Проверяет, будет ли ваш запрос успешным. DryRun — необязательный параметр.
Дополнительную информацию о том, как использовать этот параметр, см. в разделе Тестирование ваших вызовов API KMS в руководстве разработчика Key Management Service.
--cli-input-json | --cli-input-yaml (строка) Читает аргументы из предоставленной строки JSON. Строка JSON следует формату, предоставленному --generate-cli-skeleton. Если другие аргументы предоставлены в командной строке, эти значения будут переопределять значения, предоставленные JSON. Невозможно передавать произвольные двоичные данные с помощью значения, предоставленного JSON, так как строка будет интерпретироваться буквально. Это может не быть указано вместе с --cli-input-yaml.
--generate-cli-skeleton (строка) Выводит каркас JSON в стандартный вывод без отправки запроса API. Если предоставлено значение без значения или значение input, выводит пример входного JSON, который может быть использован в качестве аргумента для --cli-input-json. Аналогично, если предоставлено yaml-input, выводится пример входного YAML, который может быть использован с --cli-input-yaml. Если предоставлено значение output, оно проверяет входные данные команды и возвращает пример выходного JSON для этой команды. Сгенерированный каркас JSON не стабилен между версиями AWS CLI и нет гарантий обратной совместимости в сгенерированном каркасе JSON.
Глобальные параметры
--debug (boolean)
Включить отладочную регистрацию.
--endpoint-url (string)
Переопределить URL по умолчанию команды заданным URL.
--no-verify-ssl (boolean)
По умолчанию, AWS CLI использует SSL при общении с AWS-сервисами. Для каждого SSL-соединения AWS CLI будет проверять SSL-сертификаты. Этот параметр переопределяет поведение проверки SSL-сертификатов по умолчанию.
--no-paginate (boolean)
Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI выполнит только один вызов для первой страницы результатов.
--output (string)
Стиль форматирования вывода команды.
- json
- text
- table
- yaml
- yaml-stream
--query (string)
Запрос JMESPath для фильтрации данных ответа.
--profile (string)
Использовать определённый профиль из файла аутентификации.
--region (string)
Регион для использования. Переопределяет настройки конфигурации/окружения.
--version (string)
Отобразить версию этого инструмента.
--color (string)
Включить/выключить цветной вывод.
- on
- off
- auto
--no-sign-request (boolean)
Не подписывать запросы. Кредиты не будут загружены, если этот аргумент указан.
--ca-bundle (string)
Файл-сборка CA-сертификатов для проверки SSL-сертификатов. Переопределяет настройки конфигурации/окружения.
--cli-read-timeout (int)
Максимальное время чтения сокета в секундах. Если значение установлено в 0, чтение сокета будет выполняться блокирующим образом без таймаута. Значение по умолчанию — 60 секунд.
--cli-connect-timeout (int)
Максимальное время подключения сокета в секундах. Если значение установлено в 0, подключение сокета будет выполняться блокирующим образом без таймаута. Значение по умолчанию — 60 секунд.
--cli-binary-format (string)
Стиль форматирования, используемый для двоичных блоков. Формат по умолчанию — base64. Формат base64 ожидает, что двоичные блоки будут предоставлены как строка, закодированная в base64. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI V1, и двоичные значения должны быть переданы буквально. При предоставлении содержимого из файла, соответствующего двоичному блоку, fileb:// всегда будет обрабатываться как двоичный, и будет использоваться содержимое файла непосредственно независимо от настройки cli-binary-format. При использовании file:// содержимое файла необходимо должным образом отформатировать для настроенного cli-binary-format.
- base64
- raw-in-base64-out
--no-cli-pager (boolean)
Отключить пейджер CLI для вывода.
--cli-auto-prompt (boolean)
Автоматически запросить параметры ввода CLI.
--no-cli-auto-prompt (boolean)
Отключить автоматический запрос параметров ввода CLI.
Примеры
Примечание
Для использования следующих примеров необходимо установить и настроить AWS CLI. Подробнее см. руководство по началу работы в руководстве пользователя AWS CLI.
Если не указано иное, все примеры используют правила цитирования, характерные для Unix. Эти примеры необходимо адаптировать к правилам цитирования вашей оболочки. См. Использование кавычек со строками в руководстве пользователя AWS CLI.
Для создания пары асимметричных ключей данных RSA размером 2048 бит
Следующий generate-data-key-pair пример запрашивает пару асимметричных ключей данных RSA размером 2048 бит для использования вне AWS. Команда возвращает открытый и закрытый ключи в открытом виде для немедленного использования и удаления, а также копию закрытого ключа, зашифрованного с использованием указанного ключа KMS. Вы можете безопасно хранить зашифрованный закрытый ключ вместе с зашифрованными данными.
Для запроса пары асимметричных ключей данных RSA размером 2048 бит используйте параметр key-pair-spec со значением RSA_2048.
Ключ KMS, который вы указываете, должен быть симметричным ключом шифрования KMS, то есть ключом KMS со значением KeySpec равным SYMMETRIC_DEFAULT.
ПРИМЕЧАНИЕ: Значения в выводе этого примера усечены для отображения.
aws kms generate-data-key-pair \
--key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
--key-pair-spec RSA_2048
Вывод:
{
"PrivateKeyCiphertextBlob": "AQIDAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAFFxmiD134doUDzMGmfCEtcAAAHaTCCB2UGCSqGSIb3DQEHBqCCB1...",
"PrivateKeyPlaintext": "MIIG/QIBADANBgkqhkiG9w0BAQEFAASCBucwggbjAgEAAoIBgQDcDd4YzI+u9Kfv4t2UkTWhShBXkekS4cBVt07I0P42ZgMf+YvU5IgS4ut...",
"PublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3A3eGMyPrvSn7+LdlJE1oUoQV5HpEuHAVbdOyND+NmYDH/mL1OSIEuLrcdZ5hrMH4pk83r40l...",
"KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
"KeyPairSpec": "RSA_2048"
}
PublicKey, PrivateKeyPlaintext и PrivateKeyCiphertextBlob возвращаются в формате base64.
Дополнительную информацию см. в разделе Пары ключей данных в Руководстве разработчика AWS Key Management Service.
Вывод
PrivateKeyCiphertextBlob -> (blob)
PrivateKeyPlaintext -> (blob)
Открытая копия закрытого ключа. При использовании HTTP API или Amazon Web Services CLI значение кодируется в Base64. В противном случае оно не кодируется в Base64.
Если ответ включает поле CiphertextForRecipient, поле PrivateKeyPlaintext равно null или пустое.
PublicKey -> (blob)
KeyId -> (string)
KeyPairSpec -> (string)
CiphertextForRecipient -> (blob)
Закрытый ключ данных в открытом виде, зашифрованный с помощью открытого ключа из Nitro-энклава. Этот шифр можно расшифровать только с помощью закрытого ключа в Nitro-энклаве.
Это поле включается в ответ только в том случае, если параметр Recipient в запросе содержит действительный сертификат аутентификации из Amazon Web Services Nitro-энклава. Дополнительную информацию о взаимодействии KMS и Amazon Web Services Nitro Enclaves см. в разделе Как Amazon Web Services Nitro Enclaves использует KMS в Руководстве разработчика Key Management Service.
© Copyright 2025, Amazon Web Services. Created using Sphinx.