在开始完整数据包捕获之前,您必须首先配置一个存储桶,以便 Cloudflare 可以用来上传您的文件。样本数据包捕获不需要设置存储桶。
您可以将 Amazon S3 或 Google Cloud Platform 存储桶配置为目标。您还可以使用 API 将 R2 设为目标。
了解如何为完整数据包捕获设置存储桶。
- 在 Cloudflare 仪表板中,前往 Network health (网络健康状况) ↗。
- 选择 Diagnostics(诊断) 选项卡 > Buckets(存储桶)。
- 选择 Add a bucket(添加存储桶)。
- 在 Bucket configuration(存储桶配置) 下,选择存储桶服务,然后选择 Next(下一步)。
- 输入与您的服务提供商的存储桶相关的信息。
- 完成后,选择 Next(下一步)。
Bucket configuration(存储桶配置) 的 Prove ownership(证明所有权) 步骤将会显示。
在开始使用存储桶之前,您必须首先启用目标 (destinations)。
参阅 Amazon S3 或 Google Cloud Storage 文档,并遵循这些特定服务的步骤。
接下来,验证存储桶并确认所有权。
初始存储桶设置完成后,您需要通过所有权挑战来确认您拥有该存储桶。验证您的存储桶后,即可开始使用它来收集完整数据包捕获。
- 从 Bucket configuration(存储桶配置) 的 Prove ownership(证明所有权) 步骤中,找到 Ownership token(所有权令牌) 字段。
- 在 Ownership token(所有权令牌) 字段中,输入您的服务提供商的所有权令牌。
- 完成后,选择 Create(创建)。Packet captures(数据包捕获) 页面将会显示。
Buckets(存储桶) 选项卡会显示与您账户关联的存储桶列表。参考 Status(状态) 列以查看您的存储桶配置状态。
bucket 字段应该是存储桶的 URI。对于 Amazon S3,bucket 字段的形式为 s3://<bucket-name>/<directory>?region=<bucket-region>;对于 Google Cloud Storage,形式为 gs://<bucket-name>/<directory>。
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 文本的内容。在您的存储桶中找到该文件并复制该文件的内容。
{
"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 中插入复制的文本来验证存储桶:
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}'"
}'{
"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 仪表板中,前往 Network health (网络健康状况) ↗。
- 在 Diagnostics(诊断) 中,选择 Buckets(存储桶)。
与您账户关联的存储桶列表将会显示。
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/pcaps/ownership \
--header "X-Auth-Email: <EMAIL>" \
--header "X-Auth-Key: <API_KEY>"{
"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 文档。
-
在 Cloudflare 仪表板中,前往 R2 页面。
Go to Overview ↗ -
选择 Create bucket(创建存储桶)。
-
给您的存储桶命名 > Create bucket(创建存储桶)。
-
前往 R2 概述页面,然后选择 Manage R2 API Tokens(管理 R2 API 令牌)。
-
选择 Create API Token(创建 API 令牌)。
-
在 Permissions(权限) 中,选择 Object Read & Write(对象读写)。确保您还选择 Apply to specific buckets only(仅应用于特定存储桶),并从下拉菜单中选择您为 PCAPs 创建的存储桶。
-
选择 Create API Token(创建 API 令牌)。
-
确保复制 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)。