Cloudflare AccessでR2バケットを保護する
R2バケットへのアクセスをCloudflare Accessを使用して保護できます。
Accessを使用すると、定義したポリシーに基づいて、特定のユーザー、グループ、またはアプリケーションのみがバケット内のオブジェクトや特定のサブパスにアクセスできるように制限できます。
既存のR2バケットがある場合は、このステップをスキップできます。
R2バケットを作成する必要があります。R2の開始ガイドに従って、バケットを作成してからこのガイドに戻ってください。
CloudflareダッシュボードのZero Trustセクション内で、R2バケットへのアクセスを制限するためのAccessアプリケーションとポリシーを作成する必要があります。
Cloudflare Accessを以前に設定していない場合は、次のことをお勧めします:
- まずアイデンティティプロバイダーを設定して、Accessが組織のシングルサインオン(SSO)プロバイダーを認証方法として使用できるようにします。
- 特定のリソースにアクセスできるユーザーまたはグループを定義するAccessグループを作成します。
R2バケット用のAccessアプリケーションを作成するには:
- Access ↗に移動し、アプリケーションを追加を選択します。
- セルフホスト型を選択します。
- アプリケーション名を入力します。
- アプリケーションドメインを入力します。ドメインはCloudflareでホストされているドメインでなければならず、R2バケットに接続するカスタムドメインのサブドメイン部分です。たとえば、
behind-access.example.comからファイルを提供したい場合、example.comがCloudflareアカウント内のドメインであれば、サブドメインフィールドにbehind-accessを入力し、ドメインリストからexample.comを選択します。 - (オプション)ブロックページポリシーを設定します。これは後で変更できます。
- Accessを使用してこのドメインを保護するために使用されるアイデンティティプロバイダーを設定します。
- 次へをクリックします。
- ポリシー名とアクションを入力します。これは許可にする必要があり、選択したグループがこのAccessアプリケーションの背後にあるバケット内のオブジェクトにアクセスできるようにします。
- グループを割り当てる(またはグループ)を選択し、バケットへのアクセスを許可します。グループを作成していない場合は、これを最初に行う必要があります。このグループには、R2バケットへのアクセスが必要な組織内のユーザーのみが含まれていることを確認してください。
- 次へをクリックし、次にアプリケーションを追加します。
追加のAccessアプリケーションオプションを設定する方法については、Cloudflare Accessのドキュメントを確認してください。
Accessアプリケーションとして設定するために、バケットにカスタムドメインを接続する必要があります。カスタムドメインは、Accessポリシーを設定する際に入力した同じドメインであることを確認してください。
- Go to R2 and select your bucket.
- On the bucket page, select Settings.
- Under Public access > Custom Domains, select Connect Domain.
- Enter the domain name you want to connect to and select Continue.
- Review the new record that will be added to the DNS table and select Connect Domain.
Your domain is now connected. The status takes a few minutes to change from Initializing to Active, and you may need to refresh to review the status update. If the status has not changed, select the … next to your bucket and select Retry connection.
R2バケットに接続したカスタムドメインにアクセスすると、選択したアイデンティティプロバイダーおよび/または認証方法を使用したCloudflare Access認証ページが表示されるはずです。
たとえば、Googleおよび/またはGitHubアイデンティティプロバイダーを接続した場合、それらのプロバイダーでログインできます。ログインが成功し、あなたのアカウントがこのガイドで作成したAccessアプリケーションに関連付けられたAccessグループのメンバーであれば、R2バケット内のオブジェクトにアクセス(読み取り/ダウンロード)できるようになります。
認証できない場合や、認証後にブロックページが表示される場合は、ユーザーアカウントが関連付けられているグループを明示的に許可するAccessポリシーがAccessアプリケーション内に設定されていることを確認してください。
- Accessアプリケーションについて詳しく学び、設定方法を理解します。
- 組織外のユーザーに対して、オブジェクトへの時間制限付きおよびプレフィックス制限付きのアクセスを発行するためにプレサインドURLを使用する方法を理解します。
- R2バケットに対して認証するためのAPIトークンの使用に関するドキュメントを確認します。