如何使用 Terraform 附加或删除安全组的入口/出口规则?

Jee*_*eel 3 amazon-web-services terraform aws-security-group terraform-provider-aws

有没有办法在 Terraform 中管理 AWS 安全组来编辑现有 SG 的规则?

例如:如果我配置一个新实例,现有 SG 的入口规则将更新以允许新配置的实例。当实例终止时,SG 还需要更新。

如果 Terraform 没有直接支持,请随意建议其他常见做法。

Mar*_*cin 6

是的,您可以向现有安全组 (SG) 添加和删除单个规则。这可以分两步完成:

  1. 使用aws_security_group获取现有 SG 的数据源:
data "aws_security_group" "selected" {
  id = <group-id-of-existing-sg>
}
Run Code Online (Sandbox Code Playgroud)
  1. 创建aws_security_group_rule资源以将新规则添加到步骤 1 中的 SG:
resource "aws_security_group_rule" "example" {
  type              = "ingress"
  from_port         = 0
  to_port           = 65535
  protocol          = "tcp"
  cidr_blocks       = ["0.0.0.0/0"]
  security_group_id = data.aws_security_group.selected.id
}
Run Code Online (Sandbox Code Playgroud)

如果您的实例与 SG 规则在同一 TF 文件中创建,则terraform destroy实例和规则都将被销毁。