# Персональные токены доступа в рамках аккаунта

Платформа dbt | Starter, Enterprise, Enterprise+

warning

Пользовательские API-токены устарели и больше не работают. Чтобы восстановить работу сервисов, необходимо [перейти](#migrate-deprecated-user-api-keys-to-personal-access-tokens) на персональные токены доступа.

Каждый пользователь dbt с [лицензией Developer, Read-only или IT](https://docs.getdbt.tech/docs/platform/manage-access/seats-and-users.md) может создать новый персональный токен доступа (PAT) для доступа к API dbt и CLI dbt. Этот токен позволяет выполнять запросы к API dbt от имени пользователя. Для доступа к API и ресурсам dbt от имени *аккаунта* мы рекомендуем использовать сервисные токены. Подробнее о различиях между токенами читайте в разделе [Какой тип токена следует использовать](https://docs.getdbt.tech/docs/dbt-apis/authentication.md#which-token-type-should-you-use).

PAT наследуют разрешения пользователя, который их создал. Например, если пользователь с лицензией Developer и ролью Project Admin для определённых проектов создаёт PAT, токен получит роль Project Admin с доступом к тем же проектам, что и пользователь. Эти токены также привязаны к конкретному аккаунту, поэтому, если у пользователя есть доступ к нескольким аккаунтам dbt с одним и тем же адресом электронной почты, ему необходимо создать отдельный PAT для каждого из этих аккаунтов.

Нельзя использовать PAT для создания [сервисного токена](https://docs.getdbt.tech/docs/dbt-apis/service-tokens.md). Запросы на создание сервисного токена, аутентифицированные с помощью PAT, возвращают ошибку `400` — вместо этого используйте существующий сервисный токен для создания новых.

## Создание персонального токена доступа

Создание PAT в рамках аккаунта занимает всего несколько шагов.

1. Перейдите в **Account Settings**, разверните **API tokens** и выберите **Personal tokens**.
2. Нажмите **Create personal access token**.
3. Задайте токену понятное описание и нажмите **Save**.
4. Скопируйте токен до закрытия окна. *После этого он будет недоступен, и в случае утраты вам придётся создать новый токен.*

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

## Удаление персонального токена доступа

Чтобы навсегда удалить PAT:

1. Перейдите в **Account Settings**, разверните **API tokens** и выберите **Personal tokens**.
2. Найдите токен, который хотите удалить, и нажмите «X» справа от полей с описанием токена.
3. Подтвердите удаление (**Confirm delete**), после чего токен перестанет быть действительным.

## Миграция с устаревших пользовательских API-ключей на персональные токены доступа

Переход на PAT является критически важным, если вы сейчас используете пользовательские API-ключи. Текущий API-ключ находится в разделе **Personal Settings → API Key**.

Если вы используете пользовательский API-ключ, важно понимать следующее:

Если вы сейчас используете пользовательский API-ключ, важно учитывать следующее:

* PAT более безопасны.
  * Чтобы обеспечить соблюдение принципа наименьших привилегий и высокий уровень безопасности ваших аккаунтов dbt, мы настоятельно рекомендуем перейти на новые PAT, область действия которых ограничена аккаунтом.

* Необходимо создавать и использовать уникальные токены в каждом из ваших аккаунтов dbt, связанных с одним и тем же адресом электронной почты.

  * Например, <paul.atreides@example.com> состоит в двух аккаунтах dbt: Spice Harvesting Account и Guild Navigator Account. До этого выпуска для доступа к обоим аккаунтам использовался один и тот же API-ключ.
  * После этого выпуска Полу необходимо отдельно зайти в каждый из этих аккаунтов и создать уникальный PAT для каждого аккаунта, к API которого он хочет получить доступ. Эти PAT привязаны к конкретному аккаунту, а не к пользователю.

* При использовании PAT поведение API-эндпоинтов для работы с несколькими аккаунтами изменится.

  * Речь идет об эндпоинтах /v2/accounts и /v3/accounts. Поскольку теперь все PAT привязаны к конкретному аккаунту, получить все аккаунты, связанные с именем пользователя, невозможно. /v3/accounts будет возвращать только метаданные аккаунта, к которому относится используемый PAT.
  * Метаданные аккаунта пользователя будут содержать информацию только о конкретном аккаунте, от имени которого выполняется запрос.
  * Информацию о любых других аккаунтах этого пользователя необходимо запрашивать с помощью PAT, принадлежащего соответствующему аккаунту.

Недокументированные API

Если вы используете недокументированные и неподдерживаемые API-эндпоинты, обратите внимание, что они могут быть выведены из эксплуатации без предварительного уведомления. Если вы используете такие эндпоинты и ваши сценарии использования не покрываются текущим API, пожалуйста, свяжитесь с нами по адресу <support@getdbt.com>.

### Использование персональных токенов доступа

Используете ли вы сейчас пользовательский API-ключ для доступа к API dbt в каких-либо рабочих процессах? Если нет, никаких действий не требуется. Если вы используете пользовательский API-ключ, следуйте приведённым ниже инструкциям.

1. Составьте список всех мест, где вы вызываете API dbt с помощью пользовательского API-ключа dbt.

2. Создайте новый персональный токен доступа (PAT) в разделе **Account Settings → API Tokens → Personal Tokens.** Инструкции см. в разделе [Создание персонального токена доступа](#create-a-personal-access-token).

3. Замените API-ключ в ваших вызовах API на созданный PAT. PAT можно использовать везде, где вы ранее использовали API-ключ.

   Чтобы заменить API-ключ на PAT, укажите PAT в заголовке Authorization ваших API-запросов. Например: `Authorization: Bearer <your-token>`.

   Чтобы заменить API-ключ на PAT, передавайте PAT в заголовке Authorization ваших API-запросов. Например: `Authorization: Bearer <your-token>`.

   Убедитесь, что `<your-token>` заменён на новый PAT, который вы создали.

   примечание

Возможность ротации API-ключей предназначена для существующих API-ключей, а не для их замены на PAT. Вам не нужно заменять свой API-ключ на PAT в интерфейсе dbt.

:::

4. Убедитесь, что PAT используется только там, где это действительно необходимо. Для сценариев, требующих сервисного аккаунта, используйте сервисный токен.
