Spec-Zone.ru › AWS CLI v2

[ aws . kms ]

encrypt

Описание

Шифрует открытый текст объемом до 4096 байтов с использованием ключа KMS. Вы можете использовать симметричный или асимметричный ключ KMS с KeyUsage ENCRYPT_DECRYPT .

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

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

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

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

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

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

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

  • Симметричные ключи шифрования KMS
    • SYMMETRIC_DEFAULT : 4096 байтов
  • RSA_2048
    • RSAES_OAEP_SHA_1 : 214 байтов
    • RSAES_OAEP_SHA_256 : 190 байтов
  • RSA_3072
    • RSAES_OAEP_SHA_1 : 342 байтов
    • RSAES_OAEP_SHA_256 : 318 байтов
  • RSA_4096
    • RSAES_OAEP_SHA_1 : 470 байтов
    • RSAES_OAEP_SHA_256 : 446 байтов
  • SM2PKE : 1024 байта (только регионы Китая)

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

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

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

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

  • Decrypt
  • GenerateDataKey
  • GenerateDataKeyPair
Постепенная согласованность : API KMS следует модели постепенной согласованности. Дополнительную информацию см. в разделе «Постепенная согласованность KMS».

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

Синтаксис

  encrypt
--key-id <value>
--plaintext <value>
[--encryption-context <value>]
[--grant-tokens <value>]
[--encryption-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 должен иметь KeyUsage ENCRYPT_DECRYPT . Чтобы найти 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 .

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

Зашифруемые данные.

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

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

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

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

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

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

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

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

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

KeyName1=string,KeyName2=string

Синтаксис JSON:

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

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

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

Используйте маркер гранта, когда ваше разрешение на вызов этой операции происходит из нового гранта, который еще не достиг состояния «постепенной согласованности». Дополнительную информацию см. в разделе «Маркер гранта и Использование маркера гранта» в руководстве разработчика службы управления ключами.

(строка)

Синтаксис:

"string" "string" ...

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

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

Этот параметр требуется только для асимметричных ключей KMS. Значение по умолчанию, SYMMETRIC_DEFAULT , — это алгоритм, используемый для симметричных ключей шифрования KMS. Если вы используете асимметричный ключ KMS, рекомендуется использовать RSAES_OAEP_SHA_256.

Алгоритм SM2PKE доступен только в регионах Китая.

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

  • SYMMETRIC_DEFAULT
  • RSAES_OAEP_SHA_1
  • RSAES_OAEP_SHA_256
  • SM2PKE

--dry-run | --no-dry-run (булево)

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

Чтобы узнать больше о том, как использовать этот параметр, см. раздел «Тестирование ваших вызовов API KMS» в руководстве разработчика службы управления ключами.

--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: Шифрование содержимого файла на Linux или MacOS

Следующая encrypt команда демонстрирует рекомендуемый способ шифрования данных с помощью AWS CLI.

aws kms encrypt \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --plaintext fileb://ExamplePlaintextFile \
    --output text \
    --query CiphertextBlob | base64 \
    --decode > ExampleEncryptedFile

Команда выполняет несколько действий:

  1. Использует параметр --plaintext для указания данных для шифрования. Это значение параметра должно быть закодировано в base64.

    Значение параметра plaintext должно быть закодировано в base64, или вы должны использовать префикс fileb://, который сообщает AWS CLI о чтении двоичных данных из файла.

    Если файл не находится в текущей директории, укажите полный путь к файлу. Например: fileb:///var/tmp/ExamplePlaintextFile или fileb://C:\Temp\ExamplePlaintextFile. Дополнительную информацию о чтении значений параметров AWS CLI из файла см. в разделе Загрузка параметров из файла в руководстве пользователя AWS Command Line Interface и в руководстве по лучшим практикам для локальных параметров файлов в блоге AWS Command Line Tool.

  2. Использует параметры --output и --query для управления выводом команды.

    Эти параметры извлекают зашифрованные данные, называемые шифрованным текстом, из вывода команды.

    Дополнительную информацию о управлении выводом см. в руководстве пользователя AWS Command Line Interface.

  3. Использует утилиту base64 для декодирования извлеченного вывода в двоичные данные.

    Шифрованный текст, возвращаемый успешной командой encrypt, представляет собой текстовую строку, закодированную в base64. Вам необходимо декодировать эту строку, прежде чем вы сможете использовать AWS CLI для расшифровки.

  4. Сохраняет двоичный шифрованный текст в файл.

    Конечная часть команды (> ExampleEncryptedFile) сохраняет двоичный шифрованный текст в файл, чтобы упростить расшифровку. Пример команды, которая использует AWS CLI для расшифровки данных, см. в примерах decrypt.

Пример 2: Использование AWS CLI для шифрования данных в Windows

Этот пример аналогичен предыдущему, за исключением того, что он использует утилиту certutil вместо base64. Эта процедура требует двух команд, как показано в следующем примере.

aws kms encrypt \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --plaintext fileb://ExamplePlaintextFile \
    --output text \
    --query CiphertextBlob > C:\Temp\ExampleEncryptedFile.base64

certutil -decode C:\Temp\ExampleEncryptedFile.base64 C:\Temp\ExampleEncryptedFile

Пример 3: Шифрование с асимметричным ключом KMS

Следующая encrypt команда показывает, как зашифровать открытый текст с помощью асимметричного ключа KMS. Параметр --encryption-algorithm обязателен. Как и во всех командах encrypt CLI, параметр plaintext должен быть закодирован в base64, или вы должны использовать префикс fileb://, который сообщает AWS CLI о чтении двоичных данных из файла.

aws kms encrypt \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --encryption-algorithm RSAES_OAEP_SHA_256 \
    --plaintext fileb://ExamplePlaintextFile \
    --output text \
    --query CiphertextBlob | base64 \
    --decode > ExampleEncryptedFile

Эта команда не выводит ничего.

Вывод

CiphertextBlob -> (блок данных)

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

KeyId -> (строка)

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

EncryptionAlgorithm -> (строка)

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

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

Spec-Zone.ru

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