跳转到内容
搜索文档

存储桶

最后更新 查看 MarkdownAgent 设置

在开始完整数据包捕获之前,您必须配置一个云存储桶,Cloudflare 可以将捕获的流量数据写入其中。样本数据包捕获不需要设置存储桶,样本捕获会立即完成,并可直接从 API 下载。

您可以配置 Amazon S3 或 Google Cloud Platform 存储桶作为目标。您也可以通过 API 使用 R2 作为目标。

设置存储桶

了解如何设置用于完整数据包捕获的存储桶。

  1. Cloudflare One 仪表板中,转至 Network visibility(网络可见性) > Diagnostics(诊断)
  2. 选择 Buckets(存储桶) 标签 > Add a bucket(添加存储桶)
  3. 选择存储桶服务,然后选择 Next(下一步)
  4. 为您的服务提供商输入与存储桶相关的信息。
  5. 完成后,选择 Next(下一步)

Bucket configuration(存储桶配置)Prove ownership(证明所有权) 步骤将显示。

在开始使用存储桶之前,必须先启用目标。请按照您的提供商的目标设置步骤操作,然后返回此处验证所有权。

请参阅 Amazon S3Google Cloud Storage 文档,并按照这些特定服务的步骤操作。

接下来,验证存储桶并确认所有权。

验证存储桶

完成初始存储桶设置后,您需要通过所有权质询确认您有权访问该存储桶。此验证可防止 Cloudflare 将捕获数据写入您不控制的存储桶。验证存储桶后,您就可以开始使用它收集完整数据包捕获了。

  1. Bucket configuration(存储桶配置)Prove ownership(证明所有权) 步骤,找到 Ownership token(所有权令牌) 字段。
  2. 找到 Cloudflare 放入您存储桶中的所有权质询文件,复制其内容,并将其输入 Ownership token(所有权令牌) 字段。
  3. 完成后,选择 Create(创建)Packet captures(数据包捕获) 页面将显示。

Buckets(存储桶) 标签会显示与您账户关联的存储桶列表。请参阅 Status(状态) 列查看存储桶配置的状态。

bucket 字段应为存储桶的 URI。对于 Amazon S3,bucket 字段格式为 s3://<bucket-name>/<directory>?region=<bucket-region>;对于 Google Cloud Storage,格式为 gs://<bucket-name>/<directory>

所有权质询请求示例bash
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/pcaps/ownership \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
  "destination_conf": "'${bucket}'"
}'

响应中有一个 "filename" 参数,其中包含 ownership-challenge 文本的内容。在您的存储桶中找到该文件,并复制文件的内容。

所有权质询响应示例json
{
	"result": {
		"id": "cc20c2d6c62e11ecbe646b173af3b6b9",
		"status": "pending",
		"submitted": "2022-04-22T18:54:13.397413Z",
		"validated": "",
		"destination_conf": "gs://bucket-test", // 确保使用您在 Cloudflare 仪表板中创建和注册的存储桶。
		"filename": "ownership-challenge-1234.txt"
	},
	"success": true,
	"errors": [],
	"messages": []
}

通过在 ownership_text 中插入复制的文本来验证存储桶:

存储桶验证示例bash
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/pcaps/ownership/validate \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
  "destination_conf": "'${bucket}'",
  "ownership_challenge": "'${ownership_text}'"
}'
存储桶验证响应json
{
	"result": {
		"id": "cc20c2d6c62e11ecbe646b173af3b6b9",
		"status": "success",
		"submitted": "2022-04-22T18:54:13.397413Z",
		"validated": "2022-04-27T14:54:46.440548Z",
		"destination_conf": "gs://<bucket-name>", // 确保使用您在 Cloudflare 仪表板中创建和注册的存储桶
		"filename": "ownership-challenge-1234.txt"
	},
	"success": true,
	"errors": [],
	"messages": []
}

如果 status 显示 success,则存储桶已配置完毕,可以使用。

存储桶状态显示以下选项之一:

  • Success(成功): 存储桶已完全验证,可以使用。
  • Pending(待处理): 质询响应已启动,但正在等待验证。存储桶验证可能需要五到十分钟才能完成处理。
  • Failed(失败): 无法验证存储桶。如果出现这种情况,请验证 Cloudflare 是否有写入您存储桶的权限,以及您是否提交了正确的所有权质询文件内容。

列出已配置的存储桶

查看您账户上所有已配置存储桶的列表。

  1. Cloudflare One 仪表板中,转至 Insights(洞察) > Network visibility(网络可见性) > Diagnostics(诊断)
  2. 选择 Buckets(存储桶) 标签。

与您账户关联的存储桶列表将显示。

存储桶列表请求示例bash
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/pcaps/ownership \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>"
存储桶列表响应示例json
{
	"result": [
		{
			"id": "9a993aa6c58711ec89d3037647342e63",
			"status": "success",
			"submitted": "2022-04-26T16:58:24.550762Z",
			"validated": "2022-04-26T17:01:18.426458Z",
			"destination_conf": "s3://test-bucket?region=us-east-1",
			"filename": "ownership-challenge-1234.txt"
		}
	],
	"success": true,
	"errors": [],
	"messages": []
}

要了解如何收集数据包捕获,请参阅收集数据包捕获

R2

您也可以使用 Cloudflare R2 作为数据包捕获的存储目标。R2 存储桶配置仅可通过 API 使用。

创建存储桶和 API 令牌

  1. 在 Cloudflare 仪表板中,转至 R2 页面。

    Go to Overview ↗
  2. 选择 Create bucket(创建存储桶)

  3. 为您的存储桶命名 > Create bucket(创建存储桶)

  4. 转至 R2 概览页面,然后选择 Manage R2 API Tokens(管理 R2 API 令牌)

  5. 选择 Create API Token(创建 API 令牌)

  6. Permissions(权限) 中,选择 Object Read & Write(对象读写)。同时确保选择 Apply to specific buckets only(仅应用于特定存储桶),并从下拉菜单中选择您为 PCAP 创建的存储桶。

  7. 选择 Create API Token(创建 API 令牌)

  8. 确保复制 Secret Access Key(秘密访问密钥)Access Key ID(访问密钥 ID) 的值,因为您在下一步中需要它们。

创建初始请求

向 R2 创建初始请求:

curl https://api.cloudflare.com/client/v4/accounts/{account_id}/pcaps/ownership \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>" \
--header "Content-Type: application/json" \
--data '{
  "destination_conf": "r2://<BUCKET_NAME>?account-id=<ACCOUNT_ID>&access-key-id=<R2_ACCESS_KEY_ID>&secret-access-key=<R2_SECRET_ACCESS_KEY>"
}'

响应中有一个 "filename" 参数,其中包含 Cloudflare 写入您 R2 存储桶的文件名。您需要在下一步中下载它。示例:

{
	"errors": [],
	"messages": [],
	"result": {
		"destination_conf": "<YOUR_R2_BUCKET>",
		"filename": "ownership-challenge-9883874ecac311ec8475433579a6bf5f.txt",
		"id": "9883874ecac311ec8475433579a6bf5f",
		"status": "success",
		"submitted": "2020-01-01T08:00:00Z",
		"validated": "2020-01-01T08:00:00Z"
	},
	"success": true
}

验证存储桶所有权

有关验证 R2 存储桶整个流程的详细信息,请参阅验证存储桶 API 说明。在为此验证指定 R2 目标时,请从 URL 中排除密钥和访问密钥。

这篇文档对您有帮助吗?