跳转到内容
搜索文档

存储桶

最后更新 查看 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 S3 或 Google 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 中排除密钥和访问密钥。

这篇文档对您有帮助吗?