【问题标题】:How to get default CIDR block for my EC2 instances with terraform?如何使用 terraform 为我的 EC2 实例获取默认 CIDR 块?
【发布时间】:2019-07-31 18:03:45
【问题描述】:

我想创建一个安全组,它允许我在子网内的实例之间进行通信,并且不暴露一些外部端口。 当然我可以明确指定我的 CIDR,但是如何在默认 VPC 中创建为我的子网提供 CIDR 块的数据源?

【问题讨论】:

  • 您能否分享您的 Terraform 代码以展示您迄今为止所做的尝试,并解释它为何不适合您?如果您遇到错误,您能否在问题中也包含完整的错误?

标签: amazon-web-services amazon-ec2 terraform terraform-provider-aws


【解决方案1】:

使用 terraform 数据源aws_vpc,你可以得到你需要的。

该示例显示了您的需要。

variable "vpc_id" {}

data "aws_vpc" "selected" {
  id = "${var.vpc_id}"
}

resource "aws_subnet" "example" {
  vpc_id            = "${data.aws_vpc.selected.id}"
  availability_zone = "us-west-2a"
  cidr_block        = "${cidrsubnet(data.aws_vpc.selected.cidr_block, 4, 1)}"
}

【讨论】:

  • 这并没有直接回答有关为包含 EC2 实例的 CIDR 范围提供安全组的问题。如果你能提供一个更好的例子,它会得到改进,但我怀疑 OP 的问题是通过指示他们允许来自其他安全组的入站流量来更好地回答。
  • 对我来说足够了。谢谢。 :)
猜你喜欢
  • 2020-01-20
  • 2018-03-13
  • 1970-01-01
  • 2020-06-22
  • 2019-10-05
  • 2021-07-05
  • 2016-02-01
  • 2020-11-09
  • 2019-11-27
相关资源
最近更新 更多