Spec-Zone.ru › Ansible

community.general.tss lookup — получение секретов из Delinea Secret Server

Примечание

Этот lookup-плагин входит в коллекцию community.general (версия 12.6.1).

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

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

Чтобы использовать его в плейбуке, укажите: community.general.tss.

Добавлено в community.general 1.0.0

  • Обзор
  • Требования
  • Параметры
  • Ключевые параметры
  • Примечания
  • Примеры
  • Возвращаемое значение

Обзор

  • Использует Python SDK Thycotic Secret Server для получения секретов из Secret Server с помощью аутентификации по токену, используя username и password в REST API по адресу base_url.
  • При использовании самоподписанных сертификатов переменной окружения REQUESTS_CA_BUNDLE можно присвоить путь к файлу с доверенными сертификатами (в формате .pem).
  • Например, export REQUESTS_CA_BUNDLE='/etc/ssl/certs/ca-bundle.trust.crt'.

Требования

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

  • python-tss-sdk — https://pypi.org/project/python-tss-sdk/

Параметры

Параметр

Описание

Terms

list / элементы=integer / обязательный

Целочисленный идентификатор секрета.

Ключевые параметры

Здесь описаны ключевые параметры lookup. Это значения key1=value1, key2=value2 и так далее в следующих примерах: lookup('community.general.tss', key1=value1, key2=value2, ...) и query('community.general.tss', key1=value1, key2=value2, ...)

Параметр

Описание

api_path_uri

string

Путь, добавляемый к базовому URL для формирования корректного запроса REST API.

По умолчанию: "/api/v1"

Конфигурация:

  • Переменная окружения: TSS_API_PATH_URI

base_url

string / обязательный

Базовый URL сервера, например https://localhost/SecretServer.

Конфигурация:

  • Запись INI:

    [tss_lookup]
    base_url = VALUE
    
  • Переменная окружения: TSS_BASE_URL

domain

string

добавлено в community.general 3.6.0

Домен, для которого запрашивается разрешение на доступ OAuth2.

Необязателен, если token не указан.

Требуется версия python-tss-sdk 1.0.0 или выше.

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

Конфигурация:

  • Запись INI:

    [tss_lookup]
    domain = ""
    
  • Переменная окружения: TSS_DOMAIN

fetch_attachments

boolean

добавлено в community.general 7.0.0

Логический флаг, указывающий, нужно ли скачивать вложенные файлы.

Скачивание выполняется только в том случае, если указан file_download_path.

Варианты:

  • false
  • true

fetch_secret_ids_from_folder

boolean

добавлено в community.general 7.1.0

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

Если true, параметры terms считаются идентификаторами папок. В противном случае (по умолчанию) они считаются идентификаторами секретов.

Варианты:

  • false
  • true

file_download_path

path

добавлено в community.general 7.0.0

Путь для скачивания вложений.

password

string

Пароль, связанный с указанным именем пользователя.

Обязателен, если token не указан.

Конфигурация:

  • Запись INI:

    [tss_lookup]
    password = VALUE
    
  • Переменная окружения: TSS_PASSWORD

secret_path

string

добавлено в community.general 7.2.0

Полный путь к секрету, включая папку и имя секрета, если идентификатор секрета равен 0.

token

string

добавлено в community.general 3.7.0

Существующий токен для авторизации в Thycotic.

Если он указан, username и password не требуются.

Требуется версия python-tss-sdk 1.0.0 или выше.

Конфигурация:

  • Запись INI:

    [tss_lookup]
    token = VALUE
    
  • Переменная окружения: TSS_TOKEN

token_path_uri

string

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

По умолчанию: "/oauth2/token"

Конфигурация:

  • Переменная окружения: TSS_TOKEN_PATH_URI

username

string

Имя пользователя, для которого запрашивается разрешение на доступ OAuth2.

Конфигурация:

  • Запись INI:

    [tss_lookup]
    username = VALUE
    
  • Переменная окружения: TSS_USERNAME

Примечание

Указанные выше для каждого типа записей параметры конфигурации (переменная Ansible, переменная окружения и т. д.) упорядочены от низкого к высокому приоритету. Например, переменная, расположенная ниже в списке, переопределяет переменную, расположенную выше. Типы записей также упорядочены по приоритету от низкого к высокому. Например, запись ansible.cfg (расположенная выше в списке) переопределяется переменной Ansible (расположенной ниже в списке).

Примечания

Примечание

  • При совместном использовании ключевых и позиционных параметров позиционные параметры необходимо указывать перед ключевыми: lookup('community.general.tss', term1, term2, key1=value1, key2=value2) и query('community.general.tss', term1, term2, key1=value1, key2=value2)

Примеры

# Using Secret Server Authentication
- name: Lookup secret using Secret Server user credentials
  hosts: localhost
  vars:
    secret: >-
      {{
        lookup(
          'community.general.tss',
          102,
          base_url='https://secretserver.domain.com/SecretServer/',
          username='user.name',
          password='password'
        )
      }}
  tasks:
    - ansible.builtin.debug:
        msg: >
          the password is {{
            (secret['items']
              | items2dict(key_name='slug',
                           value_name='itemValue'))['password']
          }}

- name: Lookup secret with domain user
  hosts: localhost
  vars:
    secret: >-
      {{
        lookup(
          'community.general.tss',
          102,
          base_url='https://secretserver.domain.com/SecretServer/',
          username='user.name',
          password='password',
          domain='domain'
        )
      }}
  tasks:
    - ansible.builtin.debug:
        msg: >
          the password is {{
            (secret['items']
              | items2dict(key_name='slug',
                           value_name='itemValue'))['password']
          }}

- name: Lookup secret using Secret Server token
  hosts: localhost
  vars:
    secret_password: >-
      {{
        ((lookup(
          'community.general.tss',
          102,
          base_url='https://secretserver.domain.com/SecretServer/',
          token='thycotic_access_token',
        ) | from_json).get('items') | items2dict(key_name='slug', value_name='itemValue'))['password']
      }}
  tasks:
    - ansible.builtin.debug:
        msg: the password is {{ secret_password }}

# Private key stores into certificate file which is attached with secret.
# If fetch_attachments=True then private key file will be download on specified path
# and file content will display in debug message.
- name: Lookup secret and fetch attachments using Secret Server token
  hosts: localhost
  vars:
    secret: >-
      {{
        lookup(
          'community.general.tss',
          102,
          fetch_attachments=True,
          file_download_path='/home/certs',
          base_url='https://secretserver.domain.com/SecretServer/',
          token='thycotic_access_token'
        )
      }}
  tasks:
    - ansible.builtin.debug:
        msg: >
          the private key is {{
            (secret['items']
              | items2dict(key_name='slug',
                           value_name='itemValue'))['private-key']
          }}

# If fetch_secret_ids_from_folder=true then secret IDs are in a folder is fetched based on folder ID
- name: Lookup secret IDs by folder ID using Secret Server token
  hosts: localhost
  vars:
    secret: >-
      {{
        lookup(
          'community.general.tss',
          102,
          fetch_secret_ids_from_folder=true,
          base_url='https://secretserver.domain.com/SecretServer/',
          token='thycotic_access_token'
        )
      }}
  tasks:
    - ansible.builtin.debug:
        msg: >
          the secret id's are {{
              secret
          }}

# If secret ID is 0 and secret_path has value then secret is fetched by secret path
- name: Lookup secret by secret path using Secret Server user credentials
  hosts: localhost
  vars:
    secret: >-
      {{
        lookup(
          'community.general.tss',
          0,
          secret_path='\folderName\secretName'
          base_url='https://secretserver.domain.com/SecretServer/',
          username='user.name',
          password='password'
        )
      }}
  tasks:
    - ansible.builtin.debug:
        msg: >-
          the password is {{
            (secret['items']
              | items2dict(key_name='slug',
                           value_name='itemValue'))['password']
          }}

# Using Platform Authentication
- name: Lookup secret using Platform service user credentials
  hosts: localhost
  vars:
    secret: >-
      {{
        lookup(
          'community.general.tss',
          102,
          base_url='https://platform.delinea.app/',
          username='platform_service_username',
          password='platform_service_user_password'
        )
      }}
  tasks:
    - ansible.builtin.debug:
        msg: >
          the password is {{
            (secret['items']
              | items2dict(key_name='slug',
                           value_name='itemValue'))['password']
          }}

- name: Lookup secret using platform token
  hosts: localhost
  vars:
    secret_password: >-
      {{
        ((lookup(
          'community.general.tss',
          102,
          base_url='https://platform.delinea.app/',
          token='delinea_platform_access_token',
        ) | from_json).get('items') | items2dict(key_name='slug', value_name='itemValue'))['password']
      }}
  tasks:
    - ansible.builtin.debug:
        msg: the password is {{ secret_password }}

Возвращаемое значение

Ключ

Описание

Возвращаемое значение

list / элементы=dictionary

Ответы JSON на запросы GET /secrets/{id} и GET /secrets/{path}.

См. https://updates.thycotic.net/secretserver/restapiguide/TokenAuth/#operation--secrets--id--get.

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

Авторы

  • Adam Migus (@amigus)

Ссылки на коллекцию

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

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

Spec-Zone.ru

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