amazon-web-services - Terraform AWS 安全组自我参考
问题描述
我正在使用 terraform 进行 AWS 资源配置。我需要自我引用“mySG”。来自我可以使用的 Terraform 文档
ingress {
from_port = 0
to_port = 0
protocol = -1
self = true
}
但是不同的协议呢?使用控制台 有以下可用的历史入站规则:
Type Protocol PortRange Source
1. All TCP TCP 0-65535 mySG
2. All UDP UDP 0-65535 mySG
3. Custom TCP TCP 1856 mySG
(是否需要第三个条目?考虑到所有端口的第一个条目)上述入口规则是否处理所有 3 个条目?如果不是什么应该是 terraform 语法。
解决方案
您可以通过分别使用资源 aws_security_group 和 aws_security_group_rule 将 sec 组与规则分开来实现自引用组。这样做,结合你现有的 3 条规则,大致看起来像这个 terraform:
resource "aws_security_group" "sec_group" {
name = "sec_group"
vpc_id = "${local.vpc_id}"
}
resource "aws_security_group_rule" "sec_group_allow_tcp" {
type = "ingress"
from_port = 0 // first part of port range
to_port = 65535 // second part of port range
protocol = "tcp" // Protocol, could be "tcp" "udp" etc.
security_group_id = "${aws_security_group.sec_group.id}" // Which group to attach it to
source_security_group_id = "${aws_security_group.sec_group.id}" // Which group to specify as source
}
resource "aws_security_group_rule" "sec_group_allow_udp" {
type = "ingress"
from_port = 0 // first part of port range
to_port = 65535 // second part of port range
protocol = "udp" // Protocol, could be "tcp" "udp" etc.
security_group_id = "${aws_security_group.sec_group.id}" // Which group to attach it to
source_security_group_id = "${aws_security_group.sec_group.id}" // Which group to specify as source
}
resource "aws_security_group_rule" "sec_group_allow_1865" {
type = "ingress"
from_port = 1865 // first part of port range
to_port = 1865 // second part of port range
protocol = "tcp" // Protocol, could be "tcp" "udp" etc.
security_group_id = "${aws_security_group.sec_group.id}" // Which group to attach it to
source_security_group_id = "${aws_security_group.sec_group.id}" // Which group to specify as source
}
请注意,该规则采用协议类型,从端口/到端口(用于范围)和一个可选的 source_security_group_id 来指定
推荐阅读
- reactjs - eslint 解析错误:migration.js 中出现意外的标记
- android - 为什么 FBAudienceNetwork 中的“(#2) 服务暂时不可用”?
- c# - Specflow 中的多行和多列
- python - AWS Systems Manager“进行中”命令限制为 5 个?
- c++ - 如何深度复制unique_ptr的向量
- javascript - Vuetify.js 数据表固定标题通过 CSS 滚动
- sql - 用于差异查找的 Redshift 查询不起作用
- excel - 使用 ANZAHL2(D:D) 计算一行中的值
- swift - 如何在 Swift 中的泛型类的函数参数中使用泛型类型
- git - 如何使用 gitlab、jenkins、git 设置代码审查工作流程?