Токены ServiceAccount для доступа к API

Как получить и использовать токены ServiceAccount в Cozystack.

Предварительные требования

Перед началом убедитесь, что:

  • Tenant уже существует в Cozystack. Если он еще не создан, см. Создание пользовательского tenant.
  • У вас есть доступ к namespace tenant - через OIDC-учетные данные или административный kubeconfig.
  • kubectl установлен и настроен.
  • (Опционально) установлен jq.

Получение токена ServiceAccount

У каждого tenant в Cozystack есть Secret с токеном ServiceAccount. Secret имеет то же имя, что и tenant, и находится в namespace этого tenant.

  1. Войдите в Dashboard пользователем, у которого есть доступ к tenant.
  2. При необходимости переключите контекст на нужный tenant.
  3. В левой боковой панели перейдите на страницу Administration -> Info и откройте вкладку Secrets.
  4. Найдите secret с именем tenant-<name> (например, tenant-team1), где Key равен token.
  5. Нажмите значок глаза, чтобы показать поле Value, затем нажмите на показанные данные. Текст будет автоматически скопирован в буфер обмена.

Получите токен для tenant с именем <name>:

kubectl -n tenant-<name> get tenantsecret tenant-<name> -o json | jq -r '.data.token | @base64d'

Чтобы сохранить токен в переменную для последующих команд:

export TOKEN=$(kubectl -n tenant-<name> get tenantsecret tenant-<name> -o json | jq -r '.data.token | @base64d')

Использование токена для доступа к API

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

Проверка подключения

Сначала убедитесь, что текущий контекст kubectl указывает на нужный кластер Cozystack:

kubectl config current-context
kubectl cluster-info

Затем получите адрес API-сервера:

export API_SERVER=$(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}')

После этого извлеките CA-сертификат из secret tenant:

kubectl -n tenant-<name> get secret tenant-<name> -o jsonpath='{.data.ca\.crt}' | base64 -d > ca.crt

Теперь проверьте подключение:

curl --cacert ca.crt -H "Authorization: Bearer ${TOKEN}" ${API_SERVER}/api

После проверки файл ca.crt можно удалить.

Last modified 2026-06-29: translate 1.5 (73d3d03)