Cloudflare のプロビジョニング機能を使うと、Cloudflare アカウントの作成と管理がしやすくなります。次の手順で、アカウント、ユーザー、サービスのプロビジョニング向け API 呼び出しを始められます。
Tenant API を使う前に、アカウントを作成 し、メールアドレスを確認 し、請求情報を追加 する必要があります。
Cloudflare とパートナー契約を結ぶと、Cloudflare がアカウントに 特定のエンタイトルメント を追加し、カスタムアカウントのプロビジョニングと管理ができるようになります。パートナー契約を締結済みで、まだアカウントが有効になっていない場合、MSP パートナーは partners@cloudflare.com、Agency Partners は agency@cloudflare.com へ連絡してください。
Tenant API へのリクエストを認証するには、API キーを取得 する必要があります。
Cloudflare API の使い方について詳しくは、API の概要 を参照してください。
Cloudflare を使う顧客またはチームは、それぞれ独自のアカウントを持つ必要があります。これにより、リソースのセキュリティとアクセスを適切に保てます。各アカウントは、ゾーンとその他のリソースのコンテナーとして機能します。必要に応じて、1 つの顧客またはチームに対して複数のアカウントを用意することもできます。
Tenant API でアカウントを作成すると、そのアカウントは作成から継続管理、最終的な削除まで、Cloudflare ユーザーが所有します。
ダッシュボードでテナント配下にアカウントを作成する手順は次のとおりです。
- Cloudflare ダッシュボード ↗ にログインします。
- Tenants > Managed Accounts を開きます。
- Create Account を選びます。
- Account Name、Account Description、Tenant Unit を入力します。
- 適切なアカウントのサブスクリプションを選びます。
- Add Account を選びます。
API でアカウントを作成するには、/accounts エンドポイントに POST リクエストを送り、次の値を含めます。
-
namestring- Cloudflare ダッシュボードに表示されるアカウント名です。
-
typeenum- 有効な値は
standard(デフォルト)とenterpriseです。セルフサービスのお客様はstandardを、Enterprise のお客様はenterpriseを使います。
- 有効な値は
-
unitobject-
テナントユニットに関する情報です。
-
idstring- (任意)このアカウントを作成するユニットの ID です。ユーザーが複数のテナントを管理している場合は指定が必要です。ユニット ID は テナント詳細 の
unit_tagです。
- (任意)このアカウントを作成するユニットの ID です。ユーザーが複数のテナントを管理している場合は指定が必要です。ユニット ID は テナント詳細 の
-
KYC パラメーターはすべてテキストフィールドで、120 文字制限があります。Tenant 側で必須になっていない限り、任意です。
-
business_namestring- (任意)このアカウントに紐づく事業者名です。
-
business_addressstring- (任意)このアカウントに紐づく事業者の住所です。
-
business_emailstring- (任意)このアカウントに紐づく事業者のメールアドレスです。
-
business_phonestring- (任意)このアカウントに紐づく事業者の電話番号です。
-
external_metadatastring- (任意)このアカウントの外部メタデータです。
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 を含むリクエスト:
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 と 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@business.com",
"business_address": "San Francisco",
"business_phone": "1234567890",
"external_metadata": "{'\''testKey'\'': '\''testValue'\''}",
"unit": {
"id": "1a2b3c4d5e6f7g8h"
}
}'アカウントを作成したら、お客様に Cloudflare への直接アクセスを付与するか、お客様が操作するインターフェースを構築する必要があります。
前者は Cloudflare のすべての側面をお客様が制御できます。後者は、お客様の Cloudflare 体験を、あなたが管理し、お客様がすでに使い慣れているダッシュボードへ統合できます。
アカウントへのユーザーアクセスを付与すると、Cloudflare はそのユーザーへ招待を送り、アカウントへアクセスできるようにします。Cloudflare ユーザーをまだ持っていない場合は、作成手順へ案内します。作成後、アカウントと、すでに作成済みのゾーンへのアクセスが付与されます。
お客様に個別アカウントへのアクセスを付与する方法は、アカウント管理を手伝う チームメイトを招待する 場合と同じです。
API を使って、Cloudflare ダッシュボードへのアクセスを付与することもできます。
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 プランの場合は、より幅広いユーザーロールを使えます。利用可能なロールの一覧を取得するには、API へ GET リクエストを送ります。
お客様の Cloudflare の使い方をより強く制御したい場合や、お客様がすでに知っている既存ダッシュボードを使わせたい場合は、Cloudflare API でその体験を構築します。
つまり、お客様の代わりに Cloudflare へ API を呼び出すことになります。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": "<ID@example.com>"
}'{
"result": {
"id": "60758bd48392a06215ae817bc35084b6",
"email": "<ID@example.com>",
"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": []
}顧客アカウントと顧客ユーザー(またはサービスユーザー)を用意したら、ゾーンを作成します。
/zones エンドポイントへ POST リクエストを送ります(ステップ 1 で受け取った顧客アカウント ID を含めます)。
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>"
}
}'顧客向けのゾーンをプロビジョニングしたら、リセラー契約に基づく適切なゾーンプランを追加できます。
ゾーンサブスクリプションを作成します。通常は、ゾーンのプランを PARTNERS_FREE から有料の Zone プラン にアップグレードするために使います。/zones/{zone_id}/subscription エンドポイントに POST リクエストを送信し、次の値を含めます。
-
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
}
]
}契約によっては、ほかのアドオンサービスを再販できます。これらはアカウントレベルのサブスクリプションとしてプロビジョニングします。
アカウントサブスクリプションを作成するには、/accounts/{account_id}/subscriptions エンドポイントへ POST リクエストを送り、次の値を含めます。
-
rate_planobject- 特定のアドオンサービスに対応するアカウントサブスクリプションです。利用できる値の一覧は 利用できるサブスクリプション を参照してください。
-
component_valuesarray- リセラー契約に応じた追加サービスです。例として、Load Balancing の追加エンドポイントや Cloudflare Zero Trust の追加シートがあります。含めない場合、サブスクリプションには各購入に関連するデフォルト値が入ります。
-
frequencystring- サブスクリプションが自動更新される間隔です(デフォルトは
"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>"
}
}'必要なサブスクリプションを追加したら、各種サービスの設定と、アカウントおよびゾーン設定の調整に進めます。
設定は、アカウントへのアクセス権(と適切なユーザー権限)を持つ人が行えます。手順は、ほかの Cloudflare アカウントの設定と同じです。追加の案内は 製品ドキュメント を参照してください。