Cloudflare Access を使うと、R2 バケットへのアクセスを保護できます。
Access では、定義したポリシーに基づき、組織内の特定のユーザー、グループ、アプリケーションだけが、バケット内のオブジェクト、または特定のサブパスにアクセスできるようにできます。
すでに R2 バケットがある場合は、このステップをスキップできます。
R2 バケットを作成する必要があります。このガイドに戻る前に、R2 の始め方 に沿ってバケットを作成してください。
Cloudflare ダッシュボードの Zero Trust セクションで、Access アプリケーションと、R2 バケットへのアクセスを制限するポリシーを作成します。
Cloudflare Access をまだ設定していない場合は、次を推奨します。
- 先に ID プロバイダー を設定し、Access が組織のシングルサインオン(SSO)プロバイダーを認証方法として使えるようにします。
R2 バケット用の Access アプリケーションを作成する手順は次のとおりです。
-
Cloudflare ダッシュボード ↗ で、Zero Trust > Access controls > Applications を開き、Create new application を選びます。
-
Self-hosted and private を選びます。
-
Add public hostname を選び、アプリケーションドメインを入力します。Domain は Cloudflare でホストしているドメインである必要があり、Subdomain は R2 バケットに接続するカスタムドメインの一部です。たとえば、
behind-access.example.comからファイルを配信し、example.comが Cloudflare アカウント内のドメインなら、サブドメイン欄にbehind-accessを入力し、Domain リストからexample.comを選びます。 -
Access ポリシー を追加して、アプリケーションに接続できる人を制御します。これは Allow ポリシーにして、この Access アプリケーションの背後にあるバケット内のオブジェクトにユーザーがアクセスできるようにします。
-
残りの セルフホストアプリケーション作成手順 に沿って、アプリケーションを公開します。
Access アプリケーションとして設定するには、バケットに カスタムドメインを接続 する必要があります。カスタムドメインは、Access ポリシーの設定時に入力したドメインと 同じ にしてください。
-
Cloudflare ダッシュボードで R2 object storage ページを開きます。
Overview を開く ↗ -
対象のバケットを選びます。
-
Settings を選びます。
-
Custom Domains で Add を選びます。
-
接続するドメイン名を入力し、Continue を選びます。
-
DNS テーブルに追加される新しいレコードを確認し、Connect Domain を選びます。
ドメインが接続されます。ステータスが Initializing から Active に変わるまで数分かかります。更新を確認するには、ページを再読み込みしてください。ステータスが変わらない場合は、バケットの横の ... を選び、Retry connection を選びます。
R2 バケットに接続したカスタムドメインにアクセスします。選んだ ID プロバイダーや認証方法が表示される、Cloudflare Access の認証ページが出ます。
たとえば、Google や GitHub の ID プロバイダーを接続している場合は、それらのプロバイダーでログインできます。ログインに成功し、このガイドで設定した Access ポリシーを満たせば、R2 バケット内のオブジェクトにアクセス(読み取り / ダウンロード)できます。
認証できない場合、または認証後にブロックページが表示される場合は、Access アプリケーション内に、自分のユーザーアカウントが属するグループを明示的に許可する Access ポリシー があるかを確認してください。
- Access アプリケーション の詳細と設定方法を確認します。
- 組織外のユーザーに、時間制限とプレフィックス制限付きでオブジェクトへのアクセスを発行する 署名付き URL の使い方を理解します。
- R2 バケットに対する API トークンでの認証 のドキュメントを確認します。