Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何在terraform中为公共和私有子网创建安全组?_Amazon Web Services_Terraform_Terraform Provider Aws_Aws Security Group_Private Subnet - Fatal编程技术网

Amazon web services 如何在terraform中为公共和私有子网创建安全组?

Amazon web services 如何在terraform中为公共和私有子网创建安全组?,amazon-web-services,terraform,terraform-provider-aws,aws-security-group,private-subnet,Amazon Web Services,Terraform,Terraform Provider Aws,Aws Security Group,Private Subnet,我分别创建了两个安全组。 一个用于运行在公用子网中的ec2实例,另一个用于运行在专用子网中的ec2实例 我想从公共实例安全地ssh到私有实例 以下专用安全组的端口配置是否正确,或者是否需要打开任何其他端口? 这些安全组端口是否需要以某种方式连接,以便通过ssh连接到私有实例中? (我已经创建了vpc,一个公共和私有子网,eip,nat网关) public\sgu group.tf resource "aws_security_group" "public_sg&qu

我分别创建了两个安全组。 一个用于运行在公用子网中的ec2实例,另一个用于运行在专用子网中的ec2实例

我想从公共实例安全地ssh到私有实例

以下专用安全组的端口配置是否正确,或者是否需要打开任何其他端口? 这些安全组端口是否需要以某种方式连接,以便通过ssh连接到私有实例中? (我已经创建了vpc,一个公共和私有子网,eip,nat网关)

public\sgu group.tf

resource "aws_security_group" "public_sg" {
  name = "Public_sg"
  description = "Security Group for Public instance-Bastion"
  

  ingress {
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
  
  egress {
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
    cidr_blocks = ["${var.s_group_vpc_cidr}"]
  }

  egress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
    ipv6_cidr_blocks = ["::/0"]
  }

   egress {
    from_port   = 443
    to_port     = 443
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
    ipv6_cidr_blocks = ["::/0"]
  }

  tags {
    Name = "Public_sgGroup"
  }
}
私人集团

resource "aws_security_group" "private_sg" {
  name = "Private_sg"
  description = "Security Group for Private instance"
  

  egress {
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
  
  ingress {
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
    cidr_blocks = ["${var.s_group_vpc_cidr}"]
  }

  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
    ipv6_cidr_blocks = ["::/0"]
  }

   ingress {
    from_port   = 443
    to_port     = 443
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
    ipv6_cidr_blocks = ["::/0"]
  }

  tags {
    Name = "Private_sgGroup"
  }
}

提前感谢。

这似乎应该能起作用。你试过了吗?你遇到什么问题了吗?我建议在私有实例的
ingres
块中使用
security\u groups
而不是
cidr\u blocks
,这样您只能从公共实例进行ssh,而不能从公共子网中的任何服务器进行ssh。那么问题是什么呢?你不能ssh进入堡垒,或者从堡垒到第二个实例?