Skip to content

Commit 5005fd4

Browse files
Fix: Do Not Hardcode AWS Partition (#203)
* Do not hardcode AWS partition. Co-authored-by: cloudpossebot <[email protected]>
1 parent 1df0af9 commit 5005fd4

File tree

5 files changed

+15
-5
lines changed

5 files changed

+15
-5
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,7 @@ Available targets:
399399
| [aws_iam_policy_document.s3_origin](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
400400
| [aws_iam_policy_document.s3_ssl_only](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
401401
| [aws_iam_policy_document.s3_website_origin](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
402+
| [aws_partition.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/partition) | data source |
402403
| [aws_s3_bucket.cf_logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/s3_bucket) | data source |
403404
| [aws_s3_bucket.origin](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/s3_bucket) | data source |
404405

docs/terraform.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
| [aws_iam_policy_document.s3_origin](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
3939
| [aws_iam_policy_document.s3_ssl_only](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
4040
| [aws_iam_policy_document.s3_website_origin](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
41+
| [aws_partition.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/partition) | data source |
4142
| [aws_s3_bucket.cf_logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/s3_bucket) | data source |
4243
| [aws_s3_bucket.origin](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/s3_bucket) | data source |
4344

examples/complete/deployment.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ locals {
77
} : {}
88

99
our_account_id = local.enabled ? data.aws_caller_identity.current[0].account_id : ""
10-
our_role_arn_prefix = "arn:aws:iam::${local.our_account_id}:role"
10+
our_role_arn_prefix = "arn:${join("", data.aws_partition.current.*.partition)}:iam::${local.our_account_id}:role"
1111
role_names = { for k, v in local.test_deployment_role_prefix_map : k => module.role_labels[k].id }
1212
deployment_principal_arns = { for k, v in local.role_names : format("%v/%v", local.our_role_arn_prefix, v) => local.test_deployment_role_prefix_map[k] }
1313
}

examples/complete/main.tf

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ locals {
77
additional_origin_groups = concat(local.additional_custom_origin_groups, local.additional_s3_origin_groups)
88
}
99

10+
data "aws_partition" "current" {
11+
count = local.enabled ? 1 : 0
12+
}
13+
1014
data "aws_iam_policy_document" "document" {
1115
count = local.enabled ? 1 : 0
1216

@@ -15,7 +19,7 @@ data "aws_iam_policy_document" "document" {
1519

1620
actions = ["s3:GetObject"]
1721
resources = [
18-
"arn:aws:s3:::$${bucket_name}$${origin_path}testprefix/*"
22+
"arn:${join("", data.aws_partition.current.*.partition)}:s3:::$${bucket_name}$${origin_path}testprefix/*"
1923
]
2024

2125
principals {

main.tf

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,10 @@ locals {
8686
"$${cloudfront_origin_access_identity_iam_arn}", local.cf_access.arn)
8787
}
8888

89+
data "aws_partition" "current" {
90+
count = local.enabled ? 1 : 0
91+
}
92+
8993
module "origin_label" {
9094
source = "cloudposse/label/null"
9195
version = "0.25.0"
@@ -117,7 +121,7 @@ data "aws_iam_policy_document" "s3_origin" {
117121
sid = "S3GetObjectForCloudFront"
118122

119123
actions = ["s3:GetObject"]
120-
resources = ["arn:aws:s3:::${local.bucket}${local.origin_path}*"]
124+
resources = ["arn:${join("", data.aws_partition.current.*.partition)}:s3:::${local.bucket}${local.origin_path}*"]
121125

122126
principals {
123127
type = "AWS"
@@ -129,7 +133,7 @@ data "aws_iam_policy_document" "s3_origin" {
129133
sid = "S3ListBucketForCloudFront"
130134

131135
actions = ["s3:ListBucket"]
132-
resources = ["arn:aws:s3:::${local.bucket}"]
136+
resources = ["arn:${join("", data.aws_partition.current.*.partition)}:s3:::${local.bucket}"]
133137

134138
principals {
135139
type = "AWS"
@@ -147,7 +151,7 @@ data "aws_iam_policy_document" "s3_website_origin" {
147151
sid = "S3GetObjectForCloudFront"
148152

149153
actions = ["s3:GetObject"]
150-
resources = ["arn:aws:s3:::${local.bucket}${local.origin_path}*"]
154+
resources = ["arn:${join("", data.aws_partition.current.*.partition)}:s3:::${local.bucket}${local.origin_path}*"]
151155

152156
principals {
153157
type = "AWS"

0 commit comments

Comments
 (0)