Skip to content

Доступ к API управления тенантом

В данной статье продемонстрирован способ управления тенантом, предварительно созданным в панели управления сервисом. В качестве примера используется утилита curl. Также возможно использовать графические утилиты – например, Postman.

Авторизация

sh
curl -L -u ACCESS_KEY:SECRET_KEY -c cookiefile "https://os.cloud.mts.ru:4443/login?using-cookies"

curl -L -u ACCESS_KEY:SECRET_KEY -c cookiefile "https://avntg.s3mts.ru:4443/login?using-cookies"

где ACCESS_KEY и SECRET_KEY – логин и пароль администратора тенанта; пара логин/пароль, которая задается при создании пространства в панели управления.

Logout

sh
curl -b cookiefile "https://os.cloud.mts.ru:4443/logout?using-cookies"

Аутентификация по токену

Сервис использует основанную на токенах аутентификацию для выполнения всех последующих после аутентификации вызовов. Чтобы получить токен, выполните:

sh
curl -v -L -u ACCESS_KEY:SECRET_KEY https://s3mts.ru:443/login

где ACCESS_KEY и SECRET_KEY – логин и пароль администратора тенанта.

Результат выполнения:



< HTTP/1.1 200 OK

< Date: Sun, 03 Feb 2019 17:44:32 GMT

< Content-Type: application/xml

< Content-Length: 94

< Connection: keep-alive

< X-SDS-AUTH-TOKEN:

BAAcb25tZ2sycGhBQnN0NWZqNEt1SCtBQVVoK0hjPQMAjAQASHVybjpzdG9yYWdlb3M6VmlydHVhbERhdGFDZW50ZXJEYXRhOjA3MmVjYzg0LWQyYjUtNDQ5ZS1hNWE3LTAyYzc5M2ZiYmEzOQIADTE1NDkxOTUzMDczNjQDAC51cm46VG9rZW46NzRmZTBjNWQtYjU4YS00OWRhLWI3M2QtZGYxNzYxYWViZjIwAgAC0A8=

Здесь X-SDS-AUTH-TOKEN содержит необходимый для дальнейшей работы токен. В дальнейшем данный параметр необходимо передавать через опцию -H команды curl:

sh
curl -v -L -u ACCESS_KEY:SECRET_KEY -H "X-SDS-AUTH-TOKEN:токен"
sh
curl -v -L -u ACCESS_KEY:SECRET_KEY https://s3mts.ru:443/login?using-cookies=true cookiefile

где ACCESS_KEY и SECRET_KEY – логин и пароль администратора тенанта.

Результат выполнения:


< HTTP/1.1 200 OK

< Date: Thu, 08 Aug 2019 13:41:06 GMT

< Content-Type: application/xml

< Content-Length: 105

< X-SDS-AUTH-TOKEN:

BAAcTVh5L0hkczdWZ2RQeU51TlhaSXdSdTI0ajh3PQMAjAQASHVybjpzdG9yYWdlb3M6VmlydHVhbERhdGFDZW50ZXJEYXRhOjA3MmVjYzg0LWQyYjUtNDQ5ZS1hNWE3LTAyYzc5M2ZiYmEzOQIADTE1NjUyNjU3MTA1ODgDAC51cm46VG9rZW46YmZiZGJmZDMtMzAzOC00ZThkLTlhYjctYjE4MmZjNDI5ZWQ5AgAC0A8=

< Added cookie X-SDS-AUTH-TOKEN="BAAcTVh5L0hkczdWZ2RQeU51TlhaSXdSdTI0ajh3PQMAjAQASHVybjpzdG9yYWdlb3M6VmlydHVhbERhdGFDZW50ZXJEYXRhOjA3MmVjYzg0LWQyYjUtNDQ5ZS1hNWE3LTAyYzc5M2ZiYmEzOQIADTE1NjUyNjU3MTA1ODgDAC51cm46VG9rZW46YmZiZGJmZDMtMzAzOC00ZThkLTlhYjctYjE4MmZjNDI5ZWQ5AgAC0A8=" for domain http://s3mts.ru, path /, expire 1565300871

< Set-Cookie: X-SDS-AUTH-TOKEN**\=BAAcTVh5L0hkczdWZ2RQeU51TlhaSXdSdTI0ajh3PQMAjAQASHVybjpzdG9yYWdlb3M6VmlydHVhbERhdGFDZW50ZXJEYXRhOjA3MmVjYzg0LWQyYjUtNDQ5ZS1hNWE3LTAyYzc5M2ZiYmEzOQIADTE1NjUyNjU3MTA1ODgDAC51cm46VG9rZW46YmZiZGJmZDMtMzAzOC00ZThkLTlhYjctYjE4MmZjNDI5ZWQ5AgAC0A8=;Version=1;Max-Age=28800;Secure
sh
curl -v -L -u ACCESS_KEY:SECRET_KEY -b cookiefile

где ACCESS_KEY и SECRET_KEY – логин и пароль администратора тенанта.

Биллинг

  1. Предварительно авторизуйтесь при помощи вызова:

    sh
    curl -L -u ACCESS_KEY:SECRET_KEY -c cookiefile "https://avntg.s3mts.ru:4443/login?using-cookies"

    где ACCESS_KEY и SECRET_KEY – логин и пароль администратора тенанта.

  2. Далее, используйте вызов:

    sh
    curl -b cookiefile -L -H  x-emc-namespace:NAMESPACE  https://avntg.s3mts.ru:4443/object/billing/namespace/NAMESPACE/info

    где вместо NAMESPACE укажите необходимый неймспейс.

Для вывода квоты на namespace и сопутствующей информации используйте:

sh
curl -L -X GET -b cookiefile "https://avntg.s3mts.ru:4443/object/namespaces"

В результате выполнения запроса размер квоты вернется в виде: <blockSize>325000</blockSize>.

Создание пользователя в Namespace

  1. Для создания пользователя авторизуйтесь, используя вызов:

    sh
    curl -L -u ACCESS_KEY:SECRET_KEY -c cookiefile "https://avntg.s3mts.ru:4443/login?using-cookies"

    где ACCESS_KEY и SECRET_KEY – логин и пароль администратора тенанта.

  2. Чтобы создать пользователя, используйте вызов:

    sh
    curl -b cookiefile -X POST -d @data.json -H "Content-Type: application/json" https://avntg.s3mts.ru:4443/object/users

    предварительно создав файл data.json, в котором указан namespace и имя создаваемого пользователя:

    json
    {
            "namespace": "testnamespace",
            "user": "testuseraccesskey"
    }

Генерация Secret-Key для созданного пользователя

  • Чтобы сгенерировать SECRET_KEY для созданного пользователя, используйте вызов:

    sh
    curl -b cookiefile -X POST -d @user.json -H "Content-Type: application/json" https://avntg.s3mts.ru:4443/object/user-secret-keys/testuseraccesskey.json

    Для просмотра результата выполните cat data.json:

    json
    {
    "existing_key_expiry_time_mins": "0" ,
    "namespace": "testnamespace"
    }
  • Также можно задать SECRET_KEY вручную в файле "user.json" используя следующий формат:

    json
    {
    "existing_key_expiry_time_mins": "0" ,
    "namespace": "testnamespace" 
    "secretkey": "11testsecterkey51OL2fyoHjPp8xL2y3TR6JUtI6hK2"
    }

    Для просмотра SECRET_KEY используйте вызов:

    sh
    curl -b cookiefile -X GET https://avntg.s3mts.ru:4443/object/user-secret-keys/testuseraccesskey

Получение Secret-Key от объектного пользователя

  • Для вывода SECRET_KEY от объектного пользователя используйте вызов:

    sh
    curl -b cookiefile -X GET https://avntg.s3mts.ru:4443/object/user-secret-keys/{uid}
  • Для вывода только SECRET_KEY используйте вызов:

    sh
    curl -b cookiefile -X GET https://avntg.s3mts.ru:4443/object/user-secret-keys/{uid} 2>&1| grep -oP "(?<=<secret_key_1>).*?(?=</secret_key_1>)"

Создание Management User

Чтобы создать Management User, используйте вызов:

sh
curl -b cookiefile -X POST -H "Content-Type: application/json" https://avntg.s3mts.ru:4443/vdc/users.json -d '{"userId": "1sampleuser", "password": "samplepassword", "isSystemAdmin": "false", "isSystemMonitor": "false"}'

Удаление незавершенных загрузок

Проблема с занятыми бакетами — при этом отображается, что бакеты пустые — возникает из-за незавершенных загрузок (incomplete MPU).

Для удаления незавершенных загрузок в "S3Browser" перейдите в Buckets > Bucket Lifecycle Rules и отредактируйте правило.

Завершение работы с тенантом

Для завершения сессии работы с объектным хранилищем используйте следующий вызов:

sh
curl -v -L https://s3mts.ru:443/logout -H "X-SDS-AUTH-TOKEN: BAAcb25tZ2sycGhBQnN0NWZqNEt1SCtBQVVoK0hjPQMAjAQASHVybjpzdG9yYWdlb3M6VmlydHVhbERhdGFDZW50ZXJEYXRhOjA3MmVjYzg0LWQyYjUtNDQ5ZS1hNWE3LTAyYzc5M2ZiYmEzOQIADTE1NDkxOTUzMDczNjQDAC51cm46VG9rZW46NzRmZTBjNWQtYjU4YS00OWRhLWI3M2QtZGYxNzYxYWViZjIwAgAC0A8=" | xmllint --format

Результат выполнения:

xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<LoggedOut>
	<user>admin</user>
</LoggedOut>

Список доступных вызовов

Вызовы, доступные администратору тенанта:

  1. Вызовы для работы с бакетами:

    • /object/bucket – создание и управление бакетами
    • /object/bucket/{bucketName}/lock – блокировка доступа к бакету
    • /object/bucket/{bucketName}/tags – добавление меток к указанному бакету
    • /object/bucket/{bucketName}/retention – установка срока жизни для указанного бакета
    • /object/bucket/{bucketName}/quota – установка квоты на бакет
    • /object/bucket/{bucketName}/policy – установка политики для бакета
    • /object/bucket/{bucketName}/metadata – добавление метаданных к бакету
  2. Вызовы для работы с ключами:

    • /object/user-secret-keys – назначение ключей доступа пользователям, управление ключами
  3. Вызовы для работы с пользователями:

    • /object/users – создание и управление пользователями тенанта
    • /object/users/lock - блокировка пользователей тенанта
    • /object/users/{userName}/tags – добавление меток к пользователям тенанта

Список вызовов может быть расширен в ходе развития сервиса "Объектное хранилище S3".

Документация

Примечание

Если ресурс по ссылке недоступен, используйте подключение к VPN-сервису.