Spec-Zone.ru › AWS CLI v2

[ aws . kms ]

sign

Описание

Создает цифровую подпись для сообщения или дайджеста сообщения с помощью закрытого ключа в асимметричном ключе KMS. Для проверки подписи используйте операцию Verify или используйте открытый ключ того же асимметричного ключа KMS вне KMS. Сведения об асимметричных ключах KMS см. в руководстве разработчика службы управления ключами (Key Management Service Developer Guide).

Цифровые подписи генерируются и проверяются с использованием асимметричной пары ключей, такой как пара RSA или ECC, представленная асимметричным ключом KMS. Владелец ключа (или уполномоченный пользователь) использует свой закрытый ключ для подписи сообщения. Любой, у кого есть открытый ключ, может проверить, что сообщение было подписано этим конкретным закрытым ключом и что сообщение не изменилось с момента его подписи.

Для использования операции Sign, предоставьте следующую информацию:

  • Используйте параметр KeyId для идентификации асимметричного ключа KMS с значением KeyUsage, равным SIGN_VERIFY. Для получения значения KeyUsage ключа KMS используйте операцию DescribeKey. У вызывающего лица должны быть разрешения kms:Sign на ключ KMS.
  • Используйте параметр Message для указания сообщения или дайджеста сообщения для подписи. Вы можете передавать сообщения размером до 4096 байт. Для подписи более длинного сообщения сгенерируйте дайджест хеша сообщения и затем передайте дайджест хеша в параметр Message. Для указания является ли сообщение полным сообщением или дайджестом, используйте параметр MessageType.
  • Выберите алгоритм подписи, совместимый с ключом KMS.

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

При подписи сообщения обязательно запишите ключ KMS и алгоритм подписи. Эта информация необходима для проверки подписи.

Примечание

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

Для проверки подписи, созданной этой операцией, используйте операцию Verify. Или используйте операцию GetPublicKey для загрузки открытого ключа и затем используйте открытый ключ для проверки подписи вне KMS.

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

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

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

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

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

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

Синопсис

  sign
--key-id <value>
--message <value>
[--message-type <value>]
[--grant-tokens <value>]
--signing-algorithm <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 для подписи сообщения. Тип KeyUsage ключа KMS должен быть SIGN_VERIFY. Для поиска KeyUsage ключа 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.

--message (байтовый массив)

Указывает сообщение или дайджест сообщения для подписи. Сообщения могут составлять от 0 до 4096 байт. Для подписи более длинного сообщения предоставьте дайджест сообщения.

Если вы предоставляете дайджест сообщения, используйте значение DIGEST, равное MessageType, чтобы предотвратить повторное хеширование дайджеста при подписи.

--message-type (строка)

Указывает KMS, следует ли хешировать значение параметра Message как часть алгоритма подписи. Используйте RAW для нехешированных сообщений; используйте DIGEST для дайджестов сообщений, которые уже хешированы.

Если значение MessageType равно RAW, KMS использует стандартный алгоритм подписи, который начинается с функции хеширования. Если значение равно DIGEST, KMS пропускает шаг хеширования в алгоритме подписи.

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

Используйте значение DIGEST только в том случае, если значение параметра Message является дайджестом сообщения. Если вы используете значение DIGEST с нехешированным сообщением, безопасность операции подписи может быть нарушена.

Когда значение MessageType равно DIGEST, длина значения Message должна соответствовать длине хешированных сообщений для указанного алгоритма подписи.

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

Алгоритм хеширования, используемый в Sign, основан на значении SigningAlgorithm.

  • Алгоритмы подписи, заканчивающиеся на SHA_256, используют алгоритм хеширования SHA_256.
  • Алгоритмы подписи, заканчивающиеся на SHA_384, используют алгоритм хеширования SHA_384.
  • Алгоритмы подписи, заканчивающиеся на SHA_512, используют алгоритм хеширования SHA_512.
  • SM2DSA использует алгоритм хеширования SM3. Подробнее см. в разделе "Внедённая проверка с парами ключей SM2".

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

  • RAW
  • DIGEST

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

Список маркеров разрешений.

Используйте маркер разрешения, когда ваше разрешение на вызов этой операции исходит от нового разрешения, которое еще не достигло состояния *эвентуальной согласованности*. Подробнее см. в руководстве разработчика службы управления ключами (Key Management Service Developer Guide).

(строка)

Синтаксис:

"string" "string" ...

--signing-algorithm (строка)

Указывает алгоритм подписи, который необходимо использовать при подписи сообщения.

Выберите алгоритм, совместимый с типом и размером указанного асимметричного ключа KMS. При подписи с парами ключей RSA предпочтительны алгоритмы RSASSA-PSS. Алгоритмы RSASSA-PKCS1-v1_5 включены для совместимости со существующими приложениями.

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

  • RSASSA_PSS_SHA_256
  • RSASSA_PSS_SHA_384
  • RSASSA_PSS_SHA_512
  • RSASSA_PKCS1_V1_5_SHA_256
  • RSASSA_PKCS1_V1_5_SHA_384
  • RSASSA_PKCS1_V1_5_SHA_512
  • ECDSA_SHA_256
  • ECDSA_SHA_384
  • ECDSA_SHA_512
  • SM2DSA

--dry-run | --no-dry-run (логическое значение)

Проверяет, будет ли ваш запрос успешным. DryRun — необязательный параметр.

Подробнее о том, как использовать этот параметр, см. в руководстве разработчика службы управления ключами (Key Management Service Developer Guide).

--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-auto-prompt (boolean)

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

--no-cli-auto-prompt (boolean)

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

Примеры

Примечание

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

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

Пример 1: Генерация цифровой подписи для сообщения

Следующий sign пример генерирует криптографическую подпись для короткого сообщения. Вывод команды включает поле Signature, закодированное в base-64, которое вы можете проверить, используя команду verify.

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

В AWS CLI 2.0 значение параметра message должно быть закодировано в Base64. Или вы можете сохранить сообщение в файл и использовать префикс fileb://, который указывает AWS CLI на чтение двоичных данных из файла.

Перед выполнением этой команды замените пример идентификатора ключа на действительный идентификатор ключа из вашей учетной записи AWS. Идентификатор ключа должен представлять асимметричный ключ KMS с типом использования SIGN_VERIFY.

msg=(echo 'Hello World' | base64)

aws kms sign \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --message fileb://UnsignedMessage \
    --message-type RAW \
    --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256

Вывод:

{
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "Signature": "ABCDEFhpyVYyTxbafE74ccSvEJLJr3zuoV1Hfymz4qv+/fxmxNLA7SE1SiF8lHw80fKZZ3bJ...",
    "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256"
}

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

Пример 2: Сохранение цифровой подписи в файле (Linux и macOS)

Следующий sign пример генерирует криптографическую подпись для короткого сообщения, хранящегося в локальном файле. Команда также получает свойство Signature из ответа, декодирует его в Base64 и сохраняет в файле ExampleSignature. Вы можете использовать файл подписи в команде verify, которая проверяет подпись.

Команда sign требует сообщения, закодированного в Base64, и алгоритма подписи, поддерживаемого вашим асимметричным ключом KMS. Чтобы получить поддерживаемые алгоритмы подписи для вашего ключа KMS, используйте команду describe-key.

Перед выполнением этой команды замените пример идентификатора ключа на действительный идентификатор ключа из вашей учетной записи AWS. Идентификатор ключа должен представлять асимметричный ключ KMS с типом использования SIGN_VERIFY.

echo 'hello world' | base64 > EncodedMessage

aws kms sign \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --message fileb://EncodedMessage \
    --message-type RAW \
    --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256 \
    --output text \
    --query Signature | base64 --decode > ExampleSignature

Эта команда не генерирует вывод. Этот пример извлекает свойство Signature вывода и сохраняет его в файл.

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

Вывод

KeyId -> (строка)

Amazon Resource Name (ARN ключа) асимметричного ключа KMS, который использовался для подписи сообщения.

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

Криптографическая подпись, сгенерированная для сообщения.

  • При использовании поддерживаемых алгоритмов подписи RSA кодирование этого значения определяется PKCS #1 в RFC 8017.
  • При использовании алгоритмов подписи ECDSA_SHA_256, ECDSA_SHA_384 или ECDSA_SHA_512 это значение является объектом в формате DER, определенным в ANSI X9.62–2005 и RFC 3279, раздел 2.2.3. Это наиболее часто используемый формат подписи и подходит для большинства случаев.

При использовании HTTP API или AWS CLI значение закодировано в Base64. В противном случае оно не закодировано в Base64.

SigningAlgorithm -> (строка)

Алгоритм подписи, использованный для подписи сообщения.

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

Spec-Zone.ru

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