Cloudflare Access は、設定した Access ポリシーを適用して、誰がアプリケーションに到達できるかを決めます。
すべての Access ポリシーは、次の 4 つの構成要素でできています。
- Actions: ユーザーがポリシーに一致したときの動作(Allow、Block、Bypass、Service Auth)
- Rule types: 条件の組み合わせ方(Include、Require、Exclude)
- Selectors: 確認する属性(メールドメイン、国、デバイスポスチャなど)
- Values: 照合する具体的な値(
@example.comなど)
アクションでは、特定のユーザーまたはユーザーグループに権限を与えるか拒否するかを決めます。ポリシーごとに設定できるアクションは 1 つだけです。
Cloudflare Access の Allow アクションは、一定の条件を満たすユーザーが Access 配下のアプリケーションに到達することを許可します。
次の表は、IdP で検証した @example.com のメールアドレスを持つユーザーなら誰でもアプリケーションに到達できる、Cloudflare Access の Allow ポリシーの例です。
| アクション | ルールタイプ | セレクター | 値 |
|---|---|---|---|
| Allow | Include | 次で終わるメールアドレス | @example.com |
同じポリシーアクションに Require ルールを追加すると、追加の確認を強制できます。Exclude ルールがある場合、その定義に当てはまるユーザーはアプリケーションに到達できません。
たとえば、次の表は Require と Exclude ルール付きの Allow ポリシーです。この設定では、IdP で検証した @team.com のメールアドレスを持つポルトガルのユーザーなら誰でもアプリケーションに到達できます。ただし user-1 と user-2 は除きます。
| Action | Rule type | Selector | Value |
|---|---|---|---|
| Allow | Include | Country | Portugal |
| Require | Emails Ending In | @team.com |
|
| Exclude | user-1@team.com, user-2@team.com |
Cloudflare Access の Block アクションは、一定の条件を満たすユーザーがアプリケーションに到達することを防ぎます。たとえば、次の表は、承認済み IP のリスト にないロシアの送信元 IP からのリクエストをブロックする Block ポリシーです。
| アクション | ルールタイプ | セレクター | 値 |
|---|---|---|---|
| Block | Include | 国 | Russian Federation |
| Exclude | IP リスト | Corporate IP allowlist |
Block ポリシーは、Allow ポリシー と組み合わせて、Allow ポリシーの例外を切り出す用途に向いています。Access はデフォルトで拒否するため、Block ポリシーに一致しないユーザーでも、Allow ポリシーに明示的に一致しなければアクセスは拒否されます。
Cloudflare Access の Bypass アクションは、特定のトラフィックに対する Access の適用を無効にします。
Bypass アクションは、定義したルール条件に合うトラフィックに対する Access の適用をすべて無効にします。Bypass は通常、特定のエンドポイントを公開する必要があるアプリケーションで使います。
たとえば、一部のアプリケーションでは /admin 配下のエンドポイントを公開ルーティング可能にする必要があります。この場合、ドメイン test.example.com/admin/<your-url> 向けの Access アプリケーションを作成し、次の表の Bypass ポリシーを追加できます。
| アクション | ルールタイプ | セレクター | 値 |
|---|---|---|---|
| Bypass | Include | Everyone | Everyone |
Zero Trust セキュリティモデルの一環として、社内アプリケーションへの恒久的な直接アクセスを Bypass で与えることは Cloudflare は推奨しません。社内ネットワーク上の従業員に、つなぎ目のない安全なアクセスを提供するには、Cloudflare Tunnel で プライベートネットワークを接続 し、ユーザーを Cloudflare One Client 経由で接続させます。
デバイスポスチャチェック ルールを含む Bypass ポリシーは、次の場合に機能しません。
これらの制限を回避して Access をバイパスするには、ポリシーアクションを Service Auth に変更することを推奨します。
Cloudflare Access の Service Auth ルールは、アイデンティティプロバイダー(IdP)へのログインを必要としない認証フロー(サービストークンや mutual TLS など)を強制します。
次の表は、Cloudflare Access の Service Auth ポリシー設定の例です。
| Action | Rule type | Selector |
|---|---|---|
| Service Auth | Include | Valid certificate |
ルールタイプは論理演算子のように働き、条件をどう組み合わせてユーザーを評価するかを決めます。すべての Access ポリシーには、少なくとも 1 つの Include ルールが必要です。この Include ルールが、アプリケーションにアクセスできる候補ユーザーの初期集合を定義します。そのあと Exclude と Require ルールを追加して範囲を絞れます。
Cloudflare Access の Include ルールは、OR 論理演算子に似ています。Include ルールが複数ある場合、ユーザーはいずれか 1 つの条件を満たせば十分です。
Cloudflare Access の Exclude ルールは、NOT 論理演算子のように働きます。いずれかの除外条件に当てはまるユーザーは、アプリケーションへのアクセスを許可されません。
Cloudflare Access の Require ルールは、AND 論理演算子のように働きます。ユーザーは、指定した Require ルールをすべて満たさないとアクセスを許可されません。
デフォルトでは、Require ルールに追加した値は AND 演算子で連結されます。たとえば、正社員と請負業者の両方にアプリケーションへのアクセスを許可し、かつ特定の国(ポルトガルと米国)にいる人だけに限定したいとします。次の設定でルールを作ると、次のようになります。
| Action | Rule type | Selector | Value |
|---|---|---|---|
| Allow | Require | Country | United States, Portugal |
| Require | Emails ending in | @cloudflare.com, @contractors.com |
このポリシーは、ユーザーが同時に米国 AND ポルトガルにいて、かつメールアドレスが @cloudflare.com AND @contractors.com の両方で終わることを要求します。そのため、誰もアプリケーションにアクセスできません。
対処: ルールグループ を使い、Require ルール内の AND 論理を OR 論理に変換します。
-
ポルトガル OR 米国にいるユーザーを含む、
Country requirementsというルールグループを作成します。Rule type Selector Value Include Country United States,Portugal -
そのルールグループを必須にし、かつ
@cloudflare.comOR@contractors.comで終わるメールのユーザーを含むポリシーを作成します。Action Rule type Selector Value Allow Require Rule group Country requirementsInclude Emails ending in @cloudflare.com,@contractors.com
Cloudflare Access ポリシーにルールを追加するとき、ユーザーに満たしてほしい条件、つまり属性の指定を求められます。これらの属性は、SaaS、セルフホスト、非 HTTP を含む、すべての Access アプリケーションタイプで使えます。
非アイデンティティ属性は継続的にポーリングされます。つまり、ユーザーセッション 中の変化を、新しい HTTP リクエストごとに評価します。SCIM プロビジョニング を設定している場合、IdP でユーザーを取り消したとき、または IdP グループ所属を更新したときに、Access ですべての属性を再証明させることができます。
| Selector | Description | ログイン時に確認 | 継続的に確認1 | アイデンティティベースのセレクター? |
|---|---|---|---|---|
| Emails | you@company.com |
✅ | ❌ | ✅ |
| Emails ending in | @company.com |
✅ | ❌ | ✅ |
| External Evaluation | 外部 API の カスタムロジック に基づいてアクセスを許可または拒否します。 | ✅ | ❌ | ✅ |
| IP ranges | 192.168.100.1/24(IPv4 / IPv6 アドレスと CIDR 範囲に対応) |
✅ | ✅ | ❌ |
| Country | IP アドレスから国を判定します。 | ✅ | ✅ | ❌ |
| Everyone | 全員に対してアクセスを許可、拒否、またはバイパスします。 | ✅ | ❌ | ❌ |
| Common Name | リクエストは、想定するコモンネームを持つ有効な証明書を提示する必要があります。 | ✅ | ✅ | ❌ |
| Valid Certificate | リクエストは、いずれかの有効なクライアント証明書を提示する必要があります。 | ✅ | ✅ | ❌ |
| Service Token | リクエストは、そのアプリケーション向けに設定した正しいサービストークンヘッダーを提示する必要があります。Service Auth アクションが必要です。 | ✅ | ✅ | ❌ |
| Any Access Service Token | リクエストは、このアカウント向けに作成したいずれかの サービストークン のヘッダーを提示する必要があります。Service Auth アクションが必要です。 | ✅ | ✅ | ❌ |
| User Risk Score | ユーザーの現在の リスクスコア(Low、Medium、High、Unscored)です。ルールで選んだ値にだけ一致します。このセレクターは Enterprise プランでのみ表示されます。 | ✅ | ✅ | ✅ |
| Linked App Token | 特定の Access アプリケーションに発行された有効な OAuth アクセストークン があるかを確認します。Service Auth アクションが必要です。 | ✅ | ✅ | ❌ |
| Login Methods | ログイン時に使ったアイデンティティプロバイダーを確認します。 | ✅ | ❌ | ✅ |
| Authentication Method | アイデンティティプロバイダーが対応している場合、ユーザーが使った 多要素認証 方式を確認します。IdP に依存せず MFA を強制するには、独立 MFA を参照してください。 | ✅ | ❌ | ✅ |
| Identity provider group | アイデンティティプロバイダー(IdP)で設定したユーザーグループを確認します。このセレクターは、Microsoft Entra ID、GitHub、Google、Okta、または SCIM でグループをプロビジョニングする IdP を使っている場合にだけ表示されます。 | ✅ | ❌ | ✅ |
| SAML Group | SAML 属性の名前 / 値のペアを確認します。このセレクターは、generic SAML アイデンティティプロバイダーを使っている場合にだけ表示されます。 | ✅ | ❌ | ✅ |
| OIDC Claim | OIDC クレームの名前 / 値のペアを確認します。このセレクターは、generic OIDC アイデンティティプロバイダーを使っている場合にだけ表示されます。 | ✅ | ❌ | ✅ |
| Device posture | Cloudflare One Client またはサードパーティのサービスプロバイダーからのデバイスポスチャシグナルを確認します。このセレクターは、デバイスポスチャチェック を作成したあとに表示されます。 | ✅ | ✅ | ❌ |
| Warp | コンシューマー版を含め、デバイスが Cloudflare One Client に接続していることを確認します。このセレクターは、WARP ポスチャチェック を有効にしたあとに表示されます。 | ✅ | ✅ | ❌ |
| Gateway | デバイスが Cloudflare One Client 経由で Zero Trust インスタンスに接続していることを確認します。このセレクターは、Gateway ポスチャチェック を有効にしたあとに表示されます。 | ✅ | ✅ | ❌ |
| Cloudflare Account Member | ユーザーが特定の Cloudflare アカウントのメンバーであることを確認します。アカウント ID を指定しない場合は、現在のアカウントが使われます。このセレクターは、Cloudflare アイデンティティプロバイダーを使っている場合にだけ表示されます。 | ✅ | ❌ | ✅ |
1 SaaS アプリケーションでは、Access がポリシーを適用できるのは初回サインオン時と、SaaS セッションの再発行時だけです。ユーザーが SaaS アプリに認証したあとのセッション管理は、SaaS アプリ側の管轄になります。
接続コンテキスト設定では、アクセスを許可したあとに、ユーザーがアプリケーションとどうやり取りするかを制御できます。セレクター が誰がアプリケーションにアクセスできるかを決めるのに対し、接続コンテキスト設定はセッション中にユーザーが取れる操作を決めます。使える接続コンテキスト設定は、アプリケーションタイプによって異なります。
接続コンテキストはポリシーごとに設定できるため、ユーザーグループごとに異なる権限を与えられます。たとえば、正社員にはリモート RDP セッションからのデータコピーを許可し、請負業者は読み取り専用に制限できます。
| Application type | Available settings |
|---|---|
| Infrastructure (SSH) | 許可する UNIX ユーザー名 |
| Browser-based RDP | クリップボード制御、ファイル転送制御 |
Cloudflare Access ポリシーは、アクションの種類と、設定した順序に基づいて評価されます。Bypass と Service Auth ポリシーが先に、UI 上の上から下の順で評価されます。そのあと、Block と Allow ポリシーが上から下の順で評価されます。
たとえば、ポリシーが次の並びだとします。
- Allow A
- Block B
- Service Auth C
- Bypass D
- Allow E
実行順は次のとおりです。Service Auth C > Bypass D > Allow A > Block B > Allow E。ユーザーが Allow または Block ポリシーに一致すると評価は止まり、それ以降のポリシーで決定を上書きできません。
Allow ポリシーに次のいずれかのルールを追加すると、誰でもアプリケーションにアクセスできるようになります。
次の表は、全員を含む Cloudflare Access ポリシーです。
| Rule type | Selector | Value |
|---|---|---|
| Include | Everyone | Everyone |
次の表は、有効なメールログイン方式を持つすべてのユーザーを含む Cloudflare Access ポリシーです。
| Rule type | Selector | Value |
|---|---|---|
| Include | Login Methods | One-time PIN |
API と Terraform を使うと、Access ポリシーと設定をプログラムから管理できます。