get-public-key
Описание
Возвращает открытый ключ асимметричного ключа KMS. В отличие от закрытого ключа асимметричного ключа KMS, который никогда не покидает KMS в незашифрованном виде, пользователи с правом kms:GetPublicKey могут загрузить открытый ключ асимметричного ключа KMS. Вы можете поделиться открытым ключом, чтобы позволить другим шифровать сообщения и проверять подписи вне KMS. Сведения об асимметричных ключах KMS см. в руководстве разработчика службы управления ключами (Key Management Service) в разделе Асимметричные ключи KMS.
Вам не нужно загружать открытый ключ. Вместо этого вы можете использовать открытый ключ в KMS, вызвав операции Encrypt , ReEncrypt или Verify с идентификатором асимметричного ключа KMS. При использовании открытого ключа в KMS вы получаете преимущества проверки подлинности, авторизации и ведения журнала, которые являются частью каждой операции KMS. Вы также снижаете риск шифрования данных, которые невозможно расшифровать. Эти возможности не эффективны вне KMS.
Чтобы помочь вам безопасно использовать открытый ключ вне KMS, GetPublicKey возвращает важную информацию об открытом ключе в ответе, включая:
- KeySpec : Тип ключевого материала в открытом ключе, например,
RSA_4096илиECC_NIST_P521. - KeyUsage : Используется ли ключ для шифрования, подписи или вывода общего секрета.
- EncryptionAlgorithms или SigningAlgorithms : Список алгоритмов шифрования или алгоритмов подписи для ключа.
Хотя KMS не может контролировать эти ограничения для внешних операций, крайне важно использовать эту информацию, чтобы предотвратить ненадлежащее использование открытого ключа. Например, вы можете запретить использование открытого ключа для подписи для шифрования данных или предотвратить использование открытого ключа с алгоритмом шифрования, который не поддерживается KMS. Вы также можете избежать ошибок, таких как использование неправильного алгоритма подписи в операции проверки.
Для проверки подписи вне KMS с открытым ключом SM2 (только регионы Китая) необходимо указать идентификатор отличия. По умолчанию KMS использует 1234567812345678 в качестве идентификатора отличия. Дополнительные сведения см. в разделе Внештатная проверка с парами ключей SM2.
Ключ KMS, используемый в этой операции, должен находиться в совместимом состоянии. Подробности см. в разделе Состояния ключей KMS в руководстве разработчика службы управления ключами (Key Management Service).
Использование между аккаунтами : Да. Для выполнения этой операции с ключом KMS в другом аккаунте Amazon Web Services укажите ARN ключа или ARN псевдонима в значении параметра KeyId.
Требуемые разрешения : kms:GetPublicKey (политика ключа)
Связанные операции : CreateKey
Несинхронная последовательность : API KMS использует модель несинхронной последовательности. Дополнительные сведения см. в разделе Несинхронная последовательность KMS.
См. также: Документация API AWS
Синтаксис
get-public-key
--key-id <value>
[--grant-tokens <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]
Параметры
--key-id (строка)
Идентифицирует асимметричный ключ KMS, который содержит открытый ключ.
Для указания ключа 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 .
--grant-tokens (список)
Список маркеров разрешений.
Используйте маркер разрешения, когда ваше разрешение на вызов этой операции получено из нового разрешения, которое еще не достигло несинхронной последовательности . Дополнительные сведения см. в разделе Маркер разрешения и Использование маркера разрешения в руководстве разработчика службы управления ключами (Key Management Service).
(строка)
Синтаксис:
"string" "string" ...
--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 в руководстве пользователя AWS CLI.
Если не указано иное, во всех примерах используются правила цитирования для Unix-подобных систем. Эти примеры необходимо адаптировать к правилам цитирования вашей оболочки. Дополнительные сведения см. в разделе Использование кавычек со строками в руководстве пользователя AWS CLI.
Пример 1: Загрузка открытого ключа асимметричного ключа KMS
В следующем get-public-key примере загружается открытый ключ асимметричного ключа KMS.
Помимо возврата открытого ключа, вывод включает информацию, необходимую для безопасного использования открытого ключа вне AWS KMS, включая использование ключа и поддерживаемые алгоритмы шифрования.
aws kms get-public-key \
--key-id 1234abcd-12ab-34cd-56ef-1234567890ab
Вывод:
{
"KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
"PublicKey": "jANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAl5epvg1/QtJhxSi2g9SDEVg8QV/...",
"CustomerMasterKeySpec": "RSA_4096",
"KeyUsage": "ENCRYPT_DECRYPT",
"EncryptionAlgorithms": [
"RSAES_OAEP_SHA_1",
"RSAES_OAEP_SHA_256"
]
}
Дополнительные сведения об использовании асимметричных ключей KMS в AWS KMS см. в разделе Использование симметричных и асимметричных ключей в справочнике API AWS Key Management Service.
Пример 2: Преобразование открытого ключа в формат DER (Linux и macOS)
В следующем get-public-key примере загружается открытый ключ асимметричного ключа KMS и сохраняется в файле DER.
При использовании команды get-public-key в AWS CLI возвращается закодированный в DER открытый ключ X.509, закодированный в Base64. В этом примере извлекается значение свойства PublicKey в виде текста. Он декодирует PublicKey в Base64 и сохраняет его в файле public_key.der. Параметр output возвращает вывод в виде текста, а не JSON. Параметр --query получает только свойство PublicKey, а не свойства, которые необходимо использовать для безопасного использования открытого ключа вне AWS KMS.
Перед выполнением этой команды замените пример идентификатора ключа на действительный идентификатор ключа из вашего аккаунта AWS.
aws kms get-public-key \
--key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
--output text \
--query PublicKey | base64 --decode > public_key.der
Эта команда не выводит ничего.
Дополнительные сведения об использовании асимметричных ключей KMS в AWS KMS см. в разделе Использование симметричных и асимметричных ключей в справочнике API AWS Key Management Service.
Вывод
KeyId -> (строка)
PublicKey -> (байты)
Экспортированный открытый ключ.
Значение — это DER-кодированный открытый ключ X.509, также известный как SubjectPublicKeyInfo (SPKI), как определено в RFC 5280. При использовании HTTP API или Amazon Web Services CLI значение кодируется в Base64. В противном случае оно не кодируется в Base64.
CustomerMasterKeySpec -> (строка)
Вместо этого используйте поле KeySpec в ответе GetPublicKey.
Поля KeySpec и CustomerMasterKeySpec имеют одинаковое значение. Рекомендуется использовать поле KeySpec в вашем коде. Однако, чтобы избежать несовместимости, KMS поддерживает оба поля.
KeySpec -> (строка)
KeyUsage -> (строка)
Разрешенное использование открытого ключа. Допустимые значения для асимметричных пар ключей — ENCRYPT_DECRYPT, SIGN_VERIFY и KEY_AGREEMENT.
Эта информация имеет решающее значение. Например, если открытый ключ с типом использования SIGN_VERIFY шифрует данные вне KMS, зашифрованный текст нельзя будет расшифровать.
EncryptionAlgorithms -> (список)
Алгоритмы шифрования, которые KMS поддерживает для этого ключа.
Эта информация имеет решающее значение. Если открытый ключ шифрует данные вне KMS, используя неподдерживаемый алгоритм шифрования, зашифрованный текст нельзя будет расшифровать.
Это поле отображается в ответе только тогда, когда KeyUsage открытого ключа равно ENCRYPT_DECRYPT.
(строка)
SigningAlgorithms -> (список)
Алгоритмы подписи, которые KMS поддерживает для этого ключа.
Это поле отображается в ответе только тогда, когда KeyUsage открытого ключа равно SIGN_VERIFY.
(строка)
KeyAgreementAlgorithms -> (список)
Алгоритм согласования ключей, используемый для получения общего секрета. Это поле присутствует только тогда, когда значение KeyUsage ключа KMS равно KEY_AGREEMENT.
(строка)
© Copyright 2025, Amazon Web Services. Created using Sphinx.