使用Ansible gcp_compute_backend_service无法绑定securityPolicy求助
问题核心原因及修正方案
你遇到的配置不生效问题可按以下步骤排查修正:
- 参数混淆问题
security_policy参数对应Cloud Armor安全防护策略,仅用于配置WAF、DDoS防护规则。如果你需要绑定的是SSL/TLS加密策略,需要将参数改为ssl_policy,二者是完全独立的配置,不能混用。 - 资源引用格式要求
该模块要求安全类资源必须传入完整的selfLink才能正常识别,仅传资源名不会生效,完整selfLink格式如下:- Cloud Armor安全策略格式:
https://www.googleapis.com/compute/v1/projects/你的项目ID/global/securityPolicies/你的安全策略名 - SSL策略格式:
https://www.googleapis.com/compute/v1/projects/你的项目ID/global/sslPolicies/你的SSL策略名
- Cloud Armor安全策略格式:
- 权限与更新配置补充
- 确认你使用的服务账号拥有
compute.securityPolicies.use权限,才能完成策略绑定操作 - 给配置新增
force_update: yes参数,确保已有后端服务的配置变更能强制推送生效
- 确认你使用的服务账号拥有
修正后配置示例(绑定Cloud Armor安全策略场景)
- name: create a global backend service google.cloud.gcp_compute_backend_service: name: test protocol: HTTPS # 替换为你实际使用的协议 load_balancing_scheme: EXTERNAL backends: [] # 替换为你实际的后端配置 security_policy: "https://www.googleapis.com/compute/v1/projects/test/global/securityPolicies/armor_ssl_policy_1" enable_cdn: no force_update: yes state: present project: test auth_kind: "serviceaccount" service_account_file: ouauthfile
如果是绑定SSL策略场景,把security_policy参数替换为ssl_policy,填入对应SSL策略的完整selfLink即可。
内容的提问来源于stack exchange,提问作者sasi
相关产品推荐
相关产品推荐

