jya*_*ski 2 amazon-web-services terraform
aws_security_group.jacobs_rds_security_group_tf当我运行 .Terraform 项目时,我的 Terraform 项目似乎总是就地修改此资源terraform apply。一切仍然有效,只是当我总是有一个额外的资源被修改时,即使它没有任何改变,它只会让调试变得奇怪。
我有2个安全组;1 用于我的 RDS 数据库,它将传入流量列入白名单,另一个用于任务,它附加到我的 ECS 和 Lambda 任务,以便它们可以访问此 RDS 数据库。任务安全组已列入 RDS 安全组白名单。
RDS 安全组 ( aws_security_group.jacobs_rds_security_group_tf) 是始终进行就地修改的组。下面是代码。
resource "aws_vpc" "jacobs_vpc_tf" {
cidr_block = "10.0.0.0/16"
enable_dns_hostnames = true
}
resource "aws_security_group" "jacobs_task_security_group_tf"{
name = "jacobs_security_group for tasks"
description = "Connect Tasks to RDS"
vpc_id = aws_vpc.jacobs_vpc_tf.id
ingress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
ipv6_cidr_blocks = ["::/0"]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
ipv6_cidr_blocks = ["::/0"]
}
}
resource "aws_security_group" "jacobs_rds_security_group_tf" {
name = "jacobs_security_group for rds"
description = "Allow Jacobs Traffic to RDS"
vpc_id = aws_vpc.jacobs_vpc_tf.id
ingress {
description = "Custom IP Addresses"
from_port = 5432
to_port = 5432
protocol = "tcp"
cidr_blocks = var.jacobs_cidr_block
}
ingress {
description = "Other Security Groups"
from_port = -1
to_port = -1
protocol = "all"
security_groups = [aws_security_group.jacobs_task_security_group_tf.id] # this should be changed to vpc_security_group_ids ?
}
# outbound
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
ipv6_cidr_blocks = ["::/0"]
}
}
Run Code Online (Sandbox Code Playgroud)
我大约每月研究一次这个问题,并用 Terraform 尝试修复它,但没有成功。我遇到的 github 问题似乎不适用于我的设置,但也许我遗漏了一些明显的东西?任何帮助,将不胜感激!
我认为你的问题是你有这个入口规则:
ingress {
description = "Other Security Groups"
from_port = -1
to_port = -1
protocol = "all"
security_groups = [aws_security_group.jacobs_task_security_group_tf.id]
}
Run Code Online (Sandbox Code Playgroud)
您已将from_port和to_port设置为-1。您应该将它们设置为0. 来自文档:
如果您选择协议
-1(语义上等同于all,此处不是有效值),则必须指定 afrom_port并to_port等于0。
在这种情况下,Terraform(或 Terraform 使用的 AWS API)会将它们设置为0,而不会出错。由于之后发生了更改apply,Terraform 将在您再次执行操作时尝试检测它plan。
此外,我认为这里的文档不准确,这里允许设置all(protocol至少对于我尝试过的 Terraform 版本、v1.0.11AWS 提供商版本3.70.0)。
| 归档时间: |
|
| 查看次数: |
1222 次 |
| 最近记录: |