首页 > 其他分享 >Google Cloud Platform | 使用 Terraform 的分层防火墙策略自动化

Google Cloud Platform | 使用 Terraform 的分层防火墙策略自动化

时间:2023-01-10 17:45:11浏览次数:68  
标签:Google 策略 Terraform firewall 防火墙 Platform 分层 规则 policy

【本文由Cloud Ace整理发布,更多内容请访问Cloud Ace 官网

防火墙规则是 Google Cloud 中网络安全的重要组成部分。Google Cloud 中的防火墙大致可分为两种类型;网络防火墙策略分层防火墙策略。 虽然网络防火墙直接与 VPC 相关联以允许/拒绝流量,但分层防火墙可以被视为使用资源层次结构在整个组织中创建和执行策略的策略引擎。可以在组织级别或文件夹级别实施分层策略。与网络防火墙规则一样,分层防火墙策略规则可以允许或拒绝流量,还可以将评估委托给较低级别​​的策略或网络防火墙规则本身(使用 go_next)。较低级别的规则不能覆盖资源层次结构中较高位置的规则。这使组织范围内的管理员可以在一个地方管理关键的防火墙规则。

那么,现在让我们考虑几个使用分层防火墙策略的场景。1.减少网络防火墙的数量示例:假设在 xyz.com 中根据其业务部门获得了 6 个共享 VPC。拒绝 SSH 访问公司中的任何虚拟机是一种安全策略,即拒绝 TCP 端口 22 流量。对于网络防火墙,需要在 6 个地方(每个共享 VPC)执行此规则。每个网段越来越多的细粒度网络防火墙规则意味着更多的接触点,即意味着更多的漂移和事故机会。安全管理员忙于手持,几乎总是成为即使是简单的防火墙更改的瓶颈。借助分层防火墙策略,安全管理员可以创建通用/单一策略来拒绝 TCP 端口 22 流量并将其强制执行到 xyz.com 组织。或者从策略中明确定位一个/多个共享 VPC。这样,单个策略就可以定义更广泛的流量控制态势。

2. 使用集中策略管理关键防火墙规则,并在 VPC 级别安全地委派非关键控制示例:在 xyz.com 上,SSH 到 GCE 是被严格禁止的,并且是不可协商的。审计师需要这个。允许/拒绝到端口 443 的 TCP 流量取决于流量要到达的共享 VPC。在这种情况下,安全管理员可以创建一个策略来拒绝 TCP 端口 22 流量并将该策略强制执行到 xyz.com。另一个策略是为 TCP 端口 443 流量创建“go_next”并在下一个较低级别决定是否允许此流量。然后,使用网络防火墙规则在共享 VPC 级别允许/拒绝 443 流量。

通过这种方式,安全管理员可以在更高级别进行更广泛的控制,以强制执行流量控制策略并在可能的情况下进行委派。在一个地方管理最关键的防火墙规则的能力也使项目级管理员(例如,项目所有者、编辑或安全管理员)不必跟上不断变化的组织范围的政策。

通过分层防火墙策略,安全管理员可以集中实施、管理和观察流量控制模式。

 

创建、配置和实施分层防火墙策略

分层防火墙策略有 3 个主要组成部分;规则、政策和协会。

从广义上讲,“规则”是一种决策结构,用于声明是否应允许、拒绝或将流量委托给下一级进行决策。“策略”是规则的集合,即一个或多个规则可以与策略相关联。“关联”说明政策在谷歌云资源层次结构中的执行点。

这些概念在产品页面上有广泛的解释。

规则、策略和关联的简单可视化看起来像

https://storage.googleapis.com/gweb-cloudblog-publish/images/image6_jr1tH1K.max-1100x1100.png

分层防火墙策略的基础架构即代码 (Terraform)

需要将3 个Terraform 资源拼接在一起以构建和实施分层防火墙策略。

#1 政策Terraform 资源– google_compute_firewall_policy

在这个模块中,最重要的参数是“parent”参数。分层防火墙策略,如项目,由文件夹或组织资源作为父级。请记住,这不是执行或关联策略的文件夹。它只是一个拥有您正在创建的策略的文件夹。使用文件夹来拥有分层防火墙策略,还简化了 IAM 来管理谁可以创建/修改这些策略,即只需将 IAM 分配给该文件夹。

对于扩展环境,建议创建一个单独的“firewall-policy”文件夹来托管所有分层防火墙策略。

样本

/*
 Create a Policy
*/
resource "google_compute_firewall_policy" "base-fw-policy" {
 parent      = "folders/<folder-id>"
 short_name  = "base-fw-policy"
 description = "A Firewall Policy Example"
}

 

您可以使用以下命令获取“firewall-policy”文件夹的文件夹 IDgcloud resource-manager folders list --organization=<your organization ID> --filter='<name of the folder>'例如,如果您的防火墙策略文件夹名为“firewall-policy”,则使用gcloud resource-manager folders list --organization=<your organization ID> --filter='firewall-policy'#2 规则Terraform 资源– google_compute_firewall_policy_rule此资源定义中的大多数参数都非常明显,但有几个参数需要特别考虑。
  • disabled– 表示是否禁用防火墙策略规则。设置为 true 时,不会强制执行防火墙策略规则,流量的行为就好像它不存在一样。如果未指定,将启用防火墙策略规则。
  • enable_logging – 强烈建议启用防火墙日志记录,以获得许多未来的运营优势。要启用它,请传递true给此参数。
  • target_resources – 当您想要针对此规则的某些共享 VPC 时,此参数会派上用场。您需要传递共享 VPC 的 URI 路径。顶部获取 VPC 的 URI 使用此命令
gcloud config set project <Host Project ID>
gcloud compute networks list --uri

样本

下面是一些示例 Terraform 代码,用于创建优先级为 9000 的防火墙策略规则,以拒绝来自 35.235.240.0/20 CIDR 块的 TCP 端口 22 流量(用于身份感知代理

/*
 Create a Firewall rule #1
*/
resource "google_compute_firewall_policy_rule" "base-fw-rule-1" {
 firewall_policy = google_compute_firewall_policy.base-fw-policy.id
 description = "Firewall Rule #1 in base firewall policy"
 priority = 9000
 enable_logging = true
 action = "deny"
 direction = "INGRESS"
 disabled = false
 match {
   layer4_configs {
     ip_protocol = "tcp"
     ports = [22]
   }
   src_ip_ranges = ["35.235.240.0/20"]
 }
 target_resources = ["https://www.googleapis.com/compute/v1/projects/<PROJECT
-ID>/global/networks/<VPC-NAME>"]
}

 

#3 关联Terraform 资源– google_compute_firewall_policy_association在attachment_target传递要执行此策略的文件夹 ID 中,即此文件夹下的所有内容(所有项目)都将获得此策略。对于共享 VPC,目标文件夹应该是您的宿主项目的父文件夹。样本
/*
 Associate the policy 
*/
resource "google_compute_firewall_policy_association" "associate-base-fw-policy" {
 firewall_policy = google_compute_firewall_policy.base-fw-policy.id
 attachment_target = "folders/<Folder ID>"
 name = "Associate Base Firewall Policy with dummy-folder"
}

 

执行这些策略后,您可以在“VPC 网络-> 防火墙”下的控制台上看到它,如下所示。在防火墙策略文件夹中,将显示创建的分层防火墙策略。请记住,每个策略都有 4 个默认防火墙规则,因此即使您在策略中创建单个规则,规则计数也将为 5,如下面的面板所示。https://storage.googleapis.com/gweb-cloudblog-publish/images/image5_1Xbswaq.max-1200x1200.png进入策略以查看您创建的规则和策略的关联(显示在 2 个面板中)。 https://storage.googleapis.com/gweb-cloudblog-publish/images/image1_dp7iCl8.max-1200x1200.pnghttps://storage.googleapis.com/gweb-cloudblog-publish/images/image4_bkuBYQV.max-1100x1100.png

 

概括

分层防火墙策略简化了在整个 Google Cloud 环境中实施一致的流量控制策略的复杂过程。借助本文中展示的 Terraform 模块和自动化,它使安全管理员能够使用策略引擎和已知的基础架构即代码平台构建护栏。

 

标签:Google,策略,Terraform,firewall,防火墙,Platform,分层,规则,policy
From: https://www.cnblogs.com/googlecloud/p/17040947.html

相关文章

  • Google黑语法搜索
    site:搜索指定域名site:edu.cninurl:xxx搜索url中包含的内容inurl:login.jspintext:xxx文本中包含的内容intext:中国filetype:pdf"入党申请"filetype:pdfintitl......
  • 02.Terraform基础
    Terraform基础开发环境配置安装terraform:https://developer.hashicorp.com/terraform/downloads?product_intent=terraform安装vscode编辑器:https://code.visuals......
  • Google渠道包上传至Google商店
    一、准备服务账号按照Google开发者文档,配置开发者账号,地址:开始使用 | GooglePlayDeveloperAPI | GoogleDevelopers最终获取xxxx.json文件如下:二、查阅Goog......
  • 2023年谷歌SEO购买外链必定指南,Google购买反向链接攻略
    本文由光算创作,分享本年最新的谷歌外链购买指南,涵盖了很多干货。本文有可能会被修改和剽窃,我们佛系对待这种行为吧。我们得出的一个大数据模型可以看到,就算你的外贸网站能持......
  • 谷歌搜索外链有用吗?google外链效果怎么样?
    本文主要分享关于谷歌外链的效果数据分析和案例本文由光算创作,有可能会被修改和剽窃,我们佛系对待这种行为吧。谷歌搜索外链有用吗?答案是:没有用!我们先来了解一下什么是谷歌搜......
  • 谷歌外链建设,Google外链建设的N种方法
    本文以谷歌版外链建设的细节作为切入点,分享一篇关于谷歌外链建设指南的内容本文由光算创作,有可能会被人修改和剽窃,我们佛系对待这种行为吧。以前很多做外贸的网站,那时候是谷......
  • Uni-App 提交 App应用 到 Google Play 提示 API 级别过低的解决办法
    原文链接:Uni-App提交App应用到GooglePlay提示API级别过低的解决办法发现问题近日准备发布新版本上架到GooglePlay上时,突然出现了Changeyourapp'starget......
  • JAVA利用google的zxing快速生成QRCode
    利用google的zxing快速生成QRCode1.导入jar包,如果是非maven工程就去mvnrepository.com搜索zxing,下载本jar包即可<dependency><groupId>com.google.zxing</groupId><......
  • kernel——platform
    1.最简单的示例#include<linux/module.h>#include<linux/kernel.h>#include<linux/init.h>#include<linux/device.h>#include<linux/platform_device.h>stati......
  • google外链怎么做?谷歌网站做外链的方法
    做谷歌SEO优化,外链是决定谷歌排名的重要因素关键是Google外链怎么做?英文外链建设的技巧如下外链对于谷歌排名算法来说是非常重要的,持续有效地增加高质量的GPB外链,可以有效提......