本页面介绍了如何配置 Adaptive Protection。在配置 Adaptive Protection 之前,请确保您熟悉 Adaptive Protection 概览和自适应保护应用场景。
准备工作
以下部分介绍了配置 Google Cloud Armor 安全政策所需的所有 Identity and Access Management (IAM) 角色和权限。对于本文档中的应用场景,您只需拥有 compute.securityPolicies.update
权限。
为 Google Cloud Armor 安全政策设置 IAM 权限
以下操作需要 Identity and Access Management (IAM) Compute Security Admin 角色 (roles/compute.securityAdmin
):
- 配置、修改、更新和删除 Google Cloud Armor 安全政策
- 使用以下 API 方法:
SecurityPolicies insert
SecurityPolicies delete
SecurityPolicies patch
SecurityPolicies addRule
SecurityPolicies patchRule
SecurityPolicies removeRule
具有 Compute Network Admin 角色 (roles/compute.networkAdmin
) 的用户可以执行以下操作:
- 为后端服务设置 Google Cloud Armor 安全政策
- 使用以下 API 方法:
BackendServices setSecurityPolicy
BackendServices list
(仅限gcloud
)
具有 Security Admin 角色 (roles/iam.securityAdmin
) 并且 Compute Network Admin 角色可以使用 SecurityPolicies
API 方法 get
、list
和 getRule
查看 Google Cloud Armor 安全政策。
为自定义角色设置 IAM 权限
下表列出了 IAM 角色的基本权限及其关联的 API 方法。
IAM 权限 | API 方法 |
---|---|
compute.securityPolicies.create |
SecurityPolicies insert |
compute.securityPolicies.delete |
SecurityPolicies delete |
compute.securityPolicies.get |
SecurityPolicies get SecurityPolicies getRule |
compute.securityPolicies.list |
SecurityPolicies list |
compute.securityPolicies.use |
BackendServices setSecurityPolicy |
compute.securityPolicies.update |
SecurityPolicies patch SecurityPolicies addRule SecurityPolicies patchRule SecurityPolicies removeRule |
compute.backendServices.setSecurityPolicy |
BackendServices setSecurityPolicy |
启用 Adaptive Protection
按照以下步骤为安全政策启用 Adaptive Protection。Adaptive Protection 会单独应用于每个安全政策。
控制台
如需为安全政策激活自动调节式保护,请执行以下操作:
在 Google Cloud 控制台中,前往网络安全页面。
在政策页面上,点击安全政策的名称。
点击修改。
在自动调节式保护下,选择启用。
点击更新。
如需为安全政策停用自动调节式保护,请执行以下操作:
在 Google Cloud 控制台中,前往网络安全页面。
在政策页面上,点击安全政策的名称。
点击修改。
在 Adaptive Protection 下,清除启用。
点击更新。
gcloud
如需为安全政策激活自动调节式保护,请执行以下操作:
gcloud compute security-policies update MY-SECURITY-POLICY \ --enable-layer7-ddos-defense
如需为安全政策停用自动调节式保护,请执行以下操作:
gcloud compute security-policies update MY-SECURITY-POLICY \ --no-enable-layer7-ddos-defense
配置精细模型
借助精细模型功能,您可以将特定主机或路径配置为 Adaptive Protection 分析的精细单元。在以下示例中,您将为每个主机创建精细的流量单位、自定义精细的流量单位,并配置自适应保护功能,以便在流量超出每秒基准查询次数 (QPS) 时采取措施。如需详细了解精细模型,请参阅自动调节式保护概览。
配置精细的流量单位
本部分中的示例使用 add-layer7-ddos-defense-threshold-config
命令,并结合使用以下部分或全部标志:
标志 | 说明 |
---|---|
--threshold-config-name |
阈值配置的名称。 |
--traffic-granularity-configs |
用于启用 Adaptive Protection 以在指定服务粒度上运行的配置选项。 |
--auto-deploy-impacted-baseline-threshold |
自动调节式保护针对检测到的攻击建议的缓解规则对基准流量的预计影响的阈值。 只有在未超出阈值时,系统才会应用自动防御措施。 |
--auto-deploy-expiration-sec |
自动部署执行的操作(如果有)的持续时间。 |
--detection-load-threshold |
根据后端服务的负载设置的检测阈值。 |
--detection-absolute-qps |
基于绝对 QPS 的检测阈值。 |
--detection-relative-to-baseline-qps |
检测阈值,基于相对于基准流量的平均值的 QPS。 |
在第一个示例中,您可以配置自适应保护功能,以便检测后端服务后面的每台主机受到的攻击,并为其建议独立的缓解措施,而无需替换任何默认阈值。
gcloud
- 创建名称为
POLICY_NAME
的安全政策,或使用现有安全政策。 - 如果尚未启用自适应保护功能,请使用以下命令为您的政策启用自适应保护功能:
gcloud compute security-policies update POLICY_NAME
--enable-layer7-ddos-defense - 将安全政策应用于具有多个主机的后端服务。
- 使用带有
--traffic-granularity-configs
标志的以下add-layer7-ddos-defense-threshold-config
命令来配置精细的流量单位:gcloud compute security-policies add-layer7-ddos-defense-threshold-config POLICY_NAME
--threshold-config-name=per-host-config
--traffic-granularity-configs=type=HTTP_HEADER_HOST;enableEachUniqueValue=true
在第二个示例中,您可以为第一个示例中配置的部分或全部精细流量单位配置不同的自动部署和检测阈值。
gcloud
- 如果尚未启用自动调节式保护自动部署功能,请创建占位符规则。
- 以下命令可为精细的流量单位自定义自动部署阈值,其中
HTTP_HEADER_HOST
为HOST
,HTTP_PATH
为PATH
。针对您要自定义的每个精细流量单位使用此命令,根据需要替换每个主机和网址路径的变量:gcloud compute security-policies add-layer7-ddos-defense-threshold-config
POLICY_NAME
--threshold-config-name=my-host-config
--auto-deploy-impacted-baseline-threshold=0.01
--auto-deploy-expiration-sec=3600
--traffic-granularity-configs=type=HTTP_HEADER_HOST;value=HOST
,type=HTTP_PATH;value=PATH
检测攻击量是否超过基准平均 QPS
在以下示例中,您将自动调节式保护配置为仅在攻击量比基准平均 QPS 高出 50% 且后端服务的负载超过其容量的 90% 时检测攻击。
gcloud
- 创建名称为
POLICY_NAME
的安全政策,或使用现有安全政策。 如果尚未启用 Adaptive Protection,请使用以下命令为您的政策启用 Adaptive Protection:
gcloud compute security-policies update POLICY_NAME \ --enable-layer7-ddos-defense
将安全政策应用于后端服务。
使用以下命令配置自适应保护功能,并设置自定义检测阈值:
gcloud compute security-policies add-layer7-ddos-defense-threshold-config POLICY_NAME \ --threshold-config-name=my-customized-thresholds \ --detection-load-threshold=0.9 \ --detection-relative-to-baseline-qps=1.5