跳转到内容
搜索文档

PCAPs 存储桶设置

最后更新 查看 MarkdownAgent 设置

在开始完整数据包捕获之前,您必须首先配置一个存储桶,以便 Cloudflare 可以用来上传您的文件。样本数据包捕获不需要设置存储桶。

您可以将 Amazon S3 或 Google Cloud Platform 存储桶配置为目标。您还可以使用 API 将 R2 设为目标。

设置存储桶

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

  1. 在 Cloudflare 仪表板中,前往 Network health (网络健康状况)
  2. 选择 Diagnostics(诊断) 选项卡 > Buckets(存储桶)
  3. 选择 Add a bucket(添加存储桶)
  4. Bucket configuration(存储桶配置) 下,选择存储桶服务,然后选择 Next(下一步)
  5. 输入与您的服务提供商的存储桶相关的信息。
  6. 完成后,选择 Next(下一步)

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

在开始使用存储桶之前,您必须首先启用目标 (destinations)。

参阅 Amazon S3Google Cloud Storage 文档,并遵循这些特定服务的步骤。

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

验证存储桶

初始存储桶设置完成后,您需要通过所有权挑战来确认您拥有该存储桶。验证您的存储桶后,即可开始使用它来收集完整数据包捕获。

  1. Bucket configuration(存储桶配置)Prove ownership(证明所有权) 步骤中,找到 Ownership token(所有权令牌) 字段。
  2. 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(失败): 无法验证存储桶。如果发生这种情况,请验证您的所有权信息。

列出配置的存储桶

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

  1. 在 Cloudflare 仪表板中,前往 Network health (网络健康状况)
  2. Diagnostics(诊断) 中,选择 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

要开始使用 R2 收集数据包捕获,您首先需要正确对其进行配置。有关所有必需的详细信息,请参阅 Cloudflare R2 文档。

创建存储桶与 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(仅应用于特定存储桶),并从下拉菜单中选择您为 PCAPs 创建的存储桶。

  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 中排除机密密钥 (secret key) 和访问密钥 (access key)。

这篇文档对您有帮助吗?