使用 CASB 策略,在 CASB 检测到发现实例后立即自动修复该实例或发送 webhook。策略定义供应商、集成、发现类型匹配以及 Cloudflare 应采取的操作。有关发现类型和实例的定义,请参阅发现相关术语。
策略建立在手动修复和 CASB webhook 之上。无需再对每个发现实例手动采取操作,配置好的策略会自动对之后新发现的匹配实例触发操作。
- 已配置云或 SaaS 集成。
- 集成上具有读写权限(修复操作需要)。
- 已配置 webhook 目标(webhook 操作需要)。
CASB 检测到发现实例时,会检查该实例是否匹配客户配置的策略。如果匹配,Cloudflare 会自动对该实例运行策略中配置的操作。
一条策略可以运行修复操作、发送 webhook,或两者兼有。
使用 API 或 Terraform 创建策略时,通过 ID 引用其他对象:
- 发现类型 ID:使用列出发现类型端点。
- 修复类型 ID:对该发现类型使用列出修复类型端点。仅部分发现类型支持修复。
- Webhook ID:使用已配置 webhook 的 ID。在 Terraform 中,引用
cloudflare_zero_trust_casb_webhook资源或数据源的id。 - 集成 ID:仅在策略不应用于所有集成时需要。使用列出集成端点。
- 在 Cloudflare One ↗ 中,转到 Cloud & SaaS findings(云和 SaaS 发现) > Policies(策略)。
- 选择 Create a policy(创建策略)。
- 在 Basic information(基本信息) 下,输入 Policy name(策略名称)。可选地输入 Description(描述)。
- 在 Choose how you want to trigger the policy(选择策略触发方式) 下,选择 Vendor(供应商)。
- 选择一个或多个 Integrations(集成),或选择 Apply to all integrations(应用于所有集成),将该策略应用于该供应商的每个集成。
- 选择 Finding type(发现类型)。此处仅显示所选供应商和集成可用的发现类型。
- 在 Define what to do with findings that match your trigger(定义对匹配触发条件的发现采取的操作) 下,选择以下一项或两项操作:
- Run Remediation(运行修复):让 Cloudflare 对 SaaS 集成 API 执行第一方修复操作。此选项仅适用于部分发现类型。
- Send webhooks(发送 webhook):向一个或多个 webhook 目标发送通知。
- 在 Status(状态) 下,开启 Enable policy(启用策略)。
- 选择 Create policy(创建策略)。
向创建策略端点发出 POST 请求。策略必须至少包含一个操作,且最多包含一个修复:
Required API token permissions
At least one of the following token permissions is required:Zero Trust Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/data-security/posture/policies" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"display_name": "Auto-remediate public files",
"description": "Remove public access and notify the SIEM",
"enabled": true,
"applies_to_all_integrations": true,
"finding_type_id": "<FINDING_TYPE_ID>",
"actions": {
"remediation_types": [
{
"remediation_type_id": "<REMEDIATION_TYPE_ID>"
}
],
"webhook_configs": [
{
"webhook_config_id": "<WEBHOOK_ID>"
}
]
}
}'要将策略限制为特定集成,将 applies_to_all_integrations 设置为 false,并提供由集成 ID 组成的 integration_ids 数组。
-
向您的
cloudflare_api_token↗ 添加以下权限:Zero Trust Write
-
使用
cloudflare_zero_trust_casb_policy↗ 资源创建策略。以下示例会修复匹配的发现,并将其发送到创建 webhook 中的siemwebhook。如果您在 Terraform 外部管理该 webhook,请改用其 ID 或cloudflare_zero_trust_casb_webhook数据源:resource "cloudflare_zero_trust_casb_policy" "public_files" { account_id = var.cloudflare_account_id display_name = "Auto-remediate public files" description = "Remove public access and notify the SIEM" enabled = true applies_to_all_integrations = true finding_type_id = "<FINDING_TYPE_ID>" actions = { remediation_types = [{ remediation_type_id = "<REMEDIATION_TYPE_ID>" }] webhook_configs = [{ webhook_config_id = cloudflare_zero_trust_casb_webhook.siem.id }] } }要将策略限制为特定集成,设置
applies_to_all_integrations = false并列出集成 ID:applies_to_all_integrations = false integration_ids = ["<INTEGRATION_ID_1>", "<INTEGRATION_ID_2>"]如果
applies_to_all_integrations为false且integration_ids为空,Terraform 会在terraform plan时报错。
策略将对之后新发现的发现实例生效。新建或更新的策略不会回溯应用于现有发现实例。
CASB 策略会以列表显示,包含每条策略的名称、集成、发现类型、webhook、修复操作、状态以及上次运行时间。
修复操作会直接针对集成的 API 执行第一方修复,例如撤销公开文件共享。
CASB 目前支持对 Microsoft 365 和 Google Workspace 的文件与文件夹发现类型执行修复操作。如果发现类型不支持修复,Run Remediation(运行修复) 会显示 No automated remediation available for this finding type(此发现类型没有可用的自动修复),并且无法启用。
支持修复的发现类型
Google Workspace:
- File publicly accessible with edit access(可公开访问的文件,具有编辑权限)
- File publicly accessible with view access(可公开访问的文件,具有查看权限)
- File shared outside company with edit access(在公司外部共享的文件,具有编辑权限)
- File shared outside company with view access(在公司外部共享的文件,具有查看权限)
- File shared company-wide with edit access(在全公司范围内共享的文件,具有编辑权限)
- File shared company-wide with view access(在全公司范围内共享的文件,具有查看权限)
- File publicly accessible with edit access with DLP Profile match(可公开访问的文件,具有编辑权限,且匹配 DLP 配置文件)
- File publicly accessible with view access with DLP Profile match(可公开访问的文件,具有查看权限,且匹配 DLP 配置文件)
- File shared outside company with edit access with DLP Profile match(在公司外部共享的文件,具有编辑权限,且匹配 DLP 配置文件)
- File shared outside company with view access with DLP Profile match(在公司外部共享的文件,具有查看权限,且匹配 DLP 配置文件)
- File shared company-wide with edit access with DLP Profile match(在全公司范围内共享的文件,具有编辑权限,且匹配 DLP 配置文件)
- File shared company-wide with view access with DLP Profile match(在全公司范围内共享的文件,具有查看权限,且匹配 DLP 配置文件)
Microsoft 365:
- File publicly accessible with edit access(可公开访问的文件,具有编辑权限)
- File publicly accessible with view access(可公开访问的文件,具有查看权限)
- File shared company-wide with edit access(在全公司范围内共享的文件,具有编辑权限)
- File shared company-wide with view access(在全公司范围内共享的文件,具有查看权限)
- File publicly accessible with edit access with DLP Profile match(可公开访问的文件,具有编辑权限,且匹配 DLP 配置文件)
- File publicly accessible with view access with DLP Profile match(可公开访问的文件,具有查看权限,且匹配 DLP 配置文件)
- File shared company-wide with edit access with DLP Profile match(在全公司范围内共享的文件,具有编辑权限,且匹配 DLP 配置文件)
- File shared company-wide with view access with DLP Profile match(在全公司范围内共享的文件,具有查看权限,且匹配 DLP 配置文件)
修复需要集成具有读写权限。如果集成只有读取权限,请先升级该集成,策略才能修复匹配的发现实例。
有关更多信息,请参阅管理已修复的发现。
Webhook 操作会将发现实例发送到先前配置的 webhook 目标。使用此功能可将发现实例路由到 Slack、Microsoft Teams、Jira、ServiceNow、Tines 或自定义 HTTPS 端点等系统。
策略发送 webhook 时,负载格式与从发现实例手动发送的 webhook 相同。有关负载结构和字段说明,请参阅负载格式。
- 在 Cloudflare One ↗ 中,转到 Cloud & SaaS findings(云和 SaaS 发现) > Policies(策略)。
- 选择要更新的策略。
- 修改策略的基本信息、触发条件或操作。
- 选择 Save changes(保存更改)。
要开启或关闭策略,请使用 Status(状态) 下的 Enable policy(启用策略) 开关。每条策略在策略列表中显示为 Enabled(已启用) 或 Disabled(已禁用)。已禁用的策略会停止匹配新的发现实例,直到您再次开启。
要删除策略,打开该策略并选择 Delete(删除)。
要更新策略,向更新策略端点发出 PUT 请求。请包含 display_name、enabled、applies_to_all_integrations 和 actions。该请求会替换现有策略,因此请包含要保留的每个操作。要关闭策略,将 enabled 设置为 false:
Required API token permissions
At least one of the following token permissions is required:Zero Trust Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/data-security/posture/policies/$POLICY_ID" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"display_name": "Auto-remediate public files",
"enabled": false,
"applies_to_all_integrations": true,
"actions": {
"webhook_configs": [
{
"webhook_config_id": "<WEBHOOK_ID>"
}
]
}
}'无法更改策略的发现类型。要使用不同的发现类型,请创建新策略。
要删除策略,向删除策略端点发出 DELETE 请求:
Required API token permissions
At least one of the following token permissions is required:Zero Trust Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/data-security/posture/policies/$POLICY_ID" \
--request DELETE \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"要更新策略,更改其属性并运行 terraform apply。要关闭策略,设置 enabled = false。
更改 finding_type_id 会替换该策略:Terraform 会删除现有策略并创建新策略。
要删除策略,从配置中移除该资源并运行 terraform apply,或将该资源作为销毁目标:
terraform destroy -target=cloudflare_zero_trust_casb_policy.public_files要将在仪表板或 API 中创建的策略纳入 Terraform 管理,请使用账户 ID 和策略 ID 导入:
terraform import cloudflare_zero_trust_casb_policy.public_files '<ACCOUNT_ID>/<POLICY_ID>'使用 cloudflare_zero_trust_casb_policy ↗ 数据源读取单个策略,或使用 cloudflare_zero_trust_casb_policies ↗ 列出账户中的所有策略:
data "cloudflare_zero_trust_casb_policy" "public_files" {
account_id = var.cloudflare_account_id
policy_id = "<POLICY_ID>"
}
data "cloudflare_zero_trust_casb_policies" "all" {
account_id = var.cloudflare_account_id
}每条策略都会产生两类日志,可在 Cloudflare One 的 Insights(洞察) 下查看:
- Admin Activity logs(管理员活动日志) 记录策略定义的变更,包括谁在何时创建、编辑或禁用了该策略。
- Cloud & SaaS Security policies logs(云和 SaaS 安全策略日志) 记录每次策略调用的运行结果,包括触发策略的发现实例、被操作的资产、操作成功或失败,以及失败时供应商返回的错误(例如
401 Unauthorized响应或速率限制错误)。
对于合规报告,云和 SaaS 安全策略日志会将特定发现实例与特定自动化操作和时间戳关联起来。
有关更多信息,请参阅 Cloudflare One 日志。
- 策略中的修复操作仅适用于 Microsoft 365 和 Google Workspace 的文件与文件夹发现类型。
- CASB 无法通过修复受影响的子资源来移除从父资源继承的权限。有关特定供应商的行为和手动修复步骤,请参阅修复继承的文件权限。
- 策略仅适用于策略创建后检测到的该发现类型的新实例。
有关诊断问题的帮助,请参阅 CASB 故障排除。