在开始完整数据包捕获之前,您必须配置一个云存储桶,Cloudflare 可以将捕获的流量数据写入其中。样本数据包捕获不需要设置存储桶,样本捕获会立即完成,并可直接从 API 下载。
您可以配置 Amazon S3 或 Google Cloud Platform 存储桶作为目标。您也可以通过 API 使用 R2 作为目标。
了解如何设置用于完整数据包捕获的存储桶。
- 在 Cloudflare One ↗ 仪表板中,转至 Network visibility(网络可见性) > Diagnostics(诊断)。
- 选择 Buckets(存储桶) 标签 > Add a bucket(添加存储桶)。
- 选择存储桶服务,然后选择 Next(下一步)。
- 为您的服务提供商输入与存储桶相关的信息。
- 完成后,选择 Next(下一步)。
Bucket configuration(存储桶配置) 的 Prove ownership(证明所有权) 步骤将显示。
在开始使用存储桶之前,必须先启用目标。请按照您的提供商的目标设置步骤操作,然后返回此处验证所有权。
请参阅 Amazon S3 或 Google Cloud Storage 文档,并按照这些特定服务的步骤操作。
接下来,验证存储桶并确认所有权。
完成初始存储桶设置后,您需要通过所有权质询确认您有权访问该存储桶。此验证可防止 Cloudflare 将捕获数据写入您不控制的存储桶。验证存储桶后,您就可以开始使用它收集完整数据包捕获了。
- 从 Bucket configuration(存储桶配置) 的 Prove ownership(证明所有权) 步骤,找到 Ownership token(所有权令牌) 字段。
- 找到 Cloudflare 放入您存储桶中的所有权质询文件,复制其内容,并将其输入 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 是否有写入您存储桶的权限,以及您是否提交了正确的所有权质询文件内容。
查看您账户上所有已配置存储桶的列表。
- 在 Cloudflare One ↗ 仪表板中,转至 Insights(洞察) > Network visibility(网络可见性) > 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": []
}要了解如何收集数据包捕获,请参阅收集数据包捕获。
您也可以使用 Cloudflare R2 作为数据包捕获的存储目标。R2 存储桶配置仅可通过 API 使用。
-
在 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(仅应用于特定存储桶),并从下拉菜单中选择您为 PCAP 创建的存储桶。
-
选择 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 中排除密钥和访问密钥。