Security 如何查找未附加的防火墙规则

Security 如何查找未附加的防火墙规则,security,google-cloud-platform,firewall,Security,Google Cloud Platform,Firewall,我正在复习防火墙规则。这些规则似乎是通过标记附加的,有没有办法识别没有相应资源的防火墙规则?对象“VM实例”和“防火墙规则”有一个“网络标记”属性,该属性在逻辑上绑定它们: CloudShell:$ gcloud compute instances describe lamp-1-vm --zone=us-central1-f ... tags: items: - lamp-1-deployment CloudShell:$ gcloud compute firewall-rule

我正在复习防火墙规则。这些规则似乎是通过标记附加的,有没有办法识别没有相应资源的防火墙规则?

对象“VM实例”和“防火墙规则”有一个“网络标记”属性,该属性在逻辑上绑定它们:

CloudShell:$ gcloud compute instances describe lamp-1-vm --zone=us-central1-f 
...
tags: 
  items:
  - lamp-1-deployment

CloudShell:$ gcloud compute firewall-rules describe my-http-enable 
...
targetTags: 
- lamp-1-deployment
您可以使用
gcloud
和一些shell脚本来构建带有网络标记的防火墙规则列表和带有标记的实例列表,然后使用循环来查找标记未被使用的防火墙规则

在这里,您可以找到一些有用的示例:

对象“VM实例”和“防火墙规则”有一个“网络标签”属性,该属性在逻辑上绑定它们:

CloudShell:$ gcloud compute instances describe lamp-1-vm --zone=us-central1-f 
...
tags: 
  items:
  - lamp-1-deployment

CloudShell:$ gcloud compute firewall-rules describe my-http-enable 
...
targetTags: 
- lamp-1-deployment
您可以使用
gcloud
和一些shell脚本来构建带有网络标记的防火墙规则列表和带有标记的实例列表,然后使用循环来查找标记未被使用的防火墙规则

在这里,您可以找到一些有用的示例:


我曾尝试为这个难题构建一个解决方案,可以在公共回购协议中找到:

它的文档是:


在GCP项目中,我们可以定义防火墙规则。这些规则可以与compute关联 通过使用标记来创建引擎实例。在防火墙规则中,我们可以指定一组一个或多个 仅当防火墙规则中的标记与关联的标记匹配时,才会应用命名标记和规则 使用计算机引擎。随着我们项目的发展,我们可能会有很多防火墙规则,我们可能会 我们会问这样一个问题:“是否有任何防火墙规则不匹配 计算引擎实例?”。我们可以手动检查每个防火墙规则,然后查看是否 有任何匹配的实例,但这是费力和容易出错的。在这个项目中,我们描述 一个示例工具,动态检索当前防火墙规则,然后自动搜索 用于匹配具有相应标记的计算引擎实例

要运行工具下载,然后执行以下操作:

npm install
node index.js --projectNum [projectNum]
其中projectNum是项目的数字id。结果是以下格式的JSON字符串:

[
  {
    "name": "[FIREWALL_RULE_NAME]",
    "instances": [
       "INSTANCE_NAME",
       ... 
    ]
  },
  ...
]
如果防火墙规则没有匹配的实例,则不会填充实例字段


从算法角度来看:

Get the list of all firewall rules;
For each of the firewall rules {
  Get the networkTags for that rule;
  Search for all compute instances that have one or more of those tags;
  List the rule and the associated compute instances that have the tags;
}

本项目以现状为例。

我曾尝试为这个难题构建解决方案,可在公共回购协议中找到:

它的文档是:


在GCP项目中,我们可以定义防火墙规则。这些规则可以与compute关联 通过使用标记来创建引擎实例。在防火墙规则中,我们可以指定一组一个或多个 仅当防火墙规则中的标记与关联的标记匹配时,才会应用命名标记和规则 使用计算机引擎。随着我们项目的发展,我们可能会有很多防火墙规则,我们可能会 我们会问这样一个问题:“是否有任何防火墙规则不匹配 计算引擎实例?”。我们可以手动检查每个防火墙规则,然后查看是否 有任何匹配的实例,但这是费力和容易出错的。在这个项目中,我们描述 一个示例工具,动态检索当前防火墙规则,然后自动搜索 用于匹配具有相应标记的计算引擎实例

要运行工具下载,然后执行以下操作:

npm install
node index.js --projectNum [projectNum]
其中projectNum是项目的数字id。结果是以下格式的JSON字符串:

[
  {
    "name": "[FIREWALL_RULE_NAME]",
    "instances": [
       "INSTANCE_NAME",
       ... 
    ]
  },
  ...
]
如果防火墙规则没有匹配的实例,则不会填充实例字段


从算法角度来看:

Get the list of all firewall rules;
For each of the firewall rules {
  Get the networkTags for that rule;
  Search for all compute instances that have one or more of those tags;
  List the rule and the associated compute instances that have the tags;
}

此项目是作为示例提供的。

这可能很有用。。。这可能有用。。。谢谢你。我能够获取附加资源。这个例子应该允许我扩展到标记资源。任何跟随本文的人都会发现此文档很有用,因为需要服务帐户。您需要:创建服务帐户明确授予其角色下载凭据导出凭据位置谢谢。我能够获取附加资源。这个例子应该允许我扩展到标记资源。下面的任何人都会发现此文档很有用,因为需要服务帐户。您需要:创建服务帐户显式授予其角色下载凭据导出凭据位置我发现此处的示例非常有用。下面的命令也很有用:
gcloud compute instances list--filter='tags.items[0]:tag name'
我发现这里的示例非常有用。下面的命令也很有用:
gcloud计算实例列表--filter='tags.items[0]:tagname'