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

Движки секретов. RabbitMQ (API)

В данном разделе представлена документация API для движка секретов RabbitMQ StarVault. Для общих сведений о использовании и работе движка секретов RabbitMQ, пожалуйста, обратитесь к документации RabbitMQ.

Эта документация предполагает, что движок секретов RabbitMQ включен по пути /rabbitmq в StarVault. Поскольку возможно включить движки секретов в любом месте, пожалуйста, соответствующим образом обновите ваши API вызовы.

1. Настроить соединение

Эта конечная точка настраивает строку соединения, используемую для общения с RabbitMQ.

Метод Путь

POST

/rabbitmq/config/connection

1.1. Параметры

  • connection_uri (string: <обязательный>) - указывает URI соединения RabbitMQ.

  • username (string: <обязательный>) - указывает имя пользователя администратора RabbitMQ.

  • password (string: <обязательный>) - указывает пароль администратора RabbitMQ.

  • verify_connection (bool: true) - указывает, следует ли проверять URI соединения, имя пользователя и пароль.

  • password_policy (string: "") - указывает политику пароля для использования при создании динамических учетных данных. По умолчанию генерируется алфавитный пароль, если не задано.

  • username_template (string) - Шаблон, описывающий, как генерируются динамические имена пользователей.

Пример тела запроса:
{
  "connection_uri": "https://...",
  "username": "user",
  "password": "password",
  "password_policy": "rabbitmq_policy"
}
Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/rabbitmq/config/connection

2. Настроить аренду

Эта конечная точка настраивает параметры аренды для сгенерированных учетных данных.

Метод Путь

POST

/rabbitmq/config/lease

2.1. Параметры

  • ttl (int: 0) - указывает ttl аренды, предоставленный в секундах.

  • max_ttl (int: 0) - указывает максимальный ttl, предоставленный в секундах.

Пример тела запроса:
{
  "ttl": 1800,
  "max_ttl": 3600
}
Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/rabbitmq/config/lease
$ starvault write rabbitmq/config/lease \
    ttl=1800 \
    max_ttl=3600

3. Список ролей

Эта конечная точка перечисляет роли.

Метод Путь

LIST

/rabbitmq/roles

3.1. Параметры

  • after (string: "") - необязательная запись, чтобы начать перечисление после для постраничного разбивания; не обязательно должно существовать.

  • limit (int: 0) - необязательное количество записей, которые нужно вернуть; по умолчанию возвращаются все записи.

Пример запроса:
 $ curl \
     --header "X-Vault-Token: ..." \
     --request LIST \
     http://127.0.0.1:8200/v1/rabbitmq/roles?list=true

4. Создать роль

Эта конечная точка создает или обновляет определение роли.

Метод Путь

POST

/rabbitmq/roles/:name

4.1. Параметры

  • name (string: <обязательный>) - указывает имя роли для создания. Это указано как часть URL.

  • tags (string: "") - указывает запятую-разделенные теги управления RabbitMQ.

  • vhosts (string: "") - указывает карту виртуальных хостов к разрешениям.

  • vhost_topics (string: "") - указывает карту виртуальных хостов и обменов к разрешениям по темам. Эта опция требует RabbitMQ 3.7.0 или новее.

Пример тела запроса:
{
  "tags": "tag1,tag2",
  "vhosts": "{\"/\": {\"configure\":\".*\", \"write\":\".*\", \"read\": \".*\"}}",
  "vhost_topics": "{\"/\": {\"amq.topic\": {\"write\":\".*\", \"read\": \".*\"}}}"
}
Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request POST \
    --data @payload.json \
    http://127.0.0.1:8200/v1/rabbitmq/roles/my-role
$ starvault write rabbitmq/roles/my-role \
    tags="tag1,tag2" \
    vhosts="..." \
    vhost_topics="..."

5. Чтение роли

Эта конечная точка запрашивает определение роли.

Метод Путь

GET

/rabbitmq/roles/:name

5.1. Параметры

  • name (string: <обязательный>) - указывает имя роли для чтения. Это указано как часть URL.

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    http://127.0.0.1:8200/v1/rabbitmq/roles/my-role
$ starvault read rabbitmq/roles/my-role
Пример ответа:
{
  "data": {
    "tags": "",
    "vhosts": "{\"/\": {\"configure\":\".*\", \"write\":\".*\", \"read\": \".*\"}}",
    "vhost_topics": "{\"/\": {\"amq.topic\": {\"write\":\".*\", \"read\": \".*\"}}}"
  }
}

6. Удаление роли

Эта конечная точка удаляет определение роли.

Метод Путь

DELETE

/rabbitmq/roles/:name

6.1. Параметры

  • name (string: <обязательный>) - указывает имя роли для удаления. Это указано как часть URL.

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    --request DELETE \
    http://127.0.0.1:8200/v1/rabbitmq/roles/my-role
$ starvault delete rabbitmq/roles/my-role

7. Генерация учетных данных

Эта конечная точка генерирует новый набор динамических учетных данных на основе названной роли.

Метод Путь

GET

/rabbitmq/creds/:name

7.1. Параметры

  • name (string: <обязательный>) - указывает имя роли для создания учетных данных. Это указано как часть URL.

Пример запроса:
$ curl \
    --header "X-Vault-Token: ..." \
    http://127.0.0.1:8200/v1/rabbitmq/creds/my-role
$ starvault read rabbitmq/creds/my-role
Пример ответа:
{
  "data": {
    "username": "root-4b95bf47-281d-dcb5-8a60-9594f8056092",
    "password": "e1b6c159-ca63-4c6a-3886-6639eae06c30"
  }
}