n1ro°
RU

Компьютеры · Инструкция

GitHub Actions OIDC: зачем нужно id-token: write

OIDC нужен, когда CI должен получать краткоживущие cloud credentials без хранения постоянного access key в GitHub secret

Редакция N1RO · Проверено

Короткий ответ

Чтобы job мог запросить OIDC JWT, задайте `permissions: id-token: write`. Доступ к AWS/Azure/GCP появится только после проверки trust policy и claims у провайдера.

Что делать

  1. 1: Добавьте `permissions: id-token: write` и минимально нужные остальные права, например `contents: read`.
  2. 2: Настройте OIDC trust у облачного провайдера на issuer GitHub и нужные claims.
  3. 3: Используйте официальный auth action/SDK провайдера для обмена токена.
  4. 4: Убедитесь, что долгоживущие cloud secrets больше не нужны job.

Важно

Не выдавайте `write-all` только ради OIDC: `id-token: write` не требует write-доступа к содержимому репозитория.

Проверьте после выполнения

  • До команды: Добавьте `permissions: id-token: write` и минимально нужные остальные права, например `contents: read`.
  • Контроль результата: Убедитесь, что долгоживущие cloud secrets больше не нужны job.
  • Не пропустите ограничение: Не выдавайте `write-all` только ради OIDC: `id-token: write` не требует write-доступа к содержимому репозитория.

Что учитывать

Не выдавайте `write-all` только ради OIDC: `id-token: write` не требует write-доступа к содержимому репозитория.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. OpenID Connect reference). Пример и формулировки — редакция N1RO на 2026-09-17.