Cloudflare@OCIでプライベートOCIオブジェクト・ストレージを使用するための接続パターン (2026/09/27)

Cloudflare@OCIでプライベートOCIオブジェクト・ストレージを使用するための接続パターン (2026/09/27)

https://blogs.oracle.com/cloud-infrastructure/connectivity-oci-cloudflare

投稿者:Ejaz Akram | Senior Cloud Solutions Architect

 Cloud Networking Black Belt

Cloudflare@OCIは、OCIの高性能クラウドとCloudflareのグローバルエッジネットワークを組み合わせることで、最新のアプリケーションのセキュリティ強化と高速化を支援します。

OCIオブジェクトストレージは、非構造化データ向けに耐久性と拡張性に優れたストレージを提供するため、Webアセット、ダウンロード可能なコンテンツ、アプリケーションデータなどに最適です。オブジェクトストレージをCloudflareのオリジンとして使用することで、バケットへのアクセスを制御しながら、これらのコンテンツをグローバルに配信できます。

このブログでは、完全にプライベートなOCIオブジェクトストレージバケットをCloudflareオリジンとして使用するための、2つの安全なパターンについて解説します。どちらのパターンでも、クライアントはCloudflareを介してのみコンテンツにアクセスします。Cloudflareが保持する認証情報がなければ、クライアントはバケットに直接アクセスしたり、有効な署名付きリクエストを生成したりすることはできません。

以下の図は、各リクエストパスの概要と、それがサポートするワークロードの種類を示しています。続くセクションでは、各パターンの実装、セキュリティ制御、および展開に関する考慮事項について説明します。

Cloudflare-OCI-オブジェクトストレージパターン

オプション1 – Cloudflare WorkerがOCIに署名する

このパターンでは、Cloudflare Worker が、Cloudflare オリジンとして機能するプライベート OCI オブジェクト ストレージ バケットの唯一の認証済みクライアントとして機能します。Worker は、専用の OCI IAM ユーザーとそのユーザーの API 署名キーを使用して OCI に認証され、読み取りアクセスは対象バケットに限定されます。訪問者は Cloudflare を介してコンテンツを要求し、要求が Worker に到達する前に DNS、WAF、およびキャッシュ制御が適用されます。エッジ キャッシュ ミスが発生した場合、Worker は要求されたパスを検証し、承認済みの OCI バケットとオブジェクト プレフィックスにマッピングし、OCI オブジェクト ストレージからオブジェクトを取得するための署名付き HTTPS 要求を作成します。応答は Cloudflare を介して返され、ローカルの Cloudflare データ センター キャッシュに格納されますが、バケットはプライベートのままであり、OCI 認証情報と直接のバケット URL はクライアントに公開されません。

主要なコントロール

  • 専用のOCIサービスユーザー:OBJECT_READ対象バケットへのアクセス権限のみを持つ、人間以外のOCI IAMユーザーを使用します。
  • 保護された署名キー:ユーザーのOCI API署名キーは、暗号化されたCloudflare Workerシークレットとしてのみ保存し、クライアントに公開したり、ソースコードに含めたりしないでください。
  • 厳格なリクエスト検証:GETおよびリクエストのみを許可しますHEAD。パス トラバーサル、あいまいな URL エンコーディング、および承認されていないバケットまたはオブジェクト プレフィックスを選択する可能性のあるリクエストはすべて拒否します。
  • 安全なエッジキャッシュ: Cloudflare Fetch APIを使用して、対象となるレスポンスをエッジでキャッシュします。ただし、OCI認証ヘッダーと署名ヘッダーはキャッシュキーから除外します。

オプション2 – OCI APIゲートウェイとOCI Functions

このパターンでは、CloudflareはリクエストをOCI API Gatewayに転送し、OCI API GatewayはOCI Functionsを呼び出してプライベートOCIオブジェクトストレージバケットからコンテンツを取得します。

このファンクションは、保存されたAPI署名キーの代わりにOCIリソースプリンシパルを使用するため、OCI IAMはバケットへの制御された読み取りアクセス権限を関数に付与できます。オブジェクトを取得する前に、ファンクションは権限チェックの適用、リクエストの検証、レスポンスの変換または構成、および監査レコードの生成を行うことができます。

Cloudflareは引き続きDNS、WAF、エッジキャッシングを提供し、バケットは非公開のままで、クライアントが直接アクセスすることはありません。

デプロイモード

ゲートウェイモードイングレスいつ使用するか
パブリックAPIゲートウェイCloudflareは公開APIエンドポイントを呼び出しますCloudflareがエッジ保護とキャッシングを提供する、インターネットに接続された配信API。
プライベートAPIゲートウェイCloudflare Tunnelまたはプライベート接続厳格なネットワーク分離要件。Cloudflareはコネクタまたはプライベートネットワークを介してプライベートゲートウェイにアクセスします。

主要操作

  • OCIリソースプリンシパル:リソースプリンシパルと、ターゲットバケットへのアクセスのみを許可する動的グループポリシーを使用して関数を構成しますOBJECT_READ。オブジェクトストレージAPIキーは、関数によって保存または管理されません。
  • プライベートバケットと最小権限: OCIオブジェクトストレージバケットをプライベートに保ち、IAM権限を必要なコンパートメント、バケット、および読み取り操作に限定します。
  • APIゲートウェイへのアクセス制限:パブリックAPIゲートウェイの場合は、可能な限りCloudflareへの受信トラフィックを制限し、適切なゲートウェイ認証または認可を要求します。プライベートAPIゲートウェイの場合は、Cloudflareトンネルコネクタ(通常はVCNアクセス権限を持つOCI Compute VMまたはコンテナワークロード上)をデプロイして、Cloudflareにゲートウェイへのプライベート接続を提供します。
  • プライベート OCI ネットワーク:関数をプライベート ネットワークで実行し、OCI サービス ゲートウェイまたはプライベート サービス アクセス (PSA) を使用してオブジェクト ストレージにアクセスします。これにより、関数やバケットをパブリック インターネットに公開することなく、ストレージにアクセスできます。
  • リクエストと権限の検証:GETやなどの必須メソッドのみを許可し、HEADパスとエンコーディングを検証し、オブジェクトを取得する前に認証を強制します。
  • 安全なキャッシュとレスポンス: Cloudflareでは対象となるレスポンスのみをキャッシュし、認証固有のデータを共有キャッシュエントリから除外し、適切なキャッシュ制御ヘッダーとセキュリティヘッダーを設定します。
  • 監査と監視: API Gateway、関数、およびオブジェクトストレージのログ記録を有効にして、リクエスト、アクセス決定、エラー、およびセキュリティ関連イベントを記録します。

性能、規模、および運用上の考慮事項

考慮Cloudflare Worker + OCIオブジェクトストレージCloudflare + OCI API Gateway + Functions + オブジェクトストレージ
最適なフィット感プライベートOCIバケットへの安全なアクセスが必要な、静的またはキャッシュ対応のWebアセットおよびダウンロード。認証、変換、応答構成、または詳細な監査ロジックを必要とするコンテンツ配信。
キャッシュミスワーカーはリクエストに署名し、OCIオブジェクトストレージから直接オブジェクトを取得します。CloudflareはリクエストをAPI Gatewayに送信し、API Gatewayは関数を呼び出してオブジェクトを取得および処理します。
オリジンリクエスト処理ワーカーはリクエストを検証し、OCIオブジェクトストレージリクエストに署名し、オブジェクトを取得します。API Gatewayはリクエストを関数にルーティングし、関数はオブジェクトストレージからオブジェクトを取得する前に、リクエストを認証および処理することができます。
規模Cloudflare Workersはグローバルに稼働し、需要に応じて自動的にスケールします。Cloudflareはエッジでスケーリングし、API GatewayとFunctionsは設定されたサービス制限の範囲内でOCI内でスケーリングします。
認証情報とアクセス専用のOCI IAMユーザーと、Cloudflare Workerシークレットとして安全に保存されたAPI署名キーを使用します。関数のOCIリソースプリンシパルとIAMポリシーを使用します。OCI API署名キーや長期有効なOCI認証情報はCloudflareに保存されず、Cloudflareと共有されることもありません。
運用コンポーネントCloudflare Workerのコード、Workerのシークレット、およびキャッシュの設定。APIゲートウェイの設定、関数コードとランタイム、IAM動的グループとポリシー、ネットワーク、そしてプライベートゲートウェイを使用する場合はCloudflare Tunnelコネクタ。

まとめ

Cloudflare@OCIは、Cloudflareのグローバルなセキュリティ、パフォーマンス、およびキャッシング機能をOCIクラウドサービスと統合することで、組織がOCIオブジェクトストレージバケット、そのオブジェクト、またはOCI認証情報をインターネットに直接公開することなく、完全にプライベートなOCIオブジェクトストレージバケットからコンテンツを配信できるようにします。

効率的でキャッシュに優しいオブジェクト配信を実現するには、Cloudflare Worker パターンを選択してください。Cloudflare は認証済みの OCI クライアントとして機能します。OCI ネイティブの ID、プライベート ネットワーク、高度な認証、変換、または監査処理が必要な場合は、API Gateway および Functions パターンを選択してください。

この提携は、OracleとCloudflareが参加しているBandwidth Allianceを基盤としています。OCIオブジェクトストレージからCloudflareへの対象となるデータ転送は、サポート対象リージョンでゼロエグレス料金が適用されます。これにより、OCIからの安全でグローバルに分散されたコンテンツ配信の予測可能性とコスト効率が向上します。OracleのCloudflare@OCIに関する発表

コメント

このブログの人気の投稿

Oracle Database 19cサポート・タイムラインの重要な更新 (2024/11/20)

ミリ秒の問題: BCCグループとOCIが市場データ・パフォーマンスを再定義する方法(AWSに対するベンチマークを使用) (2025/11/13)

Oracle DatabaseをOCI Object Storageの不変バケットにバックアップする理由と方法 (2024/05/27)