Spec-Zone.ru › Ansible

Модуль community.sops.sops_encrypt — Шифрование данных с помощью SOPS

Примечание

Этот модуль входит в коллекцию community.sops (версия 1.9.1).

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

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

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

Новая функция в community.sops 0.1.0

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

Обзор

  • Позволяет шифровать двоичные данные (кодированные в Base64), текстовые данные, данные JSON или YAML с помощью SOPS.

Требования

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

  • Исполняемый файл sops (https://github.com/getsops/sops) должен существовать в PATH или быть настроен как sops_binary.

Параметры

Параметр

Комментарии

age

list / elements=string

added in community.sops 1.4.0

Отпечатки пальцев возраста для использования.

Это соответствует параметру SOPS --age.

age_key

string

added in community.sops 1.4.0

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

Будет установлен как переменная окружения SOPS_AGE_KEY при вызове SOPS.

Требуется SOPS 3.7.1+.

age_keyfile

path

added in community.sops 1.4.0

Файл, содержащий закрытые ключи возраста, которые SOPS может использовать для расшифровки зашифрованных файлов.

Будет установлен как переменная окружения SOPS_AGE_KEY_FILE при вызове SOPS.

По умолчанию SOPS ищет sops/age/keys.txt в вашем каталоге пользовательской конфигурации.

Требуется SOPS 3.7.0+.

attributes

aliases: attr

string

Атрибуты, которыми должен обладать результирующий объект файловой системы.

Чтобы получить поддерживаемые флаги, посмотрите страницу руководства для chattr в целевой системе.

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

Оператор = предполагается по умолчанию, в противном случае необходимо включить операторы + или - в строку.

aws_access_key_id

string

added in community.sops 1.0.0

Идентификатор ключа доступа AWS для использования в запросах к AWS.

Устанавливает переменную среды AWS_ACCESS_KEY_ID для вызова SOPS.

aws_profile

string

added in community.sops 1.0.0

Профиль AWS для использования в запросах к AWS.

Это соответствует параметру SOPS --aws-profile.

aws_secret_access_key

string

added in community.sops 1.0.0

Секретный ключ доступа AWS для использования в запросах к AWS.

Устанавливает переменную среды AWS_SECRET_ACCESS_KEY для вызова SOPS.

aws_session_token

string

added in community.sops 1.0.0

Токен сессии AWS для использования в запросах к AWS.

Устанавливает переменную среды AWS_SESSION_TOKEN для вызова SOPS.

azure_kv

list / elements=string

added in community.sops 1.0.0

URL-адреса хранилища ключей Azure для использования.

Это соответствует параметру SOPS --azure-kv.

config_path

path

added in community.sops 1.0.0

Путь к конфигурационному файлу SOPS.

Если не задан, SOPS будет рекурсивно искать конфигурационный файл, начиная с файла, который зашифрован или расшифрован.

Это соответствует параметру SOPS --config.

content_binary

string

Данные для шифрования. Должны быть закодированы в Base64 двоичные данные.

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

Должен быть указан ровно один из content_text, content_binary, content_json и content_yaml.

content_json

dictionary

Данные для шифрования. Должен быть словарь JSON.

Должен быть указан ровно один из content_text, content_binary, content_json и content_yaml.

content_text

string

Данные для шифрования. Должен быть текст Unicode.

Обратите внимание, что модуль может быть не идемпотентным, если текст может быть проанализирован как JSON или YAML.

Должен быть указан ровно один из content_text, content_binary, content_json и content_yaml.

content_yaml

dictionary

Данные для шифрования. Должен быть словарь YAML.

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

Должен быть указан ровно один из content_text, content_binary, content_json и content_yaml.

enable_local_keyservice

boolean

added in community.sops 1.0.0

Указать SOPS использовать локальный сервис ключей.

Это соответствует параметру SOPS --enable-local-keyservice.

Варианты:

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

encrypted_regex

string

added in community.sops 1.0.0

Установить суффикс зашифрованного ключа.

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

Это соответствует параметру SOPS --encrypted-regex.

encrypted_suffix

string

added in community.sops 1.0.0

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

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

Это соответствует параметру SOPS --encrypted-suffix.

encryption_context

list / elements=string

added in community.sops 1.0.0

Список пар контекста шифрования KMS в формате key:value.

Это соответствует параметру SOPS --encryption-context.

force

boolean

Принудительно перезаписать зашифрованный файл.

Варианты:

  • false ← (default)
  • true

gcp_kms

list / elements=string

added in community.sops 1.0.0

Идентификаторы ресурсов GCP KMS для использования.

Это соответствует параметру SOPS --gcp-kms.

group

string

Имя группы, которой должен принадлежать объект файловой системы, как если бы оно передавалось в chown.

Если не указано, используется текущая группа текущего пользователя, если вы не являетесь root, в этом случае может сохраняться предыдущее владение.

hc_vault_transit

list / elements=string

added in community.sops 1.0.0

URI ключей HashiCorp Vault для использования.

Например, https://vault.example.org:8200/v1/transit/keys/dev.

Это соответствует параметру SOPS --hc-vault-transit.

keyservice

list / elements=string

added in community.sops 1.0.0

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

Служба ключей должна быть указана в формате protocol://address, например tcp://myserver.com:5000.

Это соответствует параметру SOPS --keyservice.

kms

list / elements=string

added in community.sops 1.0.0

Список используемых ARN KMS.

Это соответствует параметру SOPS --kms.

mode

any

Разрешения, которыми должен обладать результирующий объект файловой системы.

Для тех, кто привык к /usr/bin/chmod, помните, что режимы на самом деле являются восьмеричными числами. Вы должны предоставить Ansible достаточно информации, чтобы правильно их разобрать. Для согласованных результатов заключайте восьмеричные числа в кавычки (например, '644' или '1777'), чтобы Ansible получал строку и мог выполнить собственное преобразование из строки в число. Добавление ведущего нуля (например, 0755) иногда работает, но может давать сбои в циклах и некоторых других случаях.

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

Начиная с Ansible 1.8, режим может быть указан как символьный режим (например, u+rwx или u=rw,g=r,o=r).

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

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

Указание mode — лучший способ обеспечить создание объектов файловой системы с правильными разрешениями. Дополнительные сведения см. в CVE-2020-1736.

owner

string

Имя пользователя, которому должен принадлежать объект файловой системы, как если бы оно передавалось в chown.

Если не указано, используется текущий пользователь, если вы не являетесь root, в этом случае может сохраняться предыдущее владение.

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

path

path / required

Файл шифрования SOPS.

pgp

list / elements=string

added in community.sops 1.0.0

Отпечатки PGP для использования.

Это соответствует параметру SOPS --pgp.

selevel

string

Часть уровня контекста объекта файловой системы SELinux.

Это атрибут MLS/MCS, иногда известный как range.

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

serole

string

Часть роли контекста объекта файловой системы SELinux.

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

setype

string

Часть типа контекста объекта файловой системы SELinux.

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

seuser

string

Часть пользователя контекста объекта файловой системы SELinux.

По умолчанию используется политика system, если применимо.

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

shamir_secret_sharing_threshold

integer

added in community.sops 1.0.0

Количество различных ключей, необходимых для извлечения ключа данных с помощью Shamir’s Secret Sharing.

Если не задано здесь и в конфигурационном файле SOPS, будет использоваться значение по умолчанию 0.

Это соответствует параметру SOPS --shamir-secret-sharing-threshold.

sops_binary

path

added in community.sops 1.0.0

Путь к двоичному файлу SOPS.

По умолчанию используется sops.

unencrypted_regex

строка

добавлен в community.sops 1.0.0

Установить суффикс незашифрованного ключа.

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

Соответствует параметру SOPS --unencrypted-regex.

unencrypted_suffix

строка

добавлен в community.sops 1.0.0

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

Соответствует параметру SOPS --unencrypted-suffix.

unsafe_writes

логическое

Влияет на использование атомарных операций для предотвращения повреждения данных или несогласованных чтений из целевого объекта файловой системы.

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

Этот параметр позволяет Ansible перейти к небезопасным методам обновления объектов файловой системы, когда атомарные операции завершаются неудачей (однако, он не заставляет Ansible выполнять небезопасные записи).

ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных.

Варианты:

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

Атрибуты

Атрибут

Поддержка

Описание

check_mode

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

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

diff_mode

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

В режиме сравнения будет возвращать подробную информацию о том, что изменилось (или, возможно, должно измениться в check_mode).

safe_file_operations

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

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

См. также

См. также

community.sops.sops плагин поиска

Плагин поиска sops может использоваться для расшифровки зашифрованных с помощью SOPS файлов.

Примеры

- name: Encrypt a secret text
  community.sops.sops_encrypt:
    path: text-data.sops
    content_text: This is a secret text.

- name: Encrypt the contents of a file
  community.sops.sops_encrypt:
    path: binary-data.sops
    content_binary: "{{ lookup('ansible.builtin.file', '/path/to/file', rstrip=false) | b64encode }}"

- name: Encrypt some datastructure as YAML
  community.sops.sops_encrypt:
    path: stuff.sops.yaml
    content_yaml: "{{ result }}"

Авторы

  • Felix Fontein (@felixfontein)

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

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

© 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/sops/sops_encrypt_module.html

Spec-Zone.ru

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