Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

User Groups

最終更新 Markdown で表示Agent セットアップ

User Groups は、アクセス制御の観点で同等に扱う アカウントメンバー の集まりです。User Groups には権限ポリシーを割り当てられ、グループ内の各メンバーは、その User Group に割り当てたロールの権限をすべて受け取ります。メンバーに個別の権限もある場合、実効権限は個別権限と、所属するすべての User Groups の権限の和集合になります。

User Group を手動で作成する

  1. Cloudflare ダッシュボードで Members ページを開きます。

    Members を開く ↗
  2. Groups タブを選びます。

  3. Create a Group を選び、新しいグループの名前と説明を入力します。

  4. Create group を選び、変更を確定します。Group members タブが表示されます。

  5. Add members を選びます。

  6. グループに含めるメンバーを選び、Add to Group を選びます。

権限ポリシーを割り当てる

グループを作成したら、Permission Policy をグループに追加できます。

  1. Groups タブの Permission policiesAdd a Policy を選びます。
  2. グループのメンバーに適用するスコープと権限を指定します。
  3. Create Policy を選び、グループに適用します。

前のセクションのロール識別子を使い、グループの権限ポリシーを作成できます。

export ADMIN_ROLE='...' # id field from admin or desired role entry from permission_groups API response

リクエスト例curl
$ cat <<-PAYLOAD | curl -XPUT  -H "Authorization: Bearer $AOT" -H "Content-type: application/json" --data-binary @- https://api.cloudflare.com/client/v4/accounts/$ACCT/iam/user_groups/$PUSHED_GROUP  | jq .
{
    "policies": [
        {
            "access": "allow",
            "permission_groups": [{"id": "$ADMIN_ROLE"}],
            "resource_groups": [{
                "scope": {
                    "key": "com.cloudflare.api.account.$ACCT",
                    "objects": [{"key":"*"}]
                }
            }]
        }
    ]
}
PAYLOAD

ポリシーを空の状態にリセットする

グループポリシーの作成時に誤りがあった場合や、ポリシーを空の状態に戻す必要がある場合は、空のポリシー配列を付けてグループ API に再度 PUT リクエストを送り、新しいポリシーで上書きします。

$ cat <<-PAYLOAD | curl -XPUT  -H "Authorization: Bearer $AOT" -H "Content-type: application/json" --data-binary @- https://api.cloudflare.com/client/v4/accounts/$ACCT/iam/user_groups/$PUSHED_GROUP  | jq .
{
    "policies": []
}
PAYLOAD

SCIM で User Group を作成する

SCIM 連携を設定している場合は、上流の Identity Provider から User Groups を Cloudflare に同期できます。Cloudflare の SCIM 連携では、アカウントごとに外部アプリケーションが 1 つ必要です。

User Group を SCIM で設定するには、SCIM によるプロビジョニングガイド を参照してください。

User Groups に権限を設定する

ダッシュボードで手動作成した場合も、SCIM 連携で作成した場合も、最後に権限を割り当てます。

  1. Manage members > Members > User groups を開きます。
  2. 権限を割り当てるユーザーグループを選びます。
  3. Permission policies タブを開き、Add policy を選びます。
  4. ポリシーに適用するスコープとロールを選びます。
  5. Save を選び、ポリシーを適用します。

開始する前に、内部で作成したグループ、または Cloudflare にプッシュ済みのグループを、次のコマンドで確認します。

1. ユーザーグループを取得する

リクエスト例curl
$ curl -X GET -H "Authorization: Bearer $AOT" https://api.cloudflare.com/client/v4/accounts/$ACCT/iam/user_groups | jq .
レスポンス例curl
{
    "errors": [],
    "messages": [],
    "result": [
        {
            "created_on": "2025-01-24T15:31:36.759979Z",
            "id": "f234f49f66df4db8864c5189fe78c87f",
            "modified_on": "2025-01-24T15:35:50.151764Z",
            "name": "My Cool Demo Group",
            "status": "V"
        },
        {
            "created_on": "2025-01-16T20:43:01.019311Z",
            "id": "7148c1e4d9f247f5b6dcd3ef20f998f9",
            "modified_on": "2025-01-16T20:44:07.627233Z",
            "name": "My Cool Demo Group, now with policies!",
            "policies": [
                {
                    "access": "allow",
                    "created_on": "2025-01-16T20:44:07.627233Z",
                    "id": "8d82cf8c15c64e07a4bee58e00d80bca",
                    "modified_on": "2025-01-16T20:44:07.627233Z",
                    "permission_groups": [
                        {
                            "created_on": "2023-06-21T18:58:29.907496Z",
                            "id": "a1a099e3256942259bfde18c688b67d5",
                            "meta": {
                                "description": "Grants write access to Page Shield for domain",
                                "editable": "false",
                                "label": "domain_page_shield",
                                "scopes": "com.cloudflare.api.account.zone"
                            },
                            "modified_on": "2023-06-21T18:58:29.907496Z",
                            "name": "Domain Page Shield",
                            "permissions": ["dev note: snipped for length"],
                            "status": "V"
                        }
                    ],
                    "resource_groups": [
                        {
                            "created_on": "2025-01-16T20:44:07.627233Z",
                            "modified_on": "2025-01-16T20:44:07.627233Z",
                            "scope": {
                                "key": "com.cloudflare.api.account.a3324a084cd290080b563ab39c91545a",
                                "objects": [
                                    {
                                        "key": "*"
                                    }
                                ]
                            }
                        }
                    ],
                    "status": "V"
                }
            ],
            "status": "V"
        }
    ],
    "result_info": {
        "count": 2,
        "page": 1,
        "per_page": 100,
        "total_count": 2,
        "total_pages": 1
    },
    "success": true
}

2. リソース ID に対してクエリする

IdP からプッシュしたグループのタグを特定し、そのリソース ID に対して直接クエリします。

export PUSHED_GROUP='...' # Pull this value from the "id" json field in the group list response

リクエスト例curl
$ curl -XGET -H "Authorization: Bearer $AOT" https://api.cloudflare.com/client/v4/accounts/$ACCT/iam/user_groups/$PUSHED_GROUP | jq .

レスポンスには、Identity Provider で指定したグループ名が含まれ、ポリシーは付いていない状態になります。

3. 利用可能な permission groups を確認する

グループのポリシーを変更する前に、アカウントの API をクエリして、利用可能な permission groups(ロール)を確認します。

リクエスト例curl
$ curl -XGET -H "Authorization: Bearer $DEMO_AOT" https://api.cloudflare.com/client/v4/accounts/$ACCT/iam/permission_groups | jq .
レスポンス例curl
{
  "result": [
    {
      "id": "1a0fc8bdeae24387b64d5b8de1ad052a",
      "name": "Administrator Read Only",
      "status": "V",
      "meta": {
        "description": "Can access the full account in read-only mode.",
        "editable": "false",
        "label": "admin_readonly",
        "scopes": "com.cloudflare.api.account"
      },
      "created_on": "2020-07-06T12:19:13.099114Z",
      "modified_on": "2020-10-13T11:18:00.208228Z"
    },
    {
      "id": "ce2c69b09baf4ca38223910a8b7e07a9",
      "name": "Administrator",
      "status": "V",
      "meta": {
        "description": "Can access the full account, except for membership management and billing.",
        "editable": "false",
        "label": "admin",
        "scopes": "com.cloudflare.api.account"
      },
      "created_on": "2020-07-06T12:19:13.099114Z",
      "modified_on": "2020-10-13T11:18:00.208228Z"
    }
  ],
  "success": true,
  "errors": [],
  "messages": []
}

グループメンバーを確認する

SCIM 操作でプッシュしたグループとユーザーメンバーが IdP から同期されていることを確認するには、Group Members API をクエリします。

リクエスト例curl
$ curl -XGET -H "Authorization: Bearer $DEMO_AOT" https://api.cloudflare.com/client/v4/accounts/$ACCT/iam/user_groups/$PUSHED_GROUP/members | jq .
レスポンス例curl
{
  "result": [
    {
      "id": "a4366a09c43a0b0c4606dc5528472bb6",
      "email": "[email protected]"
    },
    {
      "id": "0329c17f6c13f5202dc38d2036efb1a9",
      "email": "[email protected]"
    }
  ],
  "result_info": {
    "page": 1,
    "per_page": 100,
    "total_pages": 1,
    "count": 2,
    "total_count": 2
  },
  "success": true,
  "errors": [],
  "messages": []
}

役に立ちましたか?