您可以使用 Cloudflare Access 保护对 R2 存储桶的访问。
Access 允许您根据定义的策略,仅允许组织内的特定用户、组或应用程序访问存储桶中的对象,或特定的子路径。
如果您已有 R2 存储桶,可以跳过此步骤。
您需要创建一个 R2 存储桶。在返回本指南之前,请按照 R2 快速入门指南 创建存储桶。
在 Cloudflare 仪表板的 Zero Trust 部分,您需要创建 Access 应用程序和策略以限制对 R2 存储桶的访问。
如果您之前未配置 Cloudflare Access,我们建议您:
- 首先配置身份提供商,使 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(R2 对象存储) 页面。
Go to Overview ↗ -
选择您的存储桶。
-
选择 Settings(设置)。
-
在 Custom Domains(自定义域名) 下,选择 Add(添加)。
-
输入您要连接的域名,然后选择 Continue(继续)。
-
查看将添加到 DNS 表的新记录,然后选择 Connect Domain(连接域名)。
您的域名现已连接。状态需要几分钟才能从 Initializing(正在初始化) 变为 Active(活动),您可能需要刷新页面以查看状态更新。如果状态未更改,请选择存储桶旁边的 ...,然后选择 Retry connection(重试连接)。
访问您连接到 R2 存储桶的自定义域名,应显示 Cloudflare Access 身份验证页面及您选择身份提供商和/或身份验证方法。
例如,如果您连接了 Google 和/或 GitHub 身份提供商,可以使用这些提供商登录。如果登录成功且您通过了本指南中配置的 Access 策略,您将能够访问(读取/下载)R2 存储桶中的对象。
如果无法身份验证或在身份验证后收到阻止页面,请检查 Access 应用程序中是否配置了Access 策略,明确允许与您用户账户关联的组。
- 了解更多关于 Access 应用程序 及其配置方法。
- 了解如何使用预签名 URL 为组织外的用户颁发限时且前缀受限的对象访问权限。
- 查看使用 API 令牌对 R2 存储桶进行身份验证的文档。