- tocdepth
2
Создать API-ключ
Создать сервисный аккаунт можно в личном кабинете или по API с помощью curl-запроса.
При создании API-ключей учитывайте рекомендации по безопасности.
Перейдите в раздел Пользователи, на вкладку Сервисные аккаунты.
Перейдите на вкладку API-ключи.
Создайте cервисный аккаунт или откройте уже существующий.
Перейдите на вкладку API-ключи.
Нажмите Создать API-ключ.
Введите название и краткое описание ключа, которое поможет в будущем идентифицировать его среди других ключей.
Заполните параметры API-ключа:
Сервисы — сервис или несколько сервисов, для которых используется API-ключ.
Адреса — перечень IP-адресов и подсетей, из которых может использоваться API-ключ. Поддерживаются форматы протоколов IPv4 и IPv6.
Время действия — срок действия API-ключа и часовой пояс. Вы можете установить значение от одного дня до одного года с текущей даты. Если параметр не задан, срок действия ключа устанавливается на максимальное значение — один год. Из соображений безопасности рекомендуется выставлять средние значения, например 90 дней.
Интервал работы ключа — один или несколько интервалов времени, в которые можно использовать API-ключ.
Нажмите Создать.
Сохраните Key Secret.
После закрытия окна получить его будет нельзя. Из соображений безопасности рекомендуется хранить пароль в менеджере паролей.
Созданный API-ключ появится в списке ключей в статусе «Активен».
Запросите список сервисов, к которым можно привязать API-ключ:
curl --location 'https://iam.api.cloud.ru/api/v1/products' \ --header 'accept: application/json' \ --header 'Authorization: Bearer $TOKEN' \ --header 'Cookie: SERVERID=s1'
Где
$TOKEN
— авторизационный токен.Пример ответа
{ "products": [ { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "name": "monaas", "description": "Monitoring As A Service", "endpoints": [ "cs-cgnat.cp.sbercloud.tech", "api.iam.sbercloud.ru" ], "created_at": "2024-03-04T12:36:36.352798Z", "updated_at": "2024-03-04T12:36:36.352798Z" }, { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "name": "logaas", "description": "logaas", "endpoints": [ "https://iam.api.cloud.ru", "cs-cgnat.cp.sbercloud.tech" ], "created_at": "2024-03-20T12:48:28.854067Z", "updated_at": "2024-03-20T12:48:28.854082Z" }, { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "name": "Schneider", "description": "non culpa do", "endpoints": [ "green Rubber", "green Rubber" ], "created_at": "2024-03-04T12:36:35.732249Z", "updated_at": "2024-03-05T07:42:40.805920Z" }, { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "name": "Klocko", "description": "Refined TCP payment", "endpoints": [ "tost", "green Rubber" ], "created_at": "2024-03-04T07:39:30.967606Z", "updated_at": "2024-03-05T07:47:19.641252Z" }, { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "name": "Wiza", "description": "Refined TCP payment", "endpoints": [ "green Rubber", "green Rubber" ], "created_at": "2024-03-04T12:36:35.121510Z", "updated_at": "2024-03-04T12:36:35.121510Z" }, { "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "name": "Stark", "description": "Refined TCP payment", "endpoints": [ "green Rubber", "green Rubber" ], "created_at": "2024-03-04T12:36:36.352798Z", "updated_at": "2024-03-04T12:36:36.352798Z" } ] }
Создайте API-ключ с помощью запроса:
curl --location 'https://iam.api.cloud.ru/api/v1/service-accounts/credentials/api-keys' \ --header 'accept: application/json' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer $TOKEN' \ --header 'Cookie: SERVERID=s1' \ --data '{ "name": "api-key-test", "description": "тестовый api-key", "serviceAccountId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "products": [ "monaas" ], "restrictions": { "ipAddresses": { "ipAddresses": [ "xxx.xxx.x.x" ] }, "timeRange": { "timeSlots": [ { "start": 18, "end": 19 } ], "timezone": 3 } }, "enabled": true, "expiresAt": "2024-04-23T09:32:02.984Z" }'
Где:
$TOKEN
— авторизационный токен.name
— название API-ключа. Может содержать латинские буквы в нижнем и верхнем регистрах, цифры, дефисы, подчеркивания, точки и пробелы. Допустимая длина — от 1 до 256 символов.description
— описание ключа, которое поможет идентифицировать его среди других API-ключей.serviceAccountId
— идентификатор сервисного аккаунта.products
— сервис или несколько сервисов, для которых используется API-ключ. Необходимо добавить значение поляname
из ответа на запрос списка сервисов.restrictions
— список ограничений.ipAddresses
— перечень IP-адресов и подсетей, из которых может использоваться API-ключ. Поддерживаются форматы протоколов IPv4 и IPv6.timeRange
— набор интервалов времени (timeSlots
), в которые можно использовать API-ключ. Интервалы необходимо указывать в 24-часовом формате, используя целые числа от 0 до 24. Например, чтобы API-ключ работал с 00:00 до 05:00, укажите значениеstart
равное0
иend
равное5
.Также числом от -12 до 12 указывается часовой пояс (
timezone
) интервалов.
enabled
— флаг активности API-ключа. При значенииtrue
ключ активирован, приfalse
— деактивирован.expiresAt
— дата истечения срока действия API-ключа. Вы можете установить значение от одного дня до одного года с текущей даты. Если параметр не задан, срок действия ключа устанавливается на максимальное значение — один год. Из соображений безопасности рекомендуется выставлять средние значения, например 90 дней.
В ответе возвращается созданный API-ключ.
Пример ответа
{ "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "name": "api-key-test", "description": "тестовый api-key", "service_account_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "products": [ "monaas" ], "secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "restrictions": { "ip_addresses": { "ip_addresses": [ "xxx.xxx.x.x" ] }, "time_range": { "time_slots": [ { "start": 18, "end": 19 } ], "timezone": 3 } }, "enabled": true, "created_at": "2024-03-25T06:13:57.605545853Z", "updated_at": "2024-03-25T06:13:57.605551730Z", "expires_at": "2024-04-23T09:32:02.984Z" }
Чтобы использовать API-ключ, сохраните значение поля
secret
.
secret
— пароль, который возвращается только при создании API-ключа, в дальнейшем получить его будет нельзя. Из соображений безопасности рекомендуется хранить пароль в менеджере паролей.
Была ли статья полезной?
для Dev & Test