Для взаимодействия по API с сервисами Cloud.ru необходима аутентификация.
Обращаться к API вы можете через:
-
ключ доступа сервисного аккаунта, получив авторизационный токен;
-
персональный ключ доступа, получив авторизационный токен;
В инструкциях ниже кратко описаны особенности каждого способа.
Некоторые сервисы могут поддерживать только часть или один из этих способов аутентификации. Прежде чем получать определенный ключ, ознакомьтесь с документацией сервиса и узнайте, есть ли у него ограничения.
Ключ доступа сервисного аккаунта
Сервисный аккаунт — специальная техническая учетная запись, которая не предполагает персональной авторизации. Аккаунт аутентифицируется в облаке с помощью сгенерированного ключа доступа, а не логина и пароля, как обычный пользователь.
Чтобы использовать этот способ:
-
Создайте ключ доступа для сервисного аккаунта.
Получение авторизационного токена
-
Получите токен через Public API:
curl --location 'https://iam.api.cloud.ru/api/v1/auth/token' \--header 'Content-Type: application/json' \--data '{"keyId": "хх**хх","secret": "х***х"}'Где:
-
keyId — Key ID (логин).
-
secret — Key Secret (пароль).
ПримечаниеЗапрос на получение токена одинаков для Windows, MacOS и Linux.
Пример ответа -
-
Используйте access_token при каждом запросе к сервису, передавая его в заголовке Authorization в следующем формате:
Authorization: Bearer <access_token>
Срок жизни токена — 1 час. Этот параметр не настраивается.
Персональный ключ доступа
С помощью персонального ключа доступа вы сможете аутентифицироваться через вашу учетную запись. Вам будут доступны те действия, которые соответствуют назначенным вам ролям. Ключ доступа генерируется для учетной записи, а не организации или проекта.
Чтобы использовать этот способ:
-
Создайте персональный ключ доступа в профиле личного кабинета.
Получение авторизационного токена
-
Получите токен через Public API:
curl --location 'https://iam.api.cloud.ru/api/v1/auth/token' \--header 'Content-Type: application/json' \--data '{"keyId": "хх**хх","secret": "х***х"}'Где:
-
keyId — Key ID (логин).
-
secret — Key Secret (пароль).
ПримечаниеЗапрос на получение токена одинаков для Windows, MacOS и Linux.
Пример ответа -
-
Используйте access_token при каждом запросе к сервису, передавая его в заголовке Authorization в следующем формате:
Authorization: Bearer <access_token>
Срок жизни токена — 1 час. Этот параметр не настраивается.
API-ключ
У некоторых сервисов отсутствует возможность получения токена доступа по ключу доступа. В этом случае используется API-ключ, который позволяет использовать API без шага обмена на авторизационный токен. API-ключ может быть сгенерирован только для сервисного аккаунта.
API-ключи передаются в открытом виде и считаются менее безопасными, чем ключи доступа. При работе с ними рекомендуем следовать советам по безопасности.
Чтобы использовать этот способ:
-
Создайте статический API-ключ для сервисного аккаунта.
-
Используйте полученный API-ключ при каждом запросе к сервису, передавая его в заголовке Authorization в следующем формате:
Authorization: Api-Key <user_api_key>
- Ключ доступа сервисного аккаунта
- Персональный ключ доступа
- API-ключ