Spec-Zone.ru › Ansible

community.crypto.openssl_privatekey_pipe модуль — Генерация ключей OpenSSL без доступа к диску

Примечание

Этот модуль является частью коллекции community.crypto (версия 2.22.1).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.crypto. Для использования этого модуля необходимы дополнительные требования. Подробности см. в разделе Требования.

Для использования в книге задач укажите: community.crypto.openssl_privatekey_pipe.

Добавлен в community.crypto 1.3.0

  • Обзор
  • Требования
  • Параметры
  • Атрибуты
  • См. также
  • Примеры
  • Возвращаемые значения

Обзор

  • Ключи генерируются в формате PEM.
  • Убедитесь, что результат работы этого модуля не записывается в журналы или на консоль, так как он содержит данные закрытого ключа! Используйте опцию задачи no_log, чтобы быть уверенным.
  • Обратите внимание, что этот модуль реализован как плагин действия плагин действия и всегда будет выполняться на контроллере.
  • Можно сгенерировать закрытые ключи RSA, DSA, ECC или EdDSA.
  • Это позволяет читать и записывать ключи в хранилища без необходимости записи промежуточных версий на диск.
  • Этот модуль позволяет (пере)генерировать закрытые ключи OpenSSL без доступа к диску.

Примечание

Этот модуль имеет соответствующий плагин действия.

Требования

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

  • cryptography >= 1.2.3 (могут работать и более старые версии)

Параметры

Параметр

Комментарии

cipher

string

Шифр для шифрования закрытого ключа. Используется только при предоставлении passphrase.

Должен быть auto.

По умолчанию: "auto"

content

string

Текущие данные закрытого ключа.

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

content_base64

boolean

Установите в true, если содержимое закодировано в base64.

Варианты:

  • false ← (по умолчанию)
  • true

curve

string

Обратите внимание, что не все кривые поддерживаются всеми версиями cryptography.

Для максимальной совместимости следует использовать secp384r1 или secp256r1.

Мы используем имена кривых, определенные в реестре IANA для TLS.

Обратите внимание, что все кривые, кроме secp224r1, secp256k1, secp256r1, secp384r1, и secp521r1 не рекомендуется использовать для новых закрытых ключей.

Варианты:

  • "secp224r1"
  • "secp256k1"
  • "secp256r1"
  • "secp384r1"
  • "secp521r1"
  • "secp192r1"
  • "brainpoolP256r1"
  • "brainpoolP384r1"
  • "brainpoolP512r1"
  • "sect163k1"
  • "sect163r2"
  • "sect233k1"
  • "sect233r1"
  • "sect283k1"
  • "sect283r1"
  • "sect409k1"
  • "sect409r1"
  • "sect571k1"
  • "sect571r1"

format

string

Определяет формат, в котором будет записан закрытый ключ. По умолчанию для всех ключей, которые его поддерживают, используется PKCS1 (традиционный формат OpenSSL). Обратите внимание, что не каждый ключ может быть экспортирован в любом формате.

Значение auto выбирает формат на основе формата ключа. Значение auto_ignore делает то же самое, но для существующих файлов закрытых ключей оно не будет принудительно пересоздавать ключ, если его формат не является автоматически выбранным для генерации.

Обратите внимание, что если формат существующего закрытого ключа не соответствует, ключ по умолчанию пересоздается. Чтобы изменить это поведение, используйте параметр format_mismatch.

Варианты:

  • "pkcs1"
  • "pkcs8"
  • "raw"
  • "auto"
  • "auto_ignore" ← (по умолчанию)

format_mismatch

string

Определяет поведение модуля, если формат закрытого ключа не соответствует ожидаемому формату, но все остальные параметры соответствуют.

Если установлено в regenerate (по умолчанию), создается новый закрытый ключ.

Если установлено в convert, ключ будет преобразован в новый формат.

Поддерживается только бекендом cryptography.

Варианты:

  • "regenerate" ← (по умолчанию)
  • "convert"

passphrase

string

Пароль для закрытого ключа.

regenerate

string

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

По умолчанию ключ будет пересоздан, если он не соответствует параметрам модуля, за исключением случаев, когда ключ не может быть прочитан или пароль не совпадает. Обратите внимание, что это изменилось для Ansible 2.10. Для Ansible 2.9 поведение было таким, как если бы был указан full_idempotence.

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

Если установлено в fail, модуль завершится ошибкой, если ключ не соответствует параметрам модуля.

Если установлено в partial_idempotence, ключ будет пересоздан, если он не соответствует параметрам модуля. Ключ не пересоздается, если его невозможно прочитать (поврежденный файл), ключ защищен неизвестным паролем или ключ не защищен паролем, но указан пароль.

Если установлено в full_idempotence, ключ будет пересоздан, если он не соответствует параметрам модуля. Это также происходит, если ключ не может быть прочитан (поврежденный файл), ключ защищен неизвестным паролем или ключ не защищен паролем, но указан пароль. Убедитесь, что у вас есть резервная копия при использовании этого параметра!

Если установлено в always, модуль всегда будет пересоздавать ключ.

Обратите внимание, что если format_mismatch установлено в convert и все совпадает, кроме формата, ключ всегда будет преобразован, за исключением случая, если regenerate установлено в always.

Варианты:

  • "never"
  • "fail"
  • "partial_idempotence"
  • "full_idempotence" ← (по умолчанию)
  • "always"

return_current_key

boolean

Установите в true, чтобы вернуть текущий закрытый ключ, если модуль не сгенерировал новый.

Обратите внимание, что в режиме проверки, когда этот параметр не установлен в true, модуль всегда возвращает текущий ключ (если он был предоставлен), и Ansible заменит его на VALUE_SPECIFIED_IN_NO_LOG_PARAMETER.

Варианты:

  • false ← (по умолчанию)
  • true

select_crypto_backend

string

Определяет, какой криптографический бэкэнд использовать.

Выбор по умолчанию — auto, который пытается использовать cryptography, если он доступен.

Если установлено в cryptography, будет пытаться использовать библиотеку cryptography.

Варианты:

  • "auto" ← (по умолчанию)
  • "cryptography"

size

integer

Размер (в битах) ключа TLS/SSL для генерации.

По умолчанию: 4096

type

string

Алгоритм, используемый для генерации закрытого ключа TLS/SSL.

Обратите внимание, что ECC, X25519, X448, Ed25519, и Ed448 требуют бэкенд cryptography. X25519 требует библиотеку cryptography версии 2.5 или выше, а X448, Ed25519, и Ed448 требуют cryptography версии 2.6 или выше. Для ECC, минимальная требуемая версия cryptography зависит от опции curve.

Варианты:

  • "DSA"
  • "ECC"
  • "Ed25519"
  • "Ed448"
  • "RSA" ← (по умолчанию)
  • "X25519"
  • "X448"

Атрибуты

Атрибут

Поддержка

Описание

action

Поддержка: полная

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

async

Поддержка: нет

Это действие полностью выполняется на контроллере.

Поддерживает использование ключевого слова async.

check_mode

Поддержка: полная

В режиме проверки закрытые ключи не будут (пере)генерированы, будет установлено только измененное состояние. Это изменится в community.crypto 3.0.0.

Начиная с community.crypto 3.0.0, модуль будет игнорировать режим проверки и всегда вести себя так, как будто режим проверки не активен. Если вы считаете, что это нарушает ваш случай использования этого модуля, пожалуйста, создайте вопрос в репозитории community.crypto.

Может работать в режиме check_mode и возвращать прогноз изменения состояния без изменения целевого объекта.

diff_mode

Поддержка: полная

В режиме сравнения вернет детали того, что изменилось (или, возможно, должно измениться в check_mode).

См. также

См. также

community.crypto.openssl_privatekey

Генерация закрытых ключей OpenSSL.

community.crypto.openssl_privatekey_info

Предоставление информации для закрытых ключей OpenSSL.

community.crypto.x509_certificate

Генерация и/или проверка сертификатов OpenSSL.

community.crypto.x509_certificate_pipe

Генерация и/или проверка сертификатов OpenSSL.

community.crypto.openssl_csr

Генерация запроса на подпись сертификата (CSR) OpenSSL.

community.crypto.openssl_csr_pipe

Генерация запроса на подпись сертификата (CSR) OpenSSL.

community.crypto.openssl_dhparam

Генерация параметров Diffie-Hellman OpenSSL.

community.crypto.openssl_pkcs12

Генерация архива PKCS#12 OpenSSL.

community.crypto.openssl_publickey

Генерация открытого ключа OpenSSL из его закрытого ключа.

Примеры

- name: Generate an OpenSSL private key with the default values (4096 bits, RSA)
  community.crypto.openssl_privatekey_pipe:
  register: output
  no_log: true  # make sure that private key data is not accidentally revealed in logs!
- name: Show generated key
  ansible.builtin.debug:
    msg: "{{ output.privatekey }}"
  # DO NOT OUTPUT KEY MATERIAL TO CONSOLE OR LOGS IN PRODUCTION!


- name: Generate or update a Mozilla sops encrypted key
  block:
    - name: Update sops-encrypted key with the community.sops collection
      community.crypto.openssl_privatekey_pipe:
        content: "{{ lookup('community.sops.sops', 'private_key.pem.sops') }}"
        size: 2048
      register: output
      no_log: true  # make sure that private key data is not accidentally revealed in logs!

    - name: Update encrypted key when openssl_privatekey_pipe reported a change
      community.sops.sops_encrypt:
        path: private_key.pem.sops
        content_text: "{{ output.privatekey }}"
      when: output is changed
  always:
    - name: Make sure that output (which contains the private key) is overwritten
      ansible.builtin.set_fact:
        output: ''

Значения возврата

Общие значения возврата документированы здесь, следующие — поля, уникальные для данного модуля:

Ключ

Описание

кривая

строка

Эллиптическая кривая, используемая для генерации приватного ключа TLS/SSL.

Возвращается: изменён или успех, и type является ECC

Пример: "secp256r1"

отпечаток

словарь

Отпечаток открытого ключа. Отпечаток будет сгенерирован для каждого hashlib.algorithms доступного.

Возвращается: изменён или успех

Пример: {"md5": "84:75:71:72:8d:04:b5:6c:4d:37:6d:66:83:f5:4c:29", "sha1": "51:cc:7c:68:5d:eb:41:43:88:7e:1a:ae:c7:f8:24:72:ee:71:f6:10", "sha224": "b1:19:a6:6c:14:ac:33:1d:ed:18:50:d3:06:5c:b2:32:91:f1:f1:52:8c:cb:d5:75:e9:f5:9b:46", "sha256": "41:ab:c7:cb:d5:5f:30:60:46:99:ac:d4:00:70:cf:a1:76:4f:24:5d:10:24:57:5d:51:6e:09:97:df:2f:de:c7", "sha384": "85:39:50:4e:de:d9:19:33:40:70:ae:10:ab:59:24:19:51:c3:a2:e4:0b:1c:b1:6e:dd:b3:0c:d9:9e:6a:46:af:da:18:f8:ef:ae:2e:c0:9a:75:2c:9b:b3:0f:3a:5f:3d", "sha512": "fd:ed:5e:39:48:5f:9f:fe:7f:25:06:3f:79:08:cd:ee:a5:e7:b3:3d:13:82:87:1f:84:e1:f5:c7:28:77:53:94:86:56:38:69:f0:d9:35:22:01:1e:a6:60:...:0f:9b"}

приватный ключ

строка

Содержимое сгенерированного приватного ключа.

Обратите внимание, что если результат не изменён, текущий приватный ключ будет возвращён только в случае, если опция return_current_key установлена в true

Будет закодирован в Base64, если ключ в сыром формате.

Возвращается: изменён или return_current_key является true

размер

целое число

Размер (в битах) приватного ключа TLS/SSL.

Возвращается: изменён или успех

Пример: 4096

тип

строка

Алгоритм, используемый для генерации приватного ключа TLS/SSL.

Возвращается: изменён или успех

Пример: "RSA"

Авторы

  • Yanis Guenane (@Spredzy)
  • Felix Fontein (@felixfontein)

Ссылки на сборку

  • Система отслеживания ошибок
  • Репозиторий (источники)
  • Задать вопрос (crypto)
  • Задать вопрос (ACME)
  • Отправить отчет об ошибке
  • Запросить новую функцию
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/crypto/openssl_privatekey_pipe_module.html

Spec-Zone.ru

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