← Cloudflare R2 / r2 / api
Аутентификация
Вы можете сгенерировать API-токен, который будет использоваться как Access Key для работы с существующими S3-совместимыми SDK или XML API.
Прежде чем создавать API-токен, необходимо приобрести R2.
Чтобы создать API-токен:
-
На панели управления Cloudflare перейдите к разделу Объектное хранилище R2 страницу.
Перейдите в Обзор ↗ -
В разделе Сведения об аккаунте разделе выберите Управление рядом с API-токены.
-
Выберите, что вы хотите создать:
- Создание Account API token : эти токены привязаны к самому аккаунту Cloudflare и могут использоваться любой авторизованной системой или пользователем. Просматривать и создавать их могут только пользователи с ролью Super Administrator. Такие токены остаются действительными, пока их не отзовут вручную.
- Создание User API token : эти токены привязаны к вашей личной учётной записи Cloudflare. Они наследуют ваши личные разрешения и становятся неактивными, если ваш пользователь удаляется из аккаунта.
-
В разделе Разрешения, выберите типы разрешений для токена. См. Разрешения для получения информации о каждой опции.
-
(Необязательно) Если вы выберете Object Read and Write или Object Read разрешения, вы можете ограничить область действия токена набором бакетов.
-
Выберите Создание Account API token или Создание User API token.
После успешного создания токена проверьте свой Secret Access Key и Access Key ID значения. Их также часто называют Client Secret и Client ID соответственно.
Вам также потребуется настроить endpoint в вашем S3-клиенте, чтобы https://<ACCOUNT_ID>.r2.cloudflarestorage.com.
Найдите свой account ID в панели управления Cloudflare.
К бакетам, созданным с указанием юрисдикции, необходимо обращаться через конечные точки, специфичные для этой юрисдикции:
- Европейский союз (EU):
https://<ACCOUNT_ID>.eu.r2.cloudflarestorage.com - FedRAMP:
https://<ACCOUNT_ID>.fedramp.r2.cloudflarestorage.com - Соединённые Штаты (US):
https://<ACCOUNT_ID>.us.r2.cloudflarestorage.com
Разрешения
| Разрешение | Описание |
|---|---|
| Admin Read & Write | Позволяет создавать, получать список и удалять бакеты, изменять их конфигурацию, читать, записывать объекты и получать их список, а также читать и записывать таблицы каталога данных и связанные с ними метаданные. |
| Admin Read only | Позволяет получать список бакетов и просматривать их конфигурацию, читать объекты и получать их список, а также читать данные из таблиц каталога данных и связанных с ними метаданных. |
| Object Read & Write | Позволяет читать, записывать объекты в отдельных бакетах и получать их список. |
| Object Read only | Позволяет читать объекты в отдельных бакетах и получать их список. |
Создание API-токенов через API
Вы можете создавать API-токены через API и использовать их для генерации соответствующих значений Access Key ID и Secret Access Key. Чтобы начать, см. Создание API-токенов через API. Ниже приведены особенности для R2.
Access Policy
Access Policy определяет, к каким ресурсам у токена есть доступ и какие у него разрешения.
Материалы
Для R2 актуальны два типа ресурсов: Account и Bucket. Дополнительную информацию о типе ресурса Account см. Аккаунт.
Бакет
Включите набор бакетов R2 или все бакеты в аккаунте.
Конкретный бакет представлен как:
"com.cloudflare.edge.r2.bucket.<ACCOUNT_ID>_<JURISDICTION>_<BUCKET_NAME>": "*"ACCOUNT_ID: См. Найдите ID зоны и аккаунта.JURISDICTION: юрисдикция в которой находится бакет R2. Для бакетов, созданных без указания конкретной юрисдикции, это значение будетdefault.BUCKET_NAME: имя бакета, к которому применяется ваша Access Policy.
Все бакеты аккаунта представлены следующим образом:
"com.cloudflare.api.account.<ACCOUNT_ID>": {
"com.cloudflare.edge.r2.bucket.*": "*"
}ACCOUNT_ID: См. Найдите ID зоны и аккаунта.
Группы разрешений
Определите, что группы разрешений должно быть применено.
Группа разрешений | Ресурс | Описание | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Workers R2 Storage Write | Аккаунт | Позволяет создавать, удалять и получать список бакетов, изменять их конфигурацию, а также читать, записывать и получать список объектов. | ||||||||||||
Workers R2 Storage Read | Аккаунт | Позволяет получать список бакетов и просматривать их конфигурацию, а также читать и получать список объектов. | ||||||||||||
Workers R2 Storage Bucket Item Write | Бакет | Позволяет читать, записывать объекты в бакетах и получать их список. | ||||||||||||
Workers R2 Storage Bucket Item Read | Бакет | Позволяет читать объекты в бакетах и получать их список. | ||||||||||||
Workers R2 Data Catalog Write | Аккаунт | Позволяет читать и записывать данные в каталогах данных. Это разрешение предоставляет доступ к интерфейсу каталога Iceberg REST. | ||||||||||||
Workers R2 Data Catalog Read | Аккаунт | Позволяет читать данные из каталогов данных. Это разрешение предоставляет доступ к интерфейсу каталога Iceberg REST только для чтения. |
Пример политики доступа
[
{
"id": "f267e341f3dd4697bd3b9f71dd96247f",
"effect": "allow",
"resources": {
"com.cloudflare.edge.r2.bucket.4793d734c0b8e484dfc37ec392b5fa8a_default_my-bucket": "*",
"com.cloudflare.edge.r2.bucket.4793d734c0b8e484dfc37ec392b5fa8a_eu_my-eu-bucket": "*"
},
"permission_groups": [
{
"id": "6a018a9f2fc74eb6b293b0c548f38b39",
"name": "Workers R2 Storage Bucket Item Read"
}
]
}
]Получение учётных данных S3 API из токена API
Значения Access Key ID и Secret Access Key можно получить из ответа Create Token API:
- Access Key ID:
idAPI-токена. - Secret Access Key: хеш SHA-256 API-токена
value.
См. Аутентификация в R2 API с помощью токенов аутентификации для руководства с примерами на JavaScript, Python и Go.
Временные учётные данные
Чтобы выпустить краткосрочные учетные данные с ограниченной областью действия на основе API-токена, используйте временные учётные данные. R2 поддерживает их генерацию через Temporary Credentials API либо локально путем подписания JWT секретным ключом доступа родительского токена.