@@ -10,26 +10,24 @@ import (
1010 "github.com/hashicorp/aws-sdk-go-base/tfawserr"
1111 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
1212 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
13- "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1413 "github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
1514 "github.com/terraform-providers/terraform-provider-aws/aws/internal/service/networkfirewall/finder"
1615)
1716
1817func TestAccAwsNetworkFirewallResourcePolicy_firewallPolicy (t * testing.T ) {
19- var providers []* schema.Provider
2018 rName := acctest .RandomWithPrefix ("tf-acc-test" )
2119 resourceName := "aws_networkfirewall_resource_policy.test"
2220
2321 resource .ParallelTest (t , resource.TestCase {
24- PreCheck : func () { testAccPreCheck (t ) },
25- ProviderFactories : testAccProviderFactoriesAlternate ( & providers ) ,
26- CheckDestroy : testAccCheckAwsNetworkFirewallResourcePolicyDestroy ,
22+ PreCheck : func () { testAccPreCheck (t ) },
23+ Providers : testAccProviders ,
24+ CheckDestroy : testAccCheckAwsNetworkFirewallResourcePolicyDestroy ,
2725 Steps : []resource.TestStep {
2826 {
2927 Config : testAccNetworkFirewallResourcePolicy_firewallPolicy (rName ),
3028 Check : resource .ComposeTestCheckFunc (
3129 testAccCheckAwsNetworkFirewallResourcePolicyExists (resourceName ),
32- resource .TestCheckResourceAttrPair (resourceName , "resource_arn" , "aws_iam_user.test" , " arn" ),
30+ resource .TestCheckResourceAttr (resourceName , "resource_arn" , fmt . Sprintf ( " arn:%s:iam::%s:root" , testAccGetPartition (), testAccGetAccountID ()) ),
3331 resource .TestMatchResourceAttr (resourceName , "policy" , regexp .MustCompile (`\"Action\":[\"network\-firewall:ListFirewallPolicies\"]` )),
3432 ),
3533 },
@@ -62,7 +60,7 @@ func TestAccAwsNetworkFirewallResourcePolicy_ruleGroup(t *testing.T) {
6260 Config : testAccNetworkFirewallResourcePolicy_ruleGroup (rName ),
6361 Check : resource .ComposeTestCheckFunc (
6462 testAccCheckAwsNetworkFirewallResourcePolicyExists (resourceName ),
65- resource .TestCheckResourceAttrPair (resourceName , "resource_arn" , "aws_iam_user.test" , " arn" ),
63+ resource .TestCheckResourceAttr (resourceName , "resource_arn" , fmt . Sprintf ( " arn:%s:iam::%s:root" , testAccGetPartition (), testAccGetAccountID ()) ),
6664 resource .TestMatchResourceAttr (resourceName , "policy" , regexp .MustCompile (`\"Action\":[\"network\-firewall:ListRuleGroups\"]` )),
6765 ),
6866 },
@@ -152,106 +150,60 @@ func testAccCheckAwsNetworkFirewallResourcePolicyExists(n string) resource.TestC
152150
153151func testAccNetworkFirewallResourcePolicyFirewallPolicyBaseConfig (rName string ) string {
154152 return composeConfig (
155- testAccAlternateAccountProviderConfig (),
156153 fmt .Sprintf (`
157- data "aws_caller_identity " "alternate " {
158- provider = "awsalternate"
159- }
154+ data "aws_partition " "current " {}
155+
156+ data "aws_caller_identity" "current" { }
160157
161158resource "aws_networkfirewall_firewall_policy" "test" {
162- name = %[1] q
159+ name = %q
163160 firewall_policy {
164161 stateless_fragment_default_actions = ["aws:drop"]
165162 stateless_default_actions = ["aws:pass"]
166163 }
167164}
168165
169- resource "aws_ram_resource_share" "test" {
170- name = %[1]q
171- allow_external_principals = true
172-
173- tags = {
174- Name = %[1]q
175- }
176- }
177-
178- resource "aws_ram_resource_association" "test" {
179- resource_arn = aws_networkfirewall_firewall_policy.test.arn
180- resource_share_arn = aws_ram_resource_share.test.id
166+ resource "aws_networkfirewall_resource_policy" "test" {
167+ resource_arn = "arn:${data.aws_partition.current.partition}:iam::${data.aws_caller_identity.current.account_id}:root"
168+ policy = data.aws_iam_policy_document.test.json
181169}
182170` , rName ))
183171}
184172
185173func testAccNetworkFirewallResourcePolicy_firewallPolicy (rName string ) string {
186174 return composeConfig (
187175 testAccNetworkFirewallResourcePolicyFirewallPolicyBaseConfig (rName ), `
188- resource "aws_networkfirewall_resource_policy" "test" {
189- resource_arn = data.aws_caller_identity.alternate.arn
190- policy = <<POLICY
191- {
192- "Version": "2012-10-17",
193- "Statement": [
194- {
195- "Effect": "Allow",
196- "Principal": "*",
197- "Action": "network-firewall:ListFirewallPolicies",
198- "Resource": "${aws_networkfirewall_firewall_policy.test.arn}"
199- }
200- ]
201- }
202- POLICY
203-
204- depends_on = [aws_ram_resource_association.test]
176+ data "aws_iam_policy_document" "test" {
177+ statement {
178+ actions = ["network-firewall:ListFirewallPolicies"]
179+ resources = ["${aws_networkfirewall_firewall_policy.test.arn}"]
180+ }
205181}
206182` )
207183}
208184
209185func testAccNetworkFirewallResourcePolicy_firewallPolicy_updatePolicy (rName string ) string {
210186 return composeConfig (
211187 testAccNetworkFirewallResourcePolicyFirewallPolicyBaseConfig (rName ), `
212- resource "aws_networkfirewall_resource_policy" "test" {
213- resource_arn = data.aws_caller_identity.alternate.arn
214- policy = <<POLICY
215- {
216- "Version": "2012-10-17",
217- "Statement": [
218- {
219- "Effect": "Allow",
220- "Principal": "*",
221- "Action": [
222- "network-firewall:ListFirewallPolicies",
223- "network-firewall:AssociateFirewallPolicy"
224- ],
225- "Resource": "${aws_networkfirewall_firewall_policy.test.arn}"
226- }
227- ]
228- }
229- POLICY
188+ data "aws_iam_policy_document" "test" {
189+ statement {
190+ actions = ["network-firewall:ListFirewallPolicies", "AssociateFirewallPolicy"]
191+ resources = ["${aws_networkfirewall_firewall_policy.test.arn}"]
192+ }
230193}
231- depends_on = [aws_ram_resource_association.test]
232194` )
233195}
234196
235197func testAccNetworkFirewallResourcePolicyRuleGroupBaseConfig (rName string ) string {
236198 return composeConfig (
237- testAccAlternateAccountProviderConfig (),
238199 fmt .Sprintf (`
239- data "aws_caller_identity" "alternate" {
240- provider = "awsalternate"
241- }
200+ data "aws_partition" "current" {}
242201
243- resource "aws_ram_resource_share" "test" {
244- name = %[1]q
245- allow_external_principals = true
246-
247- tags = {
248- Name = %[1]q
249- }
250- }
202+ data "aws_caller_identity" "current" {}
251203
252204resource "aws_networkfirewall_rule_group" "test" {
253205 capacity = 100
254- name = %[1] q
206+ name = %q
255207 type = "STATEFUL"
256208 rule_group {
257209 rules_source {
@@ -264,60 +216,33 @@ resource "aws_networkfirewall_rule_group" "test" {
264216 }
265217}
266218
267- resource "aws_ram_resource_association " "test" {
268- resource_arn = aws_networkfirewall_rule_group.test.arn
269- resource_share_arn = aws_ram_resource_share. test.id
219+ resource "aws_networkfirewall_resource_policy " "test" {
220+ resource_arn = "arn:${data.aws_partition.current.partition}:iam::${data.aws_caller_identity.current.account_id}:root"
221+ policy = data.aws_iam_policy_document. test.json
270222}
271223` , rName ))
272224}
273225
274226func testAccNetworkFirewallResourcePolicy_ruleGroup (rName string ) string {
275227 return composeConfig (
276228 testAccNetworkFirewallResourcePolicyRuleGroupBaseConfig (rName ), `
277- resource "aws_networkfirewall_resource_policy" "test" {
278- resource_arn = data.aws_caller_identity.alternate.arn
279- policy = <<POLICY
280- {
281- "Version": "2012-10-17",
282- "Statement": [
283- {
284- "Effect": "Allow",
285- "Principal": "*",
286- "Action": "network-firewall:ListRuleGroups",
287- "Resource": "${aws_networkfirewall_rule_group.test.arn}"
288- }
289- ]
290- }
291- POLICY
292-
293- depends_on = [aws_ram_resource_association.test]
229+ data "aws_iam_policy_document" "test" {
230+ statement {
231+ actions = ["network-firewall:ListRuleGroups"]
232+ resources = ["${aws_networkfirewall_rule_group.test.arn}"]
233+ }
294234}
295235` )
296236}
297237
298238func testAccNetworkFirewallResourcePolicy_ruleGroup_updatePolicy (rName string ) string {
299239 return composeConfig (
300240 testAccNetworkFirewallResourcePolicyRuleGroupBaseConfig (rName ), `
301- resource "aws_networkfirewall_resource_policy" "test" {
302- resource_arn = data.aws_caller_identity.alternate.arn
303- policy = <<POLICY
304- {
305- "Version": "2012-10-17",
306- "Statement": [
307- {
308- "Effect": "Allow",
309- "Principal": "*",
310- "Action": [
311- "network-firewall:ListRuleGroups",
312- "network-firewall:CreateFirewallPolicy"
313- ],
314- "Resource": "${aws_networkfirewall_rule_group.test.arn}"
315- }
316- ]
317- }
318- POLICY
319-
320- depends_on = [aws_ram_resource_association.test]
241+ data "aws_iam_policy_document" "test" {
242+ statement {
243+ actions = ["network-firewall:ListRuleGroups", "network-firewall:CreateFirewallPolicy"]
244+ resources = ["${aws_networkfirewall_rule_group.test.arn}"]
245+ }
321246}
322247` )
323248}
0 commit comments