我正在构建一个EC2实例Auto Scale组的标准堆栈,通过ALB接收流量。
实例将端口80暴露给整个VPC,ALB向外部公开端口443以接收来自Internet的流量。
我想仅从ALB启用端口80访问,而不是从整个VPC启用。
如何在Terraform中定义安全组,将实例的端口80仅暴露给ALB,而不是暴露给VPC的其他部分?
答案 0 :(得分:0)
也许这很有帮助:
resource "aws_security_group_rule" "opened_to_alb" {
type = "ingress"
from_port = 80
to_port = 80
protocol = "tcp"
source_security_group_id = "${var.alb_sg_id}"
security_group_id = "${aws_security_group.your_sg.id}"
}
var.alb_sg_id可以替换为您的实际alb安全组ID。
答案 1 :(得分:0)
您可以为负载均衡器创建一个安全组(aws_security_group),并使用aws_security_group_rule授予对端口80的访问权限。
然后,在服务器的安全组中,您只希望只允许来自负载均衡器安全组的端口80对它们的访问,就像source_security_group_id = "${aws_security_group.mylb.id}"
这有意义吗?如果没有,我可以进一步阐述。