Spec-Zone.ru › AWS CLI v2

[ aws . kms ]

generate-random

Описание

Возвращает строку случайных байтов, криптографически безопасную.

Вы должны использовать параметр NumberOfBytes, чтобы указать длину строки случайных байтов. Значение длины строки по умолчанию отсутствует.

По умолчанию, строка случайных байтов генерируется в KMS. Для генерации строки байтов в кластере CloudHSM, связанном с хранилищем ключей CloudHSM, используйте параметр CustomKeyStoreId.

GenerateRandom также поддерживает Amazon Web Services Nitro Enclaves, которые предоставляют изолированную вычислительную среду в Amazon EC2. Для вызова GenerateRandom для Nitro enclave, используйте Amazon Web Services Nitro Enclaves SDK или любой Amazon Web Services SDK. Используйте параметр Recipient, чтобы предоставить документ подтверждения для enclave. Вместо текстовых байтов, ответ включает текстовые байты, зашифрованные с помощью открытого ключа из документа подтверждения (CiphertextForRecipient). Для получения информации о взаимодействии KMS и Amazon Web Services Nitro Enclaves, см. раздел Как Amazon Web Services Nitro Enclaves использует KMS в руководстве разработчика Key Management Service.

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

Использование между аккаунтами: Не применимо. GenerateRandom не использует какие-либо ресурсы, специфичные для аккаунта, такие как ключи KMS.

Необходимые разрешения: kms:GenerateRandom (политика IAM)

Эвентуальная консистенция: API KMS использует модель эвентуальной консистенции. Дополнительную информацию см. в разделе Эвентуальная консистенция KMS.

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

Синтаксис

  generate-random
[--number-of-bytes <value>]
[--custom-key-store-id <value>]
[--recipient <value>]
[--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]

Параметры

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

Длина строки случайных байтов. Этот параметр обязателен.

--custom-key-store-id (строка)

Генерирует строку случайных байтов в кластере CloudHSM, связанном с указанным хранилищем ключей CloudHSM. Чтобы найти ID пользовательского хранилища ключей, используйте операцию DescribeCustomKeyStores.

ID внешних хранилищ ключей не являются допустимыми для этого параметра. Если вы укажете ID внешнего хранилища ключей, GenerateRandom вызовет UnsupportedOperationException.

--recipient (структура)

Подписанный документ подтверждения из Amazon Web Services Nitro enclave и алгоритм шифрования для использования с открытым ключом enclave. Единственным допустимым алгоритмом шифрования является RSAES_OAEP_SHA_256.

Этот параметр поддерживает только документы подтверждения для Amazon Web Services Nitro Enclaves. Для включения этого параметра, используйте Amazon Web Services Nitro Enclaves SDK или любой Amazon Web Services SDK.

При использовании этого параметра, вместо возвращения текстовых байтов, KMS шифрует текстовые байты с помощью открытого ключа в документе подтверждения и возвращает получившийся шифр в поле CiphertextForRecipient в ответе. Этот шифр может быть расшифрован только с помощью закрытого ключа в enclave. Поле Plaintext в ответе равно null или пусто.

Для получения информации о взаимодействии KMS и Amazon Web Services Nitro Enclaves, см. раздел Как Amazon Web Services Nitro Enclaves использует KMS в руководстве разработчика Key Management Service.

KeyEncryptionAlgorithm -> (строка)

Алгоритм шифрования, который KMS должен использовать с открытым ключом Amazon Web Services Nitro Enclave, чтобы зашифровать текстовые значения для ответа. Единственно допустимое значение - RSAES_OAEP_SHA_256.

AttestationDocument -> (двоичные данные)

Документ подтверждения для Amazon Web Services Nitro Enclave. Этот документ включает открытый ключ enclave.

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

KeyEncryptionAlgorithm=string,AttestationDocument=blob

Синтаксис JSON:

{
  "KeyEncryptionAlgorithm": "RSAES_OAEP_SHA_256",
  "AttestationDocument": blob
}

--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 для вывода.

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

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

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

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

Примеры

Примечание

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

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

Пример 1: Генерация 256-битной случайной строки байтов (Linux или macOS)

В следующем generate-random примере генерируется 256-битная (32-байтовая), закодированная в base64 случайная строка байтов. Пример декодирует строку байтов и сохраняет её в файле random.

При выполнении этой команды необходимо использовать параметр number-of-bytes для указания длины случайного значения в байтах.

При выполнении этой команды не указывается ключ KMS. Случайная строка байтов не связана ни с каким ключом KMS.

По умолчанию AWS KMS генерирует случайное число. Однако, если вы укажете `настраиваемый хранилище ключей<https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html>`__, случайная строка байтов будет сгенерирована в кластере AWS CloudHSM, связанном с настраиваемым хранилищем ключей.

В этом примере используются следующие параметры и значения:

  • Он использует обязательный параметр --number-of-bytes со значением 32 для запроса строки длиной 32 байта (256 бит).

  • Он использует параметр --output со значением text для перенаправления AWS CLI на возврат выходных данных в виде текста, а не JSON.

  • Он использует --query parameter для извлечения значения свойства Plaintext из ответа.

  • Он перенаправляет ( | ) выходные данные команды на утилиту base64, которая декодирует извлечённые выходные данные.

  • Он использует оператор перенаправления ( > ) для сохранения декодированной строки байтов в файл ExampleRandom.

  • Он использует оператор перенаправления ( > ) для сохранения двоичного зашифрованного текста в файл.

    aws kms generate-random \
        --number-of-bytes 32 \
        --output text \
        --query Plaintext | base64 --decode > ExampleRandom
    

Эта команда не производит никакого вывода.

Дополнительную информацию см. в GenerateRandom в AWS Key Management Service API Reference.

Пример 2: Генерация 256-битного случайного числа (командная строка Windows)

В следующем примере используется команда generate-random для генерации 256-битной (32-байтовой), закодированной в base64 случайной строки байтов. Пример декодирует строку байтов и сохраняет её в файле random. Этот пример такой же, как предыдущий, за исключением использования утилиты certutil в Windows для base64-декодирования случайной строки байтов перед сохранением её в файл.

Сначала сгенерируйте закодированную в base64 случайную строку байтов и сохраните её во временном файле, ExampleRandom.base64.

aws kms generate-random \
    --number-of-bytes 32 \
    --output text \
    --query Plaintext > ExampleRandom.base64

Поскольку выходные данные команды generate-random сохраняются в файле, в этом примере не выводится никакого результата.

Теперь используйте команду certutil -decode для декодирования закодированной в base64 строки байтов в файле ExampleRandom.base64. Затем она сохранит декодированную строку байтов в файл ExampleRandom.

certutil -decode ExampleRandom.base64 ExampleRandom

Вывод:

Input Length = 18
Output Length = 12
CertUtil: -decode command completed successfully.

Дополнительную информацию см. в GenerateRandom в AWS Key Management Service API Reference.

Вывод

Открытый текст -> (блок)

Случайная строка байтов. При использовании HTTP API или Amazon Web Services CLI значение закодировано в Base64. В противном случае оно не закодировано в Base64.

Если ответ содержит поле CiphertextForRecipient, поле Plaintext имеет значение null или пустое.

CiphertextForRecipient -> (блок)

Случайные байты открытого текста, зашифрованные с использованием открытого ключа из виртуальной среды Nitro. Этот зашифрованный текст может быть расшифрован только с использованием закрытого ключа в виртуальной среде Nitro.

Это поле включается в ответ только в том случае, если параметр Recipient в запросе содержит действительный документ аутентификации из виртуальной среды Amazon Web Services Nitro. Дополнительную информацию о взаимодействии KMS и виртуальных сред Amazon Web Services Nitro см. в разделе Как виртуальные среды Amazon Web Services Nitro используют KMS в Руководстве разработчика службы управления ключами.

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

Spec-Zone.ru

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