如何解决如何将新的“ aws_wafregional_rule”与现有的WAF ACL关联
我已经使用AWS控制台创建了WAF ACL。现在,我需要使用Terraform创建WAF规则,因此我已经实现了以下规则。
resource "aws_wafregional_byte_match_set" "blocked_path_match_set" {
name = format("%s-%s-blocked-path",local.name,var.module)
dynamic "byte_match_tuples" {
for_each = length(var.blocked_path_prefixes) > 0 ? var.blocked_path_prefixes : []
content {
field_to_match {
type = lookup(byte_match_tuples.value,"type",null)
}
target_string = lookup(byte_match_tuples.value,"target_string",null)
positional_constraint = lookup(byte_match_tuples.value,"positional_constraint",null)
text_transformation = lookup(byte_match_tuples.value,"text_transformation",null)
}
}
}
resource "aws_wafregional_rule" "blocked_path_allowed_ipaccess" {
metric_name = format("%s%s%sBlockedPathIpaccess",var.application,var.environment,var.module)
name = format("%s%s%sBlockedPathIpaccessRule",var.module)
predicate {
type = "ByteMatch"
data_id = aws_wafregional_byte_match_set.blocked_path_match_set.id
negated = false
}
}
但是如何将这个新规则映射到通过AWS控制台创建的现有“ web_acl”。根据文档,我可以使用“ aws_wafregional_web_acl”创建新的web_acl,但是有没有办法将通过terraform创建的规则与现有的waf_acl相关联?我有一个gitlab管道,该管道将terraform代码部署到aws,因此最终我将传递现有web_acl的id / arn,并通过管道来添加/更新新规则,而不会影响通过控制台创建的现有规则。
请分享您的宝贵意见。
谢谢。
解决方法
根据您通过WAF WAF资源关联规则的WAF文档,请参见下面的示例以获取代码段。
resource "aws_wafregional_web_acl" "foo" {
name = "foo"
metric_name = "foo"
default_action {
type = "ALLOW"
}
rule {
action {
type = "BLOCK"
}
priority = 1
rule_id = aws_wafregional_rule.blocked_path_allowed_ipaccess.id
}
}
但是,正如您所说,您已经在AWS控制台中创建了资源。 Terraform确实支持AWS资源的import,因此,如果要通过Terraform对其进行管理,则需要使用此方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。