如何允许某些端口仅对 Cloud Custodian 中的某些安全组开放?

Posted

技术标签:

【中文标题】如何允许某些端口仅对 Cloud Custodian 中的某些安全组开放?【英文标题】:How to allow certain ports open to world only for certain security groups in Cloud Custodian? 【发布时间】:2019-09-07 13:14:41 【问题描述】:

我的政策中规定只允许 80 和 443 向世界开放。

      "or": [
        
          "Cidr": 
            "value": "0.0.0.0/0"
          , 
          "type": "ingress", 
          "OnlyPorts": [
            80, 
            443
          ]
        , 
        
          "CidrV6": 
            "value": "::/0"
          , 
          "type": "ingress", 
          "OnlyPorts": [
            80, 
            443
          ]
        
      ]

现在,我想只允许 8080 和 8081 进入选定的安全组,而不是所有安全组。这可能吗?

【问题讨论】:

【参考方案1】:

您只需要编辑特定的安全组。只需打开那里的端口即可。

【讨论】:

如果我打开端口,它将申请所有的安全组。有什么方法可以在策略文件中添加安全组 ID? 如何在端口打开的情况下创建新的 sg 并将其附加到您要打开的其他 sg 上? 一旦我创建了一个开放端口的新安全组,lambda函数就会被触发,它会删除对世界开放的规则。【参考方案2】:

使用键和值数组添加值过滤器以排除您不想匹配的安全组

【讨论】:

【参考方案3】:

对于 IPV4:

resource: security-group
    filters:
      - tag:c7n_exception: absent
      - type: ingress
        OnlyPorts: [80,443]
        Cidr:
          value: "0.0.0.0/0"

对于 IPV6:

    resource: security-group
    filters:
      - tag:c7n_exception: absent
      - type: ingress
        OnlyPorts: [80,443]
        CidrV6:
          value: "::/0"

更多过滤器

filters:
  - and:
            - type: security-group
              key: GroupId
              #key: SecurityGroups[].GroupID  
              op: not-in
              value:
                - sg-0db5e1ab7s8323

【讨论】:

以上是关于如何允许某些端口仅对 Cloud Custodian 中的某些安全组开放?的主要内容,如果未能解决你的问题,请参考以下文章

如何仅对某些模式启用空白模式

Anylogic:如何仅对同一资源池的某些工作人员执行停机

如何使 CSS 仅对 Opera 可见

如何在Azure中设置smtp服务器

货到付款付款方式应仅对 magento 中的某些邮政编码/密码可见

仅对定义文件允许隐式任何