デバイスプロファイルは、組織内の特定のデバイス群に対する Cloudflare One Client の設定 を定義します。複数のプロファイルを作成し、ユーザーの ID、デバイスの場所、その他の条件に基づいて異なる設定を適用できます。
たとえば、ある ID プロバイダーグループ(特定のオフィス拠点を表す)のユーザーは、WARP トンネルから除外すべき経路が異なる場合があります。また、一部のデバイスタイプ(Linux など)では、ローカルの開発用サービスに合わせて DNS 設定を変える必要があります。
- Cloudflare ダッシュボード ↗ で Zero Trust > Team & Resources > Devices > Device profiles > General profiles を開きます。
- Create new profile を選びます。Default プロファイルのコピーが作成されます。
- プロファイルに任意の名前を入力します。
- このプロファイルを使うデバイスを定義するルールを作成します。利用できる セレクター、演算子、値 の詳細を確認してください。
- これらのデバイス向けに デバイスクライアント設定 を構成します。
- Create profile を選びます。
プロファイルは Profile settings の一覧に表示されます。希望する 優先順位 に合わせて、一覧内のプロファイルを並べ替えられます。
Devices API に POST リクエストを送ります。
Required API token permissions
At least one of the following token permissions is required:Zero Trust Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/devices/policy" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"allow_mode_switch": false,
"allow_updates": false,
"allowed_to_leave": false,
"auto_connect": 600,
"captive_portal": 180,
"description": "Example device profile recommended in the implementation documentation. For details, refer to https://developers.cloudflare.com/learning-paths/replace-vpn/configure-device-agent/device-profiles/",
"disable_auto_fallback": true,
"enabled": true,
"exclude_office_ips": false,
"match": "identity.email in {\"[email protected]\"} or any(identity.groups.name[*] in {\"developers\" \"admin\"}) and os.name == \"windows\"",
"name": "Example device profile",
"precedence": 101,
"service_mode_v2": {
"mode": "warp"
},
"support_url": "https://support.example.com",
"switch_locked": true
}'-
cloudflare_api_token↗ に次の権限を追加します。Zero Trust Write
-
cloudflare_zero_trust_device_custom_profile↗ リソースで新しいプロファイルを作成します。resource "cloudflare_zero_trust_device_custom_profile" "example" { account_id = var.cloudflare_account_id name = "Example device profile" description = "Example device profile recommended in the implementation documentation. For details, refer to https://developers.cloudflare.com/learning-paths/replace-vpn/configure-device-agent/device-profiles/" allow_mode_switch = false allow_updates = false allowed_to_leave = false auto_connect = 600 captive_portal = 180 disable_auto_fallback = true enabled = true exclude_office_ips = false precedence = 101 service_mode_v2 = {mode = "warp"} support_url = "https://support.example.com" switch_locked = true tunnel_protocol = "wireguard" match = trimspace(replace(<<-EOT identity.email in {"[email protected]"} or any(identity.groups.name[*] in {"developers" "admin"}) and os.name == "windows" EOT , "\n", " ")) }
-
Cloudflare ダッシュボード ↗ で Zero Trust > Team & Resources > Devices > Device profiles > General profiles を開きます。
-
更新する デバイスプロファイル を探し、Configure を選びます。
-
セレクター で一致ルールを追加または調整し、必要に応じてこのプロファイルの デバイスクライアント設定 を変更します。
-
Save profile を選びます。
新しく更新した設定がデバイスへ反映されるまで、最大 10 分かかることがあります。
特定のデバイスの、最後に有効だったデバイスプロファイルを確認するには:
- Cloudflare ダッシュボード ↗ で Zero Trust > Team & Resources > Devices を開きます。
- デバイス一覧から対象のデバイスを探します。
- Last active device profile でデバイスプロファイルを確認します。
ユーザーのデバイスについて、最後に有効だったデバイスプロファイルを確認するには:
- Cloudflare ダッシュボード ↗ で Zero Trust > Team & Resources > Users を開きます。
- User name で調査したいユーザーを探します。
- Devices を選び、そのユーザーが使ったすべてのデバイスを表示します。
- 調査したいデバイスを探し、Device profile 列で、そのデバイスの最後に有効だったデバイスプロファイルを確認します。
または、DEX リモートキャプチャ でクライアント診断ログを収集できます。デバイスプロファイルの UUID は、検出レポート の Profile ID に表示されます。
デバイス上で現在使われているデバイスプロファイルとプロファイル設定を確認するには、ターミナルを開いて次を実行します。
warp-cli settingsデバイスプロファイルの UUID は Profile ID フィールドに表示されます。
デバイスプロファイルは、次のセレクター(条件)に一致するように設定できます。アイデンティティベースのセレクターは、ユーザーがアイデンティティプロバイダー(IdP)にログインして デバイスを登録 した場合にだけ使えます。
ユーザーのメールにもとづいてデバイスプロファイルを適用します。
| UI 名 | API の例 |
|---|---|
| User email | identity.email == "[email protected]" |
ユーザーが IdP でメンバーとして設定されている IdP グループ のメールアドレスにもとづいて、デバイスプロファイルを適用します。
| UI 名 | API の例 |
|---|---|
| User group emails | identity.groups.email == "[email protected]" |
ユーザーが IdP でメンバーとして設定されている IdP グループ の ID にもとづいて、デバイスプロファイルを適用します。
| UI 名 | API の例 |
|---|---|
| User group IDs | identity.groups.id == "12jf495bhjd7893ml09o" |
ユーザーが IdP でメンバーとして設定されている IdP グループ の名前にもとづいて、デバイスプロファイルを適用します。
| UI 名 | API の例 |
|---|---|
| User group names | identity.groups.name == "\"finance\"" |
デバイスのオペレーティングシステムにもとづいてデバイスプロファイルを適用します。
| UI 名 | API の例 |
|---|---|
| Operating system | os.name in {\"windows\" \"mac\"} |
デバイスの OS バージョン にもとづいてデバイスプロファイルを適用します。
| UI 名 | API の例 |
|---|---|
| Operating system version | os.version == \"1.2.0\" |
デバイスが接続している マネージドネットワーク にもとづいてデバイスプロファイルを適用します。
| UI 名 | API の例 |
|---|---|
| Managed network | network == \"Austin office\" |
SAML IdP の属性名と値にもとづいてデバイスプロファイルを適用します。
| UI 名 | API の例 |
|---|---|
| SAML Attributes | identity.saml_attributes == "\"group=finance\"" |
デバイスの登録に使った サービストークン にもとづいてデバイスプロファイルを適用します。
| UI 名 | API の例 |
|---|---|
| Service Token | identity.service_token_uuid == \"f174e90a-fafe-4643-bbbc-4a0ed4fc8415\" |
比較演算子は、デバイスプロファイルがセレクターにどう一致するかを決めます。
| 演算子 | 意味 |
|---|---|
| is | 定義した値と等しい |
| in | 定義した値のいずれかと一致する |
式内の複数の条件を評価するには、論理演算子を選びます。
| 演算子 | 意味 |
|---|---|
| And | 式内のすべての条件に一致する |
| Or | 式内のいずれかの条件に一致する |
Cloudflare One Client は、階層に基づいてデバイスプロファイルを動的に評価します。デバイスが接続すると、クライアントはダッシュボードに表示されている上から下の順でプロファイルを確認します。最初に一致したプロファイルを採用します。デバイスがプロファイルに一致した時点で評価を止め、以降のプロファイルはその決定を上書きできません。
Default プロファイルは、常にリストの最下部にあります。上にあるどのプロファイルの条件も満たさない場合にだけ適用されます。別のカスタムプロファイルをデフォルトにすると、その設定はすべて Default プロファイルへコピーされます。
管理者は、ユーザー ID、場所、オペレーティングシステムなどの条件に応じて異なる設定を適用するため、複数のプロファイルを作成できます。正しいポリシーがデバイスに適用されるよう、この上から下への評価順を理解しておくことが重要です。