Announcing the Cloudflare API Gateway

この10年間で、インターネットは地殻変動を経験しました。かつては、テキストと画像、そして時折埋め込まれるムービーといった静的なWebサイトで構成されていました。しかし、インターネットは非常に大きな発展を遂げました。私たちは、生活のほぼすべての場面で、API駆動型のアプリケーションに依存しています。単にファイルをダウンロードするだけでなく、リッチデータを交換するアプリケーションを楽しむことができるのです。ワークアウトを記録して、その結果をクラウドに送信しています。スマートロックやあらゆる種類のIoTデバイスを使用しています。そして、友人との交流もオンラインで行っています。

このことは素晴らしいことではありますが、バックエンドに爆発的な複雑さを生じさせます。それはなぜか?開発者は、この機能をサポートするために、APIを管理する必要があります。彼らは、すべてのリクエストを監視し、認証する必要があります。そして、これらのタスクは非常に難易度が高いため、通常はAPIゲートウェイプロバイダーにアウトソーシングされます。

残念ながら、今日のゲートウェイには物足りない点が多々あります。まず、それらは安価ではありません。それから、パフォーマンスへの影響があります。最後に、トラフィックの50%以上がAPIに達し、(それから、おそらくサードパーティのゲートウェイを通して送られる)ので、データとプライバシーのリスクがあります。なんということなのでしょう。

本日は、CloudflareAPIゲートウェイを発表します。既存のゲートウェイをわずかな費用で完全に置き換えることができます。また、当社のソリューションでは、Workersボット管理Access、および変換ルールの背後にあるテクノロジーを使用した、市場で最も高度なAPIツールセットを提供します。

API Gatewayとは?

簡単に言うと、これはAPIのためのあらゆることを実現する機能のパッケージです。私たちはそれを3つのカテゴリーに分類しています。

セキュリティ
これらの製品は、すでにブログで紹介しております。 DiscoverySchema Validation Abuse Detectionなどのツールです。当社ではセキュリティの専門知識をAPIの世界に適用することに多くの時間を費やしてきました。

管理と監視
これらは、APIの秩序を保つための基礎となるツールです。例としては、分析、ルーティング、認証などがあります。これらのことは既存の製品であるCloudflare Accessなどを使用することで可能でありますが、さらに多くの機能を提供することを予定しています。

その他全般
これらは、すべてを稼働させるための小さな(しかし重要な)アイテムです。Cloudflareはすでにデフォルトで実行できるSSL/TLSターミネーション、負荷分散、プロキシサービスを提供しています。

本日のブログの投稿では、各機能について詳しく説明します。 すべてのセキュリティ機能が一般に向けて利用可能になりましたので、まずは、それらについて説明します。

発見

当社のお客様は、自社のAPIを保護することに意慾的です。残念ながら、これらのエンドポイントが常に文書化されているわけではなく、さらに悪いことにすべてが文書化されていると思っていても、知らないうちにエンドポイントが失われていたり、変更されている場合があります。これらの知られざるエンドポイントはシャドーAPIと呼ばれることがあります。私たちは、APIの表面積を網羅的に(そして正確に)把握することから始める必要があります。

そこで登場するのが「Discovery」です。Cloudflareダッシュボードに向かい、[セキュリティ]タブを選択し、次に「API Shield」を選択します。この機能を有効にし、APIトラフィックをどのように識別したいかを指示してください。ほとんどのユーザーはヘッダーを挙げますが(現在利用可能)、リクエストボディやCookieに利用することもできます(近日利用可能)。

The Cloudflare API Shield tab, showing various endpoints that have been discovered and a set of recommended rate limiting thresholds.
Cloudflare API Shieldタブ。検出された様々なエンドポイントと、推奨されるレート制限の閾値のセットが表示されます。

当社ではお客様のAPIエンドポイントの網羅的なリストを提供します。Cloudflareはそれぞれのメソッド、パス、追加のメタデータをリストし、お客様の表面積の理解を助けます。また、変数を含むエンドポイント(例:/account/217)も、一般的に適用できるように変数化します(例:/account/{var1})。

Discoveryはエントロピーの強力な対策です。当社のお客様は、多くの場合30個程度のエンドポイントの発見を期待されていますが、100以上ものアクティブなエンドポイントがあることを知りると、驚かれます。

スキーマの検証

おそらく、APIエンドポイント用のスキーマをすでにお持ちの場合もあるでしょう。スキーマはテンプレートのようなもので、パスやメソッド、その他APIリクエストに含まれている追加データを提供します。多くの開発者はOpenAPI標準に従ってスキーマを生成(および維持)しています。

セキュリティを強化するために、受信トラフィックをこのスキーマに照らして検証することができます。これは、基本的な攻撃を阻止するための優れた方法です。Cloudflareは、ドレスコードを無視した出来の悪いトラフィックを破棄し、不相応なリクエストを追い払います。スキーマをダッシュボードにアップロードし、実行するアクションを選択し、デプロイするだけで良いのです:

A step in the schema upload process, after a schema has already been provided. Cloudflare lists out each endpoint with path, query, header, cookies, and body provided as metadata.
スキーマがすでに提供された後の、スキーマのアップロードプロセスのステップです。Cloudflareは、メタデータとして提供されたパス、クエリ、ヘッダー、クッキー、ボディを持つ各エンドポイントをリストします

Schema Validationは、すでに世界最大級の暗号サイト、配送サービス、決済プラットフォームのトラフィックを検証しています。現在利用可能であり、近日中にボディ検証機能の追加を予定しています。

不正使用の検出

堅牢なセキュリティアプローチでは「Schema Validation」「Discovery」を併用し、トラフィックが期待される形式に一致していることを確認します。しかし、悪意のあるトラフィックの場合はどうでしょうか?

Cloudflareが新しいAPIエンドポイントを発見すると、実際にそれぞれに対するレート制限を提案します。これがAbuse Detectionの役割であり、より洗練されたセキュリティへの第一歩になります。

天気予報の更新情報を返すAPIエンドポイントを考えてみましょう。具体的には、このエンドポイントは今後1時間以内に雪が降りそうなら「yes」、そうでないなら「no」を返します。当社のアルゴリズムでは、平均的なユーザーが10分に1回このデータを要求していることを検出します。しかし、小規模のスクレイパーグループは、10分に37回このリクエストを行っています。Cloudflareは自動的にその中間の閾値を推奨し、通常のユーザーにある程度の余裕を持たせるように重み付けをします。これにより、悪質なスクレイピングサービスが頻繁に天気予報を取得することを防ぐことができます。


新しいAdvanced Rate Limitingエンジンを使用したルールを作成できるオプションを提供しています。クッキーやヘッダーなどを使用して、閾値を調整することができます。私たちはapi.cloudflare.comを保護するために、数ヶ月間Abuse Detectionを使用してきました。

この機能で満足している点は、私たちがBot Managementで使用している機械学習アプローチに従っている点です。このように、当社の製品は互いに影響し合いながら(そして恩恵を受けながら)利用することができるのです。

Abuse Detectionの利用が可能になりました。当社が異常なリクエストフローにフラグを立てるために使用しているSequential Abuse Detectionに興味をお持ちの方は、当社の以前のブログ記事をご覧ください。シーケンシャルな部分は早期アクセス版であり、正式リリースに向けて調整を続けています。

mTLS

Mutual TLS(TLS相互認証)は、セキュリティを新たなレベルに引き上げます。APIに到達する際に証明書を使用して受信トラフィックを検証することができ、特にモバイル機器やIoT機器に使用できます。さらに、これはほとんどのデバイスのエコシステムに採用できる(そして採用すべき)、優れたポジティブセキュリティモデルです。

例として、天気予報のAPIに話を戻しましょう。おそらくこのサービスには、温度計から現在の気温を受け取る第2のエンドポイントが含まれています。しかし、これには誰でも偽のリクエストをすることができること、エンドポイントに不正確な測定値を提供することができるなどの問題点があります。これを防ぐために、mTLSを使用してクライアント証明書を正当な温度計にインストールし、その証明書をCloudflareに検証させます。それ以外のリクエストは無視されます。問題の解決です!

すでにCloudflareのお客様には、無料で証明書一式を提供しています。それは今後も継続されます。しかし本日より、API Gatewayのお客様は、無制限の証明書をデフォルトで使用することができます。

認証

最近のAPIの多くは、認証を必要とします。実際、認証行為によってログインによるセッション、個人データの交換、インフラの効率化などのあらゆる種類の機能をユーザーに解放します。もちろん、Cloudflareで認証されたトラフィックは私たちのネットワークを通過する際に保護されます。

しかしAPI Gatewayでは、Cloudflareはトラフィックの認証においてより積極的な役割を果たし、以下の発行検証を可能にします:

  • APIキー
  • JSONウェブトークン(JWT)
  • OAuth 2.0トークン

アクセス制御リストを使用することで、さまざまな権限を持つユーザーグループを管理することができます。現在のプロバイダでは、膨大な遅延と不要なデータ交換を発生させているため、これは重要です。リクエストがCloudflareのエコシステムの外部に出る必要がある場合、必要以上に遠くまで移動していることになります。

Additional latency incurred by sending requests out of the Cloudflare network for authentication.
認証のためにCloudflareネットワークからリクエストを送信することで発生する余分な遅延。


Cloudflareは、グローバルネットワーク上で認証を行うことで、短時間でのリクエスト処理を実現します。この種の技術の実装は難しいのですが、無視できないほど重要な技術だと感じています。これほど早期に構築できた方法とは?Cloudflare Access。私たちは、IDプロバイダーと協働してきた経験を、再度APIの世界に移植しました。当社のゲートウェイには、無制限の認証とトークン交換が含まれています。これらの機能は近日中の公開を予定しています。

ルーティングと管理

マイクロサービスについて簡単に説明しましょう。最近のアプリケーションは巨大なため、開発者はそれを「マイクロサービス」と呼ばれる小さな塊に分割しています。

ホテルの予約を支援するアプリケーションを考えてみましょう。このアプリケーションでは、利用可能な日付を取得するためのマイクロサービス、価格を取得するための別のマイクロサービス、さらに部屋の種類を取得するための別のマイクロサービスを使用することができます。おそらく、それぞれのマイクロサービスの管理は別々のチームで行っていますが、それらはすべて単一の公開エントリーポイントから使えるようにする必要があります。

Various steps in an architecture that relies on microservices. A visitor makes a request to a hotel API, which is then routed towards available dates, prices, or room types.
マイクロサービスに依存したアーキテクチャの様々なステップ。訪問者はホテルのAPIにリクエストを行い、利用可能な日付、価格、部屋タイプに向かってルーティングされる。

従来はAPIゲートウェイによって管理されていたこの単一のエントリポイントは、各リクエストを適切なマイクロサービスへとルーティングする役割を担います。当社のお客様の多くは、これを行うために何年もスタンドアローンサービスにお金を払ってきました。しかし、もうその必要はありません。当社の製品である「Transform Rules」をベースに、エッジで動的に再書き込みと、再ルーティングを行うようにしたのです。設定も簡単で、導入も早く、API Gatewayにネイティブに組み込まれています。Cloudflareは、お客様のAPIの単一のエントリポイントになることができます。

このことは氷山の一角に過ぎません。API Gatewayは当社の製品「Workers」との統合により、実際にマイクロサービスを置き換えることができます。その方法とは?何らかのアクション、例えば、当社のネットワーク上のDurable Objectsに保存されているホテルの価格を返すようなWorkerを書くことを考えてみましょう。API Gatewayでは、リクエストは当社のネットワークに届くとTransform Rulesで適切なマイクロサービスにルーティングされ、Workerで完全な処理が行われます(まだ当社のネットワーク上にあります!)。これらのWorkerは、必要に応じてお客様のオリジンに追加情報を問い合わせることがあります。

マイクロサービスに依存したアーキテクチャの様々なステップ。訪問者はホテルのAPIにリクエストを行い、利用可能な日付、価格、部屋タイプに向かってルーティングされる。

Cloudflare’s simplified API architecture. With authentication, routing, management, and storage handled at the edge, several hops are eliminated.
Cloudflareの簡素化されたAPIアーキテクチャ。認証、ルーティング、管理、ストレージがエッジで処理されるため、いくつかのホップが不要になります。

Workersは、マイクロサービスの代替品よりも高速で安価、かつシンプルです。この統合は近日中の公開を予定しています。

API分析

時にはAPIのトラフィックを確認することの重要性は行動に勝るというお客様からの声もあります。実際、この傾向はAPIに限ったことではありません。本日私たちは別のブログを公開し、そこではあるお客様が脅威に関する情報を受動的に記録するために、当社のボットインテリジェンスをどのように使用しているかを説明しています。

API Analyticsでは、当社の他の製品を使用して有用なデータをリアルタイムに表示するようにしました。一般的なエンドポイントの表示、ML駆動型インサイトによるフィルタリング、不正使用閾値のヒストグラムの表示、傾向の把握が可能です。

API Analyticsは近日中の公開を予定しています。公開後には、カスタムレポートのエクスポートや、組織内でのインサイトの共有も可能になります。

ロギング、クォータ管理、その他の機能

キャッシュ機能、負荷分散、ログ統合などの確立された機能はすべて、API Gatewayでネイティブに動作します。これらは原始的なゲートウェイ機能として必要不可欠であり、見過ごされるべきではありません。Cloudflareはこれらの機能をすべて同一の場所で実行するため、何もしなくても遅延改善の利点を得ることができます。

また、Enterprise Logsの機能を拡張してリアルタイムのログ取得を可能にしました。Cloudflareのネットワーク上での認証を選択された場合、APIにアクセスした各ユーザーの詳細なログを閲覧することができます。同様に、それぞれのリクエストに対する受信、検証、ルーティング、レスポンスなどのライフスパンが記録されます。すべてがログに記録されます。

最後に、APIリクエストをより長期間(1ヶ月など)にわたってカウントし、ユーザーの閾値を管理する機能であるQuota Managementを構築中であることを最後にお伝えします。また、より高度なケース(GraphQLのボディ検査など)に対応するため、Advanced Rate Limitingの提供を開始しました。

まとめ

当社のセキュリティ機能のすべて(Discovery、Schema Validation、Abuse Detection、mTLS)が利用可能になりました!これらの機能は残りのゲートウェイ機能を保護するシールドを形成しているためAPI Shieldと呼ばれます。企業のお客様はお客様のアカウントチームにご依頼いただきお問合せください。

API Gatewayの他の多くの部分は、現在、早期アクセス版で提供しています。Gartner®は、「2025年までに、APIの爆発的な増加がAPI管理ツールの能力を上回るため、企業でのAPIの管理率は50%を下回るだろう」と述べています。当社の目標は、この傾向に対抗できる手頃なゲートウェイを提供することです。もし、テストを要望される特定の機能がありましたら、お客様のアカウントチームにお知らせください。できる限り早く対応させていただきます。

出典:Gartner、「Predicts 2022: APIs Demand Improved Security and Management(2022年を予想:APIはセキュリティと管理の強化が必要に)」、Shameen Pillai、Jeremy D'Hoinne、John Santoro、Mark O'Neill、Sham Gill、2021年12月6日GARTNERは、米国内外におけるGartner, Inc.やその関連会社の商標およびサービスマークです。ここでは、許可を取得したうえで使用しています。全権留保。