Spec-Zone.ru › AWS CLI v2

[ aws . kms ]

generate-data-key-without-plaintext

Описание

Возвращает уникальный симметричный ключ данных для использования вне KMS. Данная операция возвращает ключ данных, зашифрованный с помощью симметричного ключа шифрования KMS, который вы указываете. Байты в ключе случайны; они не связаны с вызывающим абонентом или с ключом KMS.

GenerateDataKeyWithoutPlaintext идентична операции GenerateDataKey за исключением того, что она не возвращает текстовую копию ключа данных.

Данная операция полезна для систем, которым нужно зашифровать данные в какой-то момент, но не сразу. Когда вам нужно зашифровать данные, вы вызываете операцию Decrypt на зашифрованной копии ключа.

Она также полезна в распределенных системах с различными уровнями доверия. Например, вы можете хранить зашифрованные данные в контейнерах. Один компонент вашей системы создаёт новые контейнеры и сохраняет зашифрованный ключ данных с каждым контейнером. Затем другой компонент помещает данные в контейнеры. Этот компонент сначала расшифровывает ключ данных, использует открытый ключ данных для шифрования данных, помещает зашифрованные данные в контейнер, а затем уничтожает открытый ключ данных. В этой системе компонент, который создаёт контейнеры, никогда не видит открытый ключ данных.

Для запроса пары асимметричных ключей данных используйте операции GenerateDataKeyPair или GenerateDataKeyPairWithoutPlaintext.

Для генерации ключа данных необходимо указать симметричный ключ шифрования KMS, используемый для шифрования ключа данных. Вы не можете использовать асимметричный ключ KMS или ключ в пользовательском хранилище для генерации ключа данных. Чтобы получить тип вашего ключа KMS, используйте операцию DescribeKey.

Вы также должны указать длину ключа данных. Используйте параметры KeySpec или NumberOfBytes (но не оба). Для 128-битных и 256-битных ключей данных используйте параметр KeySpec.

Чтобы сгенерировать ключ данных SM4 (только для регионов Китая), укажите значение KeySpec равное AES_128 или значение NumberOfBytes равное 16. Симметричный ключ шифрования, используемый в регионах Китая для шифрования вашего ключа данных, представляет собой ключ шифрования SM4.

Если операция выполняется успешно, вы найдёте зашифрованную копию ключа данных в поле CiphertextBlob.

Вы можете использовать необязательный контекст шифрования для добавления дополнительной безопасности к операции шифрования. Если вы укажете EncryptionContext, вы должны указать тот же контекст шифрования (точная совпадение с учётом регистра) при расшифровке зашифрованного ключа данных. В противном случае запрос на расшифровку завершится ошибкой с InvalidCiphertextException. Дополнительную информацию см. в разделе Контекст шифрования в руководстве разработчика Key Management Service.

Ключ KMS, который вы используете для этой операции, должен находиться в совместимом состоянии. Подробнее см. Состояния ключей KMS в руководстве разработчика Key Management Service.

Использование между учётными записями : Да. Чтобы выполнить эту операцию с ключом KMS в другой учётной записи Amazon Web Services, укажите ARN ключа или ARN псевдонима в значении параметра KeyId.

Требуемые разрешения : kms:GenerateDataKeyWithoutPlaintext (политика ключа)

Связанные операции :

  • Decrypt
  • Encrypt
  • GenerateDataKey
  • GenerateDataKeyPair
  • GenerateDataKeyPairWithoutPlaintext
Конечная согласованность : API KMS использует модель конечной согласованности. Дополнительную информацию см. в разделе Конечная согласованность KMS.

См. также: Документация API AWS

Синтаксис

  generate-data-key-without-plaintext
--key-id <value>
[--encryption-context <value>]
[--key-spec <value>]
[--number-of-bytes <value>]
[--grant-tokens <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]

Параметры

--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.

--encryption-context (словарь)

Указывает контекст шифрования, который будет использоваться при шифровании ключа данных.

Предупреждение

Не включайте конфиденциальную или чувствительную информацию в это поле. Это поле может отображаться в открытом виде в журналах CloudTrail и других выходных данных.

Контекст шифрования — это набор пар «ключ-значение» без секретных данных, представляющих дополнительные аутентифицированные данные. При использовании контекста шифрования для шифрования данных необходимо указать тот же контекст (полное совпадение с учётом регистра) для расшифровки данных. Контекст шифрования поддерживается только в операциях с симметричными ключами KMS. В операциях с симметричными ключами KMS контекст шифрования является необязательным, но его настоятельно рекомендуется использовать.

Дополнительную информацию см. в разделе Контекст шифрования в руководстве разработчика Key Management Service.

ключ -> (строка)

значение -> (строка)

Сокращённый синтаксис:

KeyName1=string,KeyName2=string

Синтаксис JSON:

{"string": "string"
  ...}

--key-spec (строка)

Длина ключа данных. Используйте AES_128 для генерации симметричного ключа 128 бит или AES_256 для генерации симметричного ключа 256 бит.

Возможные значения:

  • AES_256
  • AES_128

--number-of-bytes (целое число)

Длина ключа данных в байтах. Например, используйте значение 64 для генерации ключа данных 512 бит (64 байта — 512 бит). Для общих длин ключей (симметричные ключи 128 и 256 бит) мы рекомендуем использовать поле KeySpec вместо этого.

--grant-tokens (список)

Список маркеров грантов.

Используйте маркер гранта, когда ваше разрешение на вызов этой операции получено из нового гранта, который ещё не достиг конечной согласованности. Дополнительную информацию см. в разделе Маркер гранта и Использование маркера гранта в руководстве разработчика Key Management Service.

(строка)

Синтаксис:

"string" "string" ...

--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 (логическое значение)

Включить отладочную запись журнала.

--endpoint-url (строка)

Переопределить URL по умолчанию команды заданным URL.

--no-verify-ssl (логическое значение)

По умолчанию AWS CLI использует SSL при общении с сервисами AWS. Для каждого соединения SSL AWS CLI будет проверять сертификаты SSL. Этот параметр переопределяет поведение по умолчанию по проверке сертификатов SSL.

--no-paginate (логическое значение)

Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI выполнит только один вызов для первой страницы результатов.

--output (строка)

Стиль форматирования для вывода команды.

  • json
  • text
  • table
  • yaml
  • yaml-stream

--query (строка)

Запрос JMESPath для фильтрации данных ответа.

--profile (строка)

Использовать определённый профиль из файла параметров.

--region (строка)

Используемый регион. Переопределяет параметры конфигурации/окружения.

--version (строка)

Отобразить версию данного инструмента.

--color (строка)

Включить/выключить цветной вывод.

  • on
  • off
  • auto

--no-sign-request (логическое значение)

Не подписывать запросы. Кредиты не будут загружаться, если этот аргумент указан.

--ca-bundle (строка)

Файл-сборник сертификатов CA для проверки сертификатов SSL. Переопределяет параметры конфигурации/окружения.

--cli-read-timeout (целое число)

Максимальное время чтения сокета в секундах. Если значение равно 0, чтение сокета будет блокирующим и без таймаута. Значение по умолчанию — 60 секунд.

--cli-connect-timeout (целое число)

Максимальное время подключения сокета в секундах. Если значение равно 0, подключение сокета будет блокирующим и без таймаута. Значение по умолчанию — 60 секунд.

--cli-binary-format (строка)

Стиль форматирования, используемый для двоичных блоков. Формат по умолчанию — 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 (логическое значение)

Отключить кли-пайпер для вывода.

--cli-auto-prompt (логическое значение)

Автоматически запросить параметры ввода CLI.

--no-cli-auto-prompt (логическое значение)

Отключить автоматическое запрошенное ввода параметров CLI.

Примеры

Примечание

Чтобы использовать следующие примеры, необходимо установить и настроить AWS CLI. Дополнительную информацию см. в руководстве по началу работы в Руководстве пользователя AWS CLI.

Если не указано иное, во всех примерах используются правила цитирования, характерные для Unix-подобных систем. Эти примеры необходимо адаптировать к правилам цитирования вашей оболочки. См. Использование кавычек со строками в Руководстве пользователя AWS CLI.

Для генерации 256-битного симметричного ключа данных без открытого ключа

Следующий generate-data-key-without-plaintext пример запрашивает зашифрованную копию 256-битного симметричного ключа данных для использования вне AWS. Вы можете вызвать AWS KMS для расшифровки ключа данных, когда будете готовы к его использованию.

Для запроса 256-битного ключа данных используйте параметр key-spec со значением AES_256. Для запроса 128-битного ключа данных используйте параметр key-spec со значением AES_128. Для всех остальных длин ключей данных используйте параметр number-of-bytes.

Ключ KMS, который вы указываете, должен быть симметричным ключом шифрования KMS, то есть ключом KMS со значением спецификации ключа SYMMETRIC_DEFAULT.

aws kms generate-data-key-without-plaintext \
    --key-id "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" \
    --key-spec AES_256

Вывод:

{
    "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogL",
    "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
}

CiphertextBlob (зашифрованный ключ данных) возвращается в формате, закодированном в base64.

Дополнительную информацию см. в разделе Ключи данных в Руководстве разработчика AWS Key Management Service.

Вывод

CiphertextBlob -> (blob)

Зашифрованный ключ данных. При использовании HTTP API или Amazon Web Services CLI значение кодируется в Base64. В противном случае оно не кодируется в Base64.

KeyId -> (строка)

Amazon Resource Name (ARN ключа) ключа KMS, который зашифровал ключ данных.

© Copyright 2025, Amazon Web Services. Created using Sphinx.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API