← Cloudflare Tenant / tenant
Начало работы
Доступ к возможностям подготовки ресурсов Cloudflare упрощает создание аккаунтов Cloudflare и управление ими. Следующие шаги помогут вам начать выполнять запросы API для подготовки аккаунтов, пользователей и сервисов.
Перед началом работы
Настройка аккаунта партнёра Channel and Alliance
Прежде чем использовать Tenant API, вам нужно создание учётной записи, подтвердить свой адрес электронной почты, а также добавьте платежную информацию.
После того как вы подпишете партнёрское соглашение с Cloudflare, Cloudflare добавит определенные права доступа в ваш аккаунт, которые позволяют создавать и управлять пользовательскими аккаунтами. Если вы подписали партнёрское соглашение, а ваш аккаунт ещё не активирован, партнёрам MSP следует обращаться в [email protected] а партнёрам Agency Partners следует обращаться в [email protected].
Доступ к API
Вам также нужно получить свой API ключ для аутентификации запросов к Tenant API.
Дополнительные сведения об использовании Cloudflare API см. в нашем Обзор API.
Шаг 1: создание аккаунта
У каждого клиента или команды, использующих Cloudflare, должен быть собственный аккаунт. Это обеспечивает надлежащую безопасность и корректный доступ к ресурсам. Каждый аккаунт представляет собой контейнер для зон и других ресурсов. В зависимости от ваших потребностей вы можете создать несколько аккаунтов даже для одного клиента или команды.
Когда вы создаете аккаунт с помощью Tenant API, ваш пользователь Cloudflare владеет этим аккаунтом на всех этапах: от создания и текущего управления до итогового удаления.
Чтобы создать аккаунт в рамках вашего Tenant с помощью панели управления:
- Войдите в Панель управления Cloudflare ↗.
- Перейдите в Tenant > Управляемые аккаунты.
- Выберите Create Account.
- Введите Имя аккаунта, Account Description, а также Tenant unit.
- Выберите подходящую подписку аккаунта.
- Выберите Add Account.
Чтобы создать аккаунт с помощью API, выполните POST запрос к /accounts конечная точка и укажите следующие значения:
-
nameстрока- Название аккаунта, которое отображается в панели управления Cloudflare.
-
typeenum- Допустимыми значениями являются
standard(по умолчанию) иenterprise. Для клиентов на самообслуживании используйтеstandard. Для клиентов уровня Enterprise используйтеenterprise.
- Допустимыми значениями являются
-
unitобъект-
Сведения о единице тенанта.
-
idстрока- (необязательно) ID unit, в котором нужно создать этот аккаунт. Указывается, если пользователь управляет несколькими Tenant. ID unit это
unit_tagиз вашего сведения о Tenant.
- (необязательно) ID unit, в котором нужно создать этот аккаунт. Указывается, если пользователь управляет несколькими Tenant. ID unit это
-
Know-Your-Customer (опционально)
Все параметры KYC являются текстовыми полями, имеют ограничение в 120 символов и необязательны, если иное не требует Tenant.
-
business_nameстрока- (необязательно) Название организации, связанной с этим аккаунтом.
-
business_addressстрока- (необязательно) Адрес организации, связанной с этим аккаунтом.
-
business_emailстрока- (необязательно) Email организации, связанной с этим аккаунтом.
-
business_phoneстрока- (необязательно) Номер телефона организации, связанной с этим аккаунтом.
-
external_metadataстрока- (необязательно) Внешние метаданные для этого аккаунта.
curl "https://api.cloudflare.com/client/v4/accounts" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"name": "<ACCOUNT_NAME>",
"type": "standard"
}'Успешный запрос вернёт HTTP-статус 200 и следующим телом ответа:
{
"result": {
"id": "2bab6ace8c72ed3f09b9eca6db1396bb",
"name": "<ACCOUNT_NAME>",
"type": "standard",
"settings": {
"enforce_twofactor": false
}
},
"success": true,
"errors": [],
"messages": []
}Запрос с ID unit:
curl "https://api.cloudflare.com/client/v4/accounts" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"name": "<ACCOUNT_NAME>",
"type": "standard",
"unit": {
"id": "1a2b3c4d5e6f7g8h"
}
}'Запрос с ID unit и KYC:
curl "https://api.cloudflare.com/client/v4/accounts" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"name": "<ACCOUNT_NAME>",
"type": "standard",
"business_name": "Cloudflare",
"business_email": "[email protected]",
"business_address": "San Francisco",
"business_phone": "1234567890",
"external_metadata": "{'\''testKey'\'': '\''testValue'\''}",
"unit": {
"id": "1a2b3c4d5e6f7g8h"
}
}'Шаг 2: предоставление доступа пользователю
После создания аккаунта нужно либо предоставить клиенту прямой доступ к Cloudflare, либо создать для него отдельный интерфейс взаимодействия.
Первый способ дает клиентам полный контроль над всеми аспектами Cloudflare, а второй позволяет вам интегрировать работу клиента с Cloudflare в панель управления, которую контролируете вы и с которой клиент, возможно, уже знаком.
Вариант 1: прямой доступ к Cloudflare
Когда вы предоставляете пользователю доступ к аккаунту, Cloudflare отправляет ему приглашение, чтобы он мог получить этот доступ. Если у пользователя еще нет учетной записи Cloudflare, Cloudflare проведет его через процесс ее создания. После создания учетной записи пользователь получит доступ к аккаунту и всем уже созданным зонам.
Использование панели управления
Если вы хотите предоставить клиентам доступ к их собственным аккаунтам, это делается так же, как если бы вы приглашение участника команды чтобы помочь вам управлять аккаунтом.
Использование API
Вы также можете предоставить доступ к панели управления Cloudflare с помощью API.
curl 'https://api.cloudflare.com/client/v4/accounts/<CUSTOMER_ACCOUNT_ID>/members' \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"email": "<CUSTOMER_EMAIL>",
"roles": ["<USER_ROLE>"]
}'В большинстве случаев вам потребуется создавать новых пользователей с ролью Administrator у которого всегда есть ID 05784afa30c1afe1440e79d9351c7430.
Если у клиента тарифный план Enterprise, ему доступен более широкий набор ролей пользователей. Чтобы получить полный список доступных ролей, отправьте GET запрос к API.
Вариант 2: доступ через интерфейс
Если вам нужен больший контроль над тем, как клиенты используют Cloudflare, или вы хотите, чтобы клиенты пользовались вашей собственной, уже знакомой им панелью управления, используйте Cloudflare API для создания такого решения.
Это означает, что вы будете выполнять вызовы API к Cloudflare от имени своих клиентов. Чтобы не получить ограничено по скорости запросов через наш API, Cloudflare рекомендует создавать аккаунты и пользователей для каждого из ваших клиентов. Изменения, внесённые клиентским A должны выполняться через пользователя A а изменения, внесённые клиентским B должны выполняться через пользователя B.
Чтобы предоставить доступ через интерфейс, необходимо создать служебного пользователя, поскольку никто не будет входить в панель управления под его учетными данными. Если вы планируете использовать этот способ, Cloudflare позволит вам увидеть API ключ, чтобы выполнять вызовы API от имени этого пользователя.
curl "https://api.cloudflare.com/client/v4/users" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"email": "<[email protected]>"
}'{
"result": {
"id": "60758bd48392a06215ae817bc35084b6",
"email": "<[email protected]>",
"first_name": null,
"last_name": null,
"username": "17bd2796b374cec14976ac3bced85c05",
"telephone": null,
"country": null,
"created_on": "2019-02-21T23:20:28.645256Z",
"modified_on": "2019-02-21T23:20:28.645256Z",
"two_factor_authentication": {
"enabled": false,
"locked": false
},
"api_key": "xxx"
},
"success": true,
"errors": [],
"messages": []
}Шаг 3: создание зоны
После того как у вас появился аккаунт клиента и пользователи клиента (или сервисные пользователи), нужно создать зону.
Для этого отправьте POST запрос к /zones конечная точка (включая ID клиентского аккаунта, полученный при Шаг 1).
curl "https://api.cloudflare.com/client/v4/zones" \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"name": "example.com",
"account": {
"id": "<CUSTOMER_ACCOUNT_ID>"
}
}'Шаг 4: создание подписки на тарифный план зоны
После того как для клиента подготовлена зона, вы можете добавить подходящий тарифный план зоны в соответствии с вашим соглашением реселлера.
Чтобы создать подписку на зону, что обычно используется для повышения тарифного плана зоны с PARTNERS_FREE до платного Тарифный план зоны, отправьте POST запрос к /zones/{zone_id}/subscription конечная точка и укажите следующие значения:
-
rate_planобъект- Содержит тарифный план зоны, соответствующий тому, что клиенты заказывают на панели управления. Список доступных значений см. в Подписки зон.
-
component_valuesмассив- Дополнительные услуги в зависимости от вашего реселлерского соглашения, например дополнительные
page_rules.
- Дополнительные услуги в зависимости от вашего реселлерского соглашения, например дополнительные
-
frequencyстрока- Как часто подписка продлевается автоматически (по умолчанию
"monthly").
- Как часто подписка продлевается автоматически (по умолчанию
curl 'https://api.cloudflare.com/client/v4/zones/{zone_id}/subscription' \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"rate_plan": {
"id": "<RATE_PLAN>"
},
"frequency": "annual"
}'curl 'https://api.cloudflare.com/client/v4/zones/{zone_id}/subscription' \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"rate_plan": {
"id": "PARTNERS_BIZ"
},
"component_values": [
{
"name": "page_rules",
"value": 50
}
]
}Шаг 5: создание других подписок
В зависимости от условий соглашения вам может быть разрешено перепродавать другие дополнительные услуги. Они предоставляются в виде подписок на уровне аккаунта.
Чтобы создать подписку на аккаунт, отправьте POST запрос к /accounts/{account_id}/subscriptions конечная точка и укажите следующие значения:
-
rate_planобъект- Содержит подписку на аккаунт, соответствующую определенной дополнительной услуге. Список доступных значений см. в Доступные подписки.
-
component_valuesмассив- Дополнительные услуги в зависимости от вашего реселлерского соглашения, например дополнительные конечные точки для балансировки нагрузки или дополнительные места для Cloudflare Zero Trust. Если это не включено, подписка использует значения по умолчанию для каждой покупки.
-
frequencyстрока- Как часто подписка продлевается автоматически (по умолчанию
"monthly").
- Как часто подписка продлевается автоматически (по умолчанию
curl 'https://api.cloudflare.com/client/v4/accounts/{account_id}/subscriptions' \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"rate_plan": {
"id": "<RATE_PLAN_NAME>"
}
}'Шаг 6: настройка зоны и сервисов
После добавления необходимых подписок вы или ваш клиент можете переходить к настройке различных сервисов и тонкой настройке параметров аккаунта и зоны.
Настроить это может любой пользователь с доступом к аккаунту (и соответствующими правами доступа). Этот процесс ничем не отличается от настройки любого другого аккаунта Cloudflare. Дополнительные рекомендации см. в нашем Документация по продуктам.