【问题标题】:AWS with Terraform - security groups argument inside a security group ruleAWS with Terraform - 安全组规则中的安全组参数
【发布时间】:2019-07-28 16:09:48
【问题描述】:

当您查看terraform's docs for security group 时,您可以看到在入口/出口安全规则中定义security_groups 参数的选项。

这对我来说似乎很奇怪,但也许我在这里遗漏了一些东西。

I saw this post,但没有提到真实世界的用例。

我的问题是:在哪些情况下我们会想要使用这种配置?

【问题讨论】:

    标签: amazon-web-services terraform infrastructure-as-code


    【解决方案1】:

    您可以使用此语法将这些入口/出口规则应用于属于特定安全组的任何基础架构。

    此 Terraform 代码,例如:

    ingress {
        from_port = "80"
        to_port   = "80"
        protocol  = "tcp"
    
        security_groups = [
          "${aws_security_group.elb_sg.id}",
        ]
    }
    

    将允许 HTTP 访问属于 elb_sg 安全组的任何基础架构。如果您有大量基础架构需要具有入口/出口访问权限并且不想单独命名所有部分,这将很有帮助。

    另一个示例:您可以为 Elastic Search 集群创建一个安全组,然后使用此语法声明 EC2 应用服务器安全组的所有元素都应具有对该集群的入口/出口访问权限。

    【讨论】:

    • 感谢@Adil B,在您的示例中,如果所有 EC2 实例共享相同的安全组,则意味着它们共享相同的入站规则。所以我不明白我们在这里保存了什么?
    • 此语法允许您在不知道实际 CIDR 块或基础设施本身 IP 的情况下定义出口规则——假设我的 EC2 实例没有静态 IP 但仍想允许所有其中访问我的 Elastic Search 集群。
    • 您还有其他示例吗?比如说在某个后端前面有一个 ALB?那里有用吗?
    • 是的 - 例如,您可以为您的 ALB 创建一个安全组,并允许该组中的任何基础架构入口/出口访问您后端的某些端口。
    • 虽然如果我有一个包含许多基础设施部分的 SG 并希望允许 SG 中的所有项目进入另一个 SG 中的项目,我会主要使用这种语法 - ALB 示例可能只是SG 中有一项。
    猜你喜欢
    • 2021-03-06
    • 2021-04-06
    • 1970-01-01
    • 2018-08-25
    • 2020-07-26
    • 2021-08-10
    • 1970-01-01
    • 2022-06-30
    相关资源
    最近更新 更多