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

Методы аутентификации. AppRole

Метод аутентификации AppRole позволяет машинам или приложениям аутентифицироваться с использованием ролей, определенных в StarVault. Открытая конструкция AppRole позволяет использовать различные рабочие процессы и конфигурации для управления большим количеством приложений. Этот метод аутентификации ориентирован на автоматизированные рабочие процессы (машинное оборудование и сервисы) и менее полезен для операторов-людей. Мы рекомендуем с методом аутентификации AppRole использовать пакетные токены.

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

1. Настройка AppRole

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

Для настройки AppRole выполните следующие действия:

  1. Активируйте метод:

    • Через UI:

      1. Аутентифицируйтесь в пользовательском интерфейсе с достаточными правами.

      2. На странице Доступ нажмите Добавить.

      3. Выберите AppRole и нажмите Далее.

        enable app role 1
      4. При необходимости измените путь в поле Путь и параметры метода в группе Опции. Подробнее о параметрах см. в разделе Общие параметры для методов аутентификации.

      5. Нажмите Включить метод.

    • Через CLI:

      1. Используйте команду для активации метода аутентификации.

        starvault auth enable [options] approle (1)
        1 Подробнее о параметрах см. в разделе Общие параметры для методов аутентификации
  2. Создайте именованную роль с необходимыми параметрами:

    starvault write auth/approle/role/<role-name> [options] (1)
    1 Замените <role-name> на имя создаваемой роли

    Для настройки параметров роли используйте необходимые опции. Подробнее о доступных параметрах роли см. в таблице

  3. Определите RoleID для AppRole

    starvault read auth/approle/role/demo-role/role-id
    
    Key        Value
    ---        -----
    role_id    6dd13b9f-024e-5ffd-f516-bb12a119a930

    RoleID является идентификатором, который выбирает AppRole, с которым сравниваются другие учетные данные. При аутентификации через конечную точку login этого метода аутентификации RoleID всегда является обязательным аргументом

  4. Получите SecretID, выданный для AppRole:

    starvault write -f auth/approle/role/demo-role/secret-id
    
    Key                   Value
    ---                   -----
    secret_id             82b1c63c-368a-4985-48d1-0f2784bbd200 (1)
    secret_id_accessor    8a9b733b-c591-3bee-ded6-c1aa458dd602
    secret_id_num_uses    40
    secret_id_ttl         10m
    1 Необходимое значение

    SecretID - это учетные данные, которые по умолчанию требуются для любого входа (через secret_id). Для продвинутого использования требование SecretID может быть отключено через параметр bind_secret_id роли AppRole, позволяя машинам с знанием только RoleID или соответствующим другим установленным ограничениям получать токен.

2. Управление ролями AppRole

В таблице ниже представлены команды для управления ролями в методе AppRole.

Команда Описание

starvault write auth/<approle:path>/role/<role-name> <key=value list>

Создание новой роли или изменение существующей по пути auth/<approle:path>/role/<role-name>. Параметры роли передаются в формате key=value. Для добавления нескольких ключей со значениями, их необходимо перечислить через пробел.

Подробнее о доступных параметрах роли см. в таблице

starvault read [-format=<string>] auth/<approle:path>/role/<role-name>

Возвращает параметры роли с именем <role-name> в методе AppRole по пути <approle:path>.

С помощью опции -format=<string> можно указать формат представления данных. Допустимые значения: table (по умолчанию), yaml, 'json', 'raw'.

starvault list [-format=<string>] auth/<approle:path>/role

Возвращает список ролей в методе AppRole по пути <approle:path>.

С помощью опции -format=<string> можно указать формат представления данных. Допустимые значения: table (по умолчанию), yaml, 'json'.

starvault delete auth/<approle:path>/role/<role-name>

Удаляет роль с именем <role-name> в методе AppRole по пути <approle:path>.

Параметры, которые можно передать при создании/изменении роли представлены в следующей таблице:

Опция Описание

bind_secret_id

Логическое значение. Определяет, будет ли для аутентификации через данную роль требоваться Secret ID.

secret_id_bound_cidrs

Список значений, разделенных запятыми. Определяет список CIDR-адресов, с которых разрешено использовать Secret ID для аутентификации.

secret_id_num_uses

Целочисленное значение. Количество раз, которое Secret ID может быть использовано для аутентификации.

secret_id_ttl

Строковое значение. Время жизни (TTL) для Secret ID, связанного с ролью.

local_secret_ids

Логическое значение. Определяет, будут ли Secret ID, связанные с данной ролью, локальными для сервера StarVault, на котором они были созданы.

token_ttl

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

token_max_ttl

Целочисленное или строковое значение. Максимальное время жизни сгенерированных токенов. Текущее значение этого параметра будет указано при обновлении.

token_policies

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

token_bound_cidrs

Список значений, разделенных запятыми. Определяет список CIDR-адресов, для которых будет действителен выданный токен. Это ограничение по IP-адресам устанавливает, что токен может использоваться только с определенных IP-адресов или диапазонов IP-адресов, что повышает безопасность, ограничивая возможность использования токена

token_explicit_max_ttl

Целочисленное или строковое значение. Задает максимальное время жизни (TTL) для токенов, выданных с использованием этой роли. Это значение устанавливает жесткий верхний предел времени жизни токена, который не может быть превышен даже при продлении токена.

token_no_default_policy

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

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

token_num_uses

Целочисленное значение. Максимальное количество раз, которое может быть использован сгенерированный токен (в течение срока его действия). 0 означает неограниченное количество раз. Если требуется, чтобы токен имел возможность создавать дочерние токены, необходимо установить это значение равным 0.

token_period

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

token_type

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

Допустимые значения:

  • service - стандартный тип токена, который может быть продлен в соответствии с его политиками и TTL. Токены типа "service" подходят для большинства приложений и сервисов, которые требуют долгосрочного доступа и возможности продления токена.

  • batch - легковесный тип токена, который хранится в памяти и не записывается в хранилище данных StarVault. Токены типа "batch" не могут быть продлены или отозваны индивидуально, и они исчезают при перезагрузке или выключении сервера StarVault. Они подходят для краткосрочных операций и сценариев с большим объемом токенов, где требуется меньшая нагрузка на хранилище.

  • default - Если параметр не задан, будет использоваться тип токена по умолчанию, который в большинстве случаев является типом "service".

Пример создания роли:

starvault write auth/approle/role/demo-role \
    secret_id_ttl=10m \
    token_num_uses=10 \
    token_ttl=20m \
    token_max_ttl=30m \
    secret_id_num_uses=40