Cloudflare、社内Vibeコーディングアプリのワンクリック保護ツールを公開
本文の状態
日本語全文を表示中
詳細モードで約10分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
Cloudflare AI
Cloudflare は、従業員が迅速に構築したアプリケーションの機密データ漏洩リスクに対処するため、Workers へのアクセス制御機能を強化し、デフォルトで認証を強制する新ツールを発表した。
AI深層分析を開く2026年8月14日 23:01
AI深層分析
キーポイント
アカウントレベルでのデフォルト保護機能
Cloudflare は、アカウント全体または特定の Worker に対してポリシーを設定できる機能を導入し、プレビューおよび本番環境のデプロイをデフォルトで社内ログインの背後に配置する。
ドメイン非依存の認証強制
従来のホスト名レベル設定から変更され、ポリシーが Worker 自体に紐付けられることで、カスタムドメインや workers.dev サブドメインなど、関連するすべての URL が自動的に保護される。
認証情報のコード内直接取得
開発者は JWT の検証プロセスを経由せずとも、認証済みユーザーのメール、名前、グループ情報をコード内で直接取得できるようになり、セキュリティ管理が簡素化された。
内部プラットフォームのオープンソース化
Cloudflare は、すべてのデプロイがデフォルトで非公開となる内部静的サイトプラットフォームの例をオープンソースとして提供し、ベストプラクティスの共有を図っている。
アカウントレベルでのデフォルトポリシー設定
アカウントレベルで一度 Access ポリシーを設定すれば、既存および将来のすべての Worker が作成時点で自動的に非公開となる。
重要な引用
any employee can build an application, deploy it to the public Internet, and accidentally expose internal work or company data.
You can now apply Cloudflare Access directly to a Worker or to every Worker in your account, so that your applications are behind your company login by default
If you set it to previews only, every preview URL created for that application... will require authentication whenever you deploy a new version.
You choose what the policy covers: only preview URL traffic, all production traffic, or both.
編集コメントを表示
編集コメント
生成 AI の利用が一般化し、誰でも簡単にアプリケーションを構築・公開できる環境において、セキュリティの「デフォルト」設定をどう守るかが最大の課題となっている。今回の機能強化は、開発者のミスを前提とした防御策から、システム側で強制的に保護するパラダイムシフトを示す重要な一歩である。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
AI の普及により、あらゆるチームの従業員がこれまで以上に迅速にアプリケーションを構築できるようになりました。
しかし、そのスピードこそが、すべての CISO(最高情報セキュリティ責任者)を夜中に眠れなくさせる要因でもあります。誰にでもアプリケーションを構築・公開インターネットへデプロイする権限があるため、内部作業や企業データが意図せず外部に露出してしまうリスクが生じています。
本日、私たちは Workers 上でホストされるアプリケーションをプライベートに保つことを容易にする新ツールを発表します。これにより、Cloudflare Access を特定の Worker やアカウント内のすべての Worker に直接適用できるようになりました。開発者一人ひとりが手動で設定する必要性がなくなり、デフォルトでアプリケーションは社内のログイン画面の背後に配置されます。
具体的には以下が可能になります:
- アカウントレベルでポリシーを設定し、プレビュー版および本番環境へのすべてのデプロイを、デフォルトで社内ログインの背後に配置することを保証します。
- 単一のアプリケーションに対してポリシーを設定し、そのドメインがどのようにデプロイされていようとも、関連するすべてのドメインでの認証強制を確保します。
- アプリケーションへの訪問者を正確に把握できます。JWT(JSON Web Token)の検証は不要で、認証されたユーザーのメールアドレス、名前、所属グループをコード内で直接取得可能です。
社内プラットフォームをデプロイし、すべてのデプロイがデフォルトでプライベートになるようにします。私たちはその例としてオープンソース化しました:すべての Worker デプロイがプライベートである内部静的サイトプラットフォームです。
Access on Workers の仕組み
Cloudflare の Worker に「Access」を有効化すると、リクエストがアプリケーションコードに到達する前に認証が強制されます。リクエストがどの経路で到達するかは関係ありません。カスタムドメイン経由でも、ルート設定経由でも、workers.dev 上のサブドメイン経由でも、プレビュー URL 経由でも同様です。Access がオンになっている場合、ユーザーは必ず最初に認証を行う必要があります。
従来はこの設定をホスト名レベルで行う必要があり、Worker に到達可能な各ドメインで個別に Access ポリシーを設定する必要がありました。新しいカスタムドメインを追加したい場合は、そのドメインが認証なしでアクセス可能にならないよう、事前に Access ポリシーを更新しなければなりませんでした。
現在はポリシーが Worker 自体に紐付けられるようになったため、その Worker に関連するすべてのドメインや URL が自動的に保護されます。保護対象はユーザーが選択できます。プレビュー URL のみを保護することも、すべてのホスト名を保護することも可能です。
「プレビューのみ」を選択した場合、そのアプリケーション用に作成されたすべてのプレビュー URL(workers.dev 上のプレビュー URL も、プレビューに使用するカスタムドメインも)で、新しいバージョンをデプロイするたびに認証が必要になります。「すべてのホスト名」を選択すると、その Worker に紐づくすべてのドメインが保護されます。これにはカスタムドメイン、ルート設定、workers.dev のサブドメイン、そしてプレビュー URL が含まれます。
Access を利用すれば、ユーザーの認証方法を自由に制御できます。既存の ID プロバイダーを連携させれば、従業員は普段使っている資格情報でサインインできます。また、特定のメールアドレスやメールドメイン、グループへのアクセス制限も可能です。エージェントに対しては、サービストークンを通じてアクセス権限を付与することもできます。
詳細は Cloudflare Access for Workers のドキュメントをご覧ください。
すべての Worker をデフォルトで非公開に保つ
組織内で複数の開発者が Worker をデプロイしている場合、一人ひとりがアクセス設定を忘れないように頼ることは現実的ではありません。重要なのは、デフォルト値を「非公開」にすることです。
アカウントレベルで一度 Access ポリシーを設定すれば、そのアカウント内のすべての Worker(現在および将来作成されるもの)は、作成された瞬間から自動的に非公開になります。
ポリシーの適用範囲はあなたが選択できます。プレビュー URL のトラフィックのみを対象にするのか、本番環境の全トラフィックを対象にするのか、あるいは両方を含めるのかを選べます。本番 Worker を意図的に公開しているが、進行中のデプロイを誰にも見られたくないという場合は、「プレビュー専用」モードが有効です。
特定の Worker を公開したい場合は?その Worker に対してのみアカウント全体のポリシーをバイパスできます。
特定の Worker を保護する
アカウント全体のデフォルト設定が必要ない場合や、特定の 1 つの Worker のみを厳格にロックダウンしたい場合は、Access を直接その Worker に適用できます。
Worker 画面の新規「Access」タブでは、そのアプリケーションに適用されているポリシーが明確に表示されます。複数のポリシーが存在する場合は、最も具体的なものが優先されます。優先順位は以下の通りです:ホスト名ベースのポリシー → Worker ベースのポリシー → アカウントレベルのポリシー。
誰があなたのアプリケーションにアクセスしているかを確認する
Access で Worker を保護している場合、各リクエストを行ったユーザーの詳細(メールアドレス、氏名、所属グループなど)を取得できます。これにより、ユーザーごとに表示内容をパーソナライズしたり、権限を厳格に管理したり、ユーザーごとのアクティビティログを残したりすることが可能になります。
この仕組みは、ワーカーのコンテキストオブジェクト(ctx)を通じて動作します。ワーカーへのすべてのリクエストには、そのリクエストに関するメタデータを含む ctx が付随します。Access を有効にすると、認証されたユーザーのアイデンティティが ctx.access として追加されます。そこから ctx.access.getIdentity() を呼び出すと、ユーザーのメールアドレスや名前などの情報を取得できます。
従来は、JWT の検証を自分で行う必要がありました。つまり、トークンの解析、署名の確認、クレームの抽出を行うのです。しかし、ワーカーで Access が有効になっている場合、認証されたリクエストには自動的に ctx.access が含まれます。
ユーザーのアイデンティティを取得するために必要な手順は以下の通りです:
デプロイ前にローカルでテストする
ctx.access.getIdentity() を使用して、誰がリクエストを送信しているか(メールアドレス、名前、所属グループなど)をワーカーに伝える方法を紹介しました。
これは wrangler dev でローカル開発を行う際にも利用できます。認証されたユーザーをシミュレートするために、wrangler.jsonc に access ブロックを追加してください:
Your Worker picks it up through ctx.access.getIdentity() — returning an identity object shaped like what you'd get in production. Swap the email in your config to test as a different user.
This means you can verify that the right content shows up for the right user without having to deploy and sign in through Access every time you make a change.
Deploy an internal platform where every application is private by default
If you manage an internal platform where employees can prototype and deploy applications, you need every application to be private without configuring access controls on each one.
Workers for Platforms を使えば、ワーカーを大規模にデプロイできます。各ワーカーは名前空間内に存在し、その名前空間へのすべてのトラフィックは、ディスパッチワーカーという単一のエントリーポイントを経由します。
ディスパッチワーカーにアクセスポリシーを設定すれば、そこからデプロイされるすべてのワーカーがデフォルトで非公開になります。
また、独自の内部ドラッグ&ドロップ型デプロイメントプラットフォームを構築するためのオープンソース例も用意しています。ディスパッチワーカーのアクセス設定を一度行えば、そこからデプロイされるすべてのサイトがデフォルトで非公開となります。
下のボタンをクリックして、自分でもデプロイしてみましょう!
詳細なアーキテクチャについては、Workers for Platforms の参照アーキテクチャをご覧ください。
堅牢な基盤の上に構築された機能
この機能は、Cloudflare エッジを支える新しい Rust ベースのモジュラープロキシ「FL2」によって実現されました。Access はアプリケーションへの入り口であり、従来はリクエストパイプライン内ですべてのワーカーロジックよりも前に実行されていました。しかし、Access アプリケーションがホスト名ではなく個々のワーカー自体をターゲットとするためには、特定の要求がどのワーカーに到達する予定なのかを Access が把握する必要があります。そこで、ワーカーのルーティングと実行を分離し、ルーティングロジックを Access よりも先に実行できるように移設しました。
従来の NGINX と Lua で書かれたモジュールに基づく FL1 システムでは、この変更は複雑でリスクも伴うものでした。製品間の相互作用は微妙な場合があり、他の製品によって共有状態が変更されることに依存している場合、リクエストパイプラインのより早い段階にロジックを移動させるのは危険です。
FL2 はそれを容易にしました。厳格なモジュールシステムにより、ロジックは明確で順序が一貫したフェーズに分離され、入力と出力が静的に宣言されます。コンパイラを活用してフェーズ間の破綻した相互作用を早期に発見し、自信を持ってこのリファクタリングを段階的に展開することができました。
今日から利用可能です
現在、すべてのユーザーがこの機能を利用できます。ダッシュボードで試すか、Cloudflare Access for Workers のドキュメントを読んでスタートしましょう。
謝辞
この実現のためにエンジニアリングとデザインに尽力してくれた、Jesse Li 氏、Brandon Strittmatter 氏、Kyle Hiller 氏、Kenny Johnson 氏、Matt "TK" Taylor 氏、Brendan Irvine-Broque 氏、Yomna Shousha 氏、Mike Aizatsky 氏に感謝します!
原文を表示
AI has enabled employees across every team to build applications faster than ever before.
But that speed is also what's keeping every CISO up at night: any employee can build an application, deploy it to the public Internet, and accidentally expose internal work or company data.
Today, we're launching new tools to make it easy to keep your applications hosted on Workers private. You can now apply Cloudflare Access directly to a Worker or to every Worker in your account, so that your applications are behind your company login by default, without relying on each developer to set that up themselves.
You can now:
Set a policy at the account level to ensure that all preview and production deployments are behind your company login by default.
Set a policy on a single application to ensure authentication is enforced on every domain associated with it, no matter how it's deployed.
See exactly who visits your application. Get every authenticated user’s email, name, and groups directly in your code — no JWT (JSON Web Token) validation required.
Deploy an internal platform where every deployment is private by default. We've open-sourced an example: an internal static site platform where every Worker deployed is private.
Access on Workers: how it works
When you enable Access on a Worker, Cloudflare enforces authentication before any request reaches your application code. It doesn't matter how the request gets to your Worker, whether it's through a custom domain, a route, a workers.dev subdomain, or a preview URL. If Access is on, the user has to authenticate first.
Previously, you had to configure this at the hostname level, which meant setting up Access policies on each domain your Worker was reachable on. If you wanted to add a new custom domain to your Worker, you needed to update the Access policy first or that hostname would be reachable without authentication.
Now the policy is attached to the Worker itself, so any domain or URL associated with that Worker is automatically protected. You can choose what to protect: just preview URLs, or all hostnames.
If you set it to previews only, every preview URL created for that application, whether it's a workers.dev preview URL or a custom domain you use for previews, will require authentication whenever you deploy a new version. If you set it to all hostnames, every domain associated with that Worker is protected — custom domains, routes, workers.dev subdomains, and preview URLs.
Access gives you control over how users authenticate. You can connect your existing identity provider, so employees sign in with the credentials they already use, or restrict access to specific email addresses, email domains, or groups. For agents, you can grant access through service tokens.
Read more in the Cloudflare Access for Workers documentation here.
Keep every Worker in your account private by default
If you have developers across your organization deploying Workers, you don't want to rely on each one to remember to enable Access. You want the default to be private.
You can set an Access policy once at the account level, and every Worker in your account, current and future, is private from the moment it's created.
You choose what the policy covers: only preview URL traffic, all production traffic, or both. Preview-only is useful if your production Workers are intentionally public, but you never want an in-progress deployment exposed.
Need a Worker to be public? Bypass the account-wide policy on that one Worker.
Protect a specific Worker
If you don't need an account-wide default and just want to lock down one specific Worker, you can apply Access to that Worker directly.
The new Access tab in the Worker view shows exactly which policies apply to that application. If you have multiple, the most specific one takes priority: hostname policies first, then Worker policies, then account policies.
See who is accessing your application
When Access is protecting your Worker, you can get information about who is making each request — their email, name, and groups — so you can personalize what they see, enforce permissions, or log activity per user.
This works through your Worker's context object (ctx). Every request to your Worker carries a ctx with metadata about that request. When Access is enabled, we attach the authenticated user's identity to it as ctx.access. From there, call ctx.access.getIdentity() to get back the user's email, name, and more.
Before, this meant validating a JWT yourself — parsing the token, verifying the signature, and extracting the claims. Now, when Access is enabled on your Worker, every authenticated request includes ctx.access.
Here's all you need to get the user's identity:
Test locally before you deploy
We showed how you can use ctx.access.getIdentity() to give your Worker information about who is making a request — their email, name, and groups.
You can use this when developing locally with wrangler dev. Add an access block to your wrangler.jsonc to simulate an authenticated user:
Your Worker picks it up through ctx.access.getIdentity() — returning an identity object shaped like what you'd get in production. Swap the email in your config to test as a different user.
This means you can verify that the right content shows up for the right user without having to deploy and sign in through Access every time you make a change.
Deploy an internal platform where every application is private by default
If you manage an internal platform where employees can prototype and deploy applications, you need every application to be private without configuring access controls on each one.
Workers for Platforms lets you deploy Workers at scale. Every Worker lives inside a namespace, and all traffic to that namespace goes through a single entry point: the dispatch Worker.
Set an Access policy on your dispatch Worker, and every Worker deployed through it is private by default.
We also have an open-source example where you can deploy your own internal drag-and-drop deployment platform — configure access on the dispatcher worker once and every site deployed through it is private by default.
Click the button below to deploy it yourself!
For the full architecture, see our Workers for Platforms reference architecture.
Built on solid foundations
This feature was made possible by FL2, the new Rust-based modular proxy that powers Cloudflare's edge. Access is the front gate to your applications, and as such, it traditionally ran before all Workers logic in the request pipeline. But in order for Access applications to target individual Workers themselves instead of their hostnames, Access needs to know which Worker a given request is destined to reach. Therefore, we needed to split Workers routing from Workers execution, and move the routing logic, so it could run before Access.
In our old FL1 system based on NGINX and modules written in Lua, this change would have been complex and risky. Interactions between products can be subtle, and moving logic to an earlier phase of the request pipeline can be unsafe if it depends on shared state that is modified by another product.
FL2 made it easy. Its strict module system separates logic into well-defined, consistently ordered phases that statically declare their inputs and outputs. We were able to lean on the compiler to surface any broken interactions between phases, and gradually roll out this refactor with confidence.
Try it today
This is now available to everyone. Try it out in the dashboard or read the Cloudflare Access for Workers documentation to get started.
Acknowledgments
Thank you to Jesse Li, Brandon Strittmatter, Kyle Hiller, Kenny Johnson, Matt "TK" Taylor, Brendan Irvine-Broque, Yomna Shousha, and Mike Aizatsky for the engineering and design work that made this possible!
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み