如何在 AWS 中使用安全组规则将 443 路由到 80?

How to route 443 to 80 with security group rule in AWS?

我想通过 Terraform 将 ALB 443 端口设置为具有安全组规则的 EC2 80 端口。

resource "aws_security_group_rule" "allow_https" {
  security_group_id        = aws_security_group.ec2.id
  type                     = "ingress"
  protocol                 = "tcp"
  from_port                = 443
  to_port                  = 80
  source_security_group_id = data.aws_ssm_parameter.alb.value
}

申请时出错:

Error: Error authorizing security group rule type ingress: InvalidParameterValue: Invalid TCP/UDP port range(443:80)

难道不能把443路由到80吗?

您的 ALB 的安全组只负责 load-balancer 允许的内容。它不会自行路由到 EC2。

您需要为您的 EC2 实例添加目标组并创建一个 443 侦听器(https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_listener)。然后添加侦听器规则以将流量从该侦听器路由到您的 EC2 实例的目标组(或将其设置为侦听器中的默认目标)。

此外,您需要将该 EC2 实例添加到目标组中。