VK Cloud logo
Обновлена27 марта 2024 г. в 14:33

Prefix access keys

Общая информация

Префиксные ключи (prefix access keys) позволяют создать пользователей, для которых доступ ограничен по определенному пути. Данные пользователи привязываются к бакетам относительно которых работает их префикс. При работе с префиксными ключами существуют следующие ограничения:

  • пользователь может быть привязан только к 1 бакету (при создании);
  • пользователь не будет иметь доступ к другим бакетам и содержанию своего бакета, для которого путь не будет начинаться с префикса данного пользователя;
  • ключи доступа можно получить только при создании;
  • у пользователя может быть только 1 пара ключей;
  • для упрощения использования рекомендуется называть пользователей связанно с префиксом, по которому они имеют доступ. Например username = user/folder1/file1; prefix = folder1/file1.

Создание префиксных ключей

Поддерживаемые методы PAK

  • CreatePrefixKey;
  • ListPrefixKeys;
  • DeletePrefixKey.

Описание

Создание пользователя examplename с префиксными ключами для доступа по пути exampleprefix. У одного такого пользователя может быть только одна пара префиксных ключей

Запрос

1PUT /?pak&username=examplename&prefix=exampleprefix HTTP/1.1
2Host: bucketName.hb.vkcs.cloud
3Date: Wed, 14 Feb 2018 11:21:57 GMT
4Authorization: authorization string
5Connection: close

Параметры запроса

  • username — пользователь, которому будут принадлежать ключи;
  • prefix — префикс пути, который будет доступен по данным ключам.

Ответ

1HTTP/1.1 200 OK
2Server: nginx/1.12.1
3Date: Wed, 14 Feb 2018 13:38:54 GMT
4Content-Type: application/xml
5Content-Length: 351
6Connection: close
7X-req-id: 2NrqrYuki
8
9<?xml version="1.0" encoding="utf-8"?>
10<CreatePrefixKeyResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
11    <BucketName>bucketName</BucketName>
12    <Prefix>exampleprefix</Prefix>
13    <UserName>examplename</UserName>
14    <SecretKey>LVQaicnPLR7eVg5soGgWCJjGe3w3S8toaRxd329xv4w</SecretKey>
15    <AccessKey>6hGka6NefpEoNse4xJOEx3</AccessKey>
16</CreatePrefixKeyResult>

Описание XML-элементов

  • BucketName — имя бакета.
  • Prefix — префикс пути, который будет доступен по данным ключам.
  • UserName — пользователь, которому принадлежат ключи.
  • SecretKey — секретный ключ, возвращается только при создании, получить ключ впоследствии невозможно.
  • AccessKey — публичный ключ.

Список префиксных пользователей

Запросы

1GET /?pak&marker=prefix&max-keys=2&name-prefix=prefix HTTP/1.1
2Authorization: authorization string
3Connection: close
4Date: Wed, 14 Feb 2018 12:28:10 GMT
5Host: bucketName.hb.vkcs.cloud

Параметры запроса

  • max-keys — максимальное количество элементов в листинге optional.
  • name-prefix — префикс по именам пользователей optional.
  • marker — имя или часть имени пользователя с которого начнется листинг optional.

Ответ

1HTTP/1.1 200 OK
2
3Server: nginx/1.12.1
4Date: Wed, 14 Feb 2018 13:39:27 GMT
5Content-Type: application/xml
6Content-Length: 457
7Connection: close
8X-req-id: 35RBZWzAX
9
10<?xml version="1.0" encoding="utf-8"?>
11<ListPrefixKeysResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
12    <BucketName>bucketName</BucketName>
13    <IsTruncated>false</IsTruncated>
14    <NamePrefix>prefix</NamePrefix>
15    <MaxKeys>2</MaxKeys>
16    <Marker>prefix</Marker>
17    <Contents>
18          <UserName>prefixusers/prefix/for1</UserName>
19          <Prefix>prefix/for1</Prefix>
20    </Contents>
21    <Contents>
22          <UserName>prefixusers/prefix/for2</UserName>
23          <Prefix>prefix/for2</Prefix>
24     </Contents>
25</ListPrefixKeysResult>

Описание XML-элементов

  • BucketName — имя бакета.
  • IsTruncated — true, если выведена только часть префиксных пользователей.
  • Marker — имя или часть имени пользователя с которого начнется листинг.
  • NamePrefix — префикс по именам пользователей.
  • MaxKeys — максимальное количество элементов в листинге.
  • Contents — блок, содержащий пользователя.
  • UserName — имя пользователя.
  • Prefix — префикс, по которому доступны данные для этого пользователя.

Удаление префиксного ключа у пользователя

Запрос

1DELETE /?pak&prefix=prefix/for1&username=prefixusers/prefix/for1 HTTP/1.1
2Authorization: authorization string
3Connection: close
4Date: Wed, 14 Feb 2018 13:05:31 GMT
5Host:  bucketName.hb.vkcs.cloud

Параметры запроса

  • username — имя пользователя.
  • prefix — путь, по которому доступны объекты для данного пользователя optional.

Ответ

1HTTP/1.1 200 OK
2
3Server: nginx/1.12.1
4Date: Wed, 14 Feb 2018 13:39:27 GMT
5Content-Type: application/xml
6Content-Length: 207
7Connection: close
8X-req-id: 33yVonNmQ
9
10<?xml version="1.0" encoding="utf-8"?>
11<DeletePrefixKeyResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
12     <UserName>prefixusers/prefix/for1</UserName>
13     <Prefix>prefix/for1</Prefix>
14</DeletePrefixKeyResult>

Описание XML-элементов

  • Prefix — префикс пути, который будет доступен по данным ключам.
  • UserName — пользователь, которому принадлежат ключи.