@@ -49,6 +49,7 @@ func DataAwsCrossaccountPolicy() common.Resource {
4949 return fmt .Errorf ("security_group_id must begin with 'sg-'" )
5050 }
5151 }
52+ awsNamespace := AwsConfig [data .AwsPartition ]["awsNamespace" ]
5253 // non resource-based permissions
5354 actions := []string {
5455 "ec2:AssignPrivateIpAddresses" ,
@@ -151,7 +152,7 @@ func DataAwsCrossaccountPolicy() common.Resource {
151152 "iam:CreateServiceLinkedRole" ,
152153 "iam:PutRolePolicy" ,
153154 },
154- Resources : fmt .Sprintf ("arn:%s:iam::*:role/aws-service-role/spot.amazonaws.com/AWSServiceRoleForEC2Spot" , data . AwsPartition ),
155+ Resources : fmt .Sprintf ("arn:%s:iam::*:role/aws-service-role/spot.amazonaws.com/AWSServiceRoleForEC2Spot" , awsNamespace ),
155156 Condition : map [string ]map [string ]string {
156157 "StringLike" : {
157158 "iam:AWSServiceName" : "spot.amazonaws.com" ,
@@ -174,7 +175,6 @@ func DataAwsCrossaccountPolicy() common.Resource {
174175 if data .PolicyType == "restricted" {
175176 region := data .Region
176177 aws_account_id := data .AwsAccountId
177- awsPartition := data .AwsPartition
178178 vpc_id := data .VpcId
179179 security_group_id := data .SecurityGroupId
180180 policy .Statements = append (policy .Statements ,
@@ -186,7 +186,7 @@ func DataAwsCrossaccountPolicy() common.Resource {
186186 "ec2:DisassociateIamInstanceProfile" ,
187187 "ec2:ReplaceIamInstanceProfileAssociation" ,
188188 },
189- Resources : fmt .Sprintf ("arn:%s:ec2:%s:%s:instance/*" , awsPartition , region , aws_account_id ),
189+ Resources : fmt .Sprintf ("arn:%s:ec2:%s:%s:instance/*" , awsNamespace , region , aws_account_id ),
190190 Condition : map [string ]map [string ]string {
191191 "StringEquals" : {
192192 "ec2:ResourceTag/Vendor" : "Databricks" ,
@@ -198,8 +198,8 @@ func DataAwsCrossaccountPolicy() common.Resource {
198198 Effect : "Allow" ,
199199 Actions : "ec2:RunInstances" ,
200200 Resources : []string {
201- fmt .Sprintf ("arn:%s:ec2:%s:%s:volume/*" , awsPartition , region , aws_account_id ),
202- fmt .Sprintf ("arn:%s:ec2:%s:%s:instance/*" , awsPartition , region , aws_account_id ),
201+ fmt .Sprintf ("arn:%s:ec2:%s:%s:volume/*" , awsNamespace , region , aws_account_id ),
202+ fmt .Sprintf ("arn:%s:ec2:%s:%s:instance/*" , awsNamespace , region , aws_account_id ),
203203 },
204204 Condition : map [string ]map [string ]string {
205205 "StringEquals" : {
@@ -211,7 +211,7 @@ func DataAwsCrossaccountPolicy() common.Resource {
211211 Sid : "AllowEc2RunInstanceImagePerTag" ,
212212 Effect : "Allow" ,
213213 Actions : "ec2:RunInstances" ,
214- Resources : fmt .Sprintf ("arn:%s:ec2:%s:%s:image/*" , awsPartition , region , aws_account_id ),
214+ Resources : fmt .Sprintf ("arn:%s:ec2:%s:%s:image/*" , awsNamespace , region , aws_account_id ),
215215 Condition : map [string ]map [string ]string {
216216 "StringEquals" : {
217217 "aws:ResourceTag/Vendor" : "Databricks" ,
@@ -223,13 +223,13 @@ func DataAwsCrossaccountPolicy() common.Resource {
223223 Effect : "Allow" ,
224224 Actions : "ec2:RunInstances" ,
225225 Resources : []string {
226- fmt .Sprintf ("arn:%s:ec2:%s:%s:network-interface/*" , awsPartition , region , aws_account_id ),
227- fmt .Sprintf ("arn:%s:ec2:%s:%s:subnet/*" , awsPartition , region , aws_account_id ),
228- fmt .Sprintf ("arn:%s:ec2:%s:%s:security-group/*" , awsPartition , region , aws_account_id ),
226+ fmt .Sprintf ("arn:%s:ec2:%s:%s:network-interface/*" , awsNamespace , region , aws_account_id ),
227+ fmt .Sprintf ("arn:%s:ec2:%s:%s:subnet/*" , awsNamespace , region , aws_account_id ),
228+ fmt .Sprintf ("arn:%s:ec2:%s:%s:security-group/*" , awsNamespace , region , aws_account_id ),
229229 },
230230 Condition : map [string ]map [string ]string {
231231 "StringEquals" : {
232- "ec2:vpc" : fmt .Sprintf ("arn:%s:ec2:%s:%s:vpc/%s" , awsPartition , region , aws_account_id , vpc_id ),
232+ "ec2:vpc" : fmt .Sprintf ("arn:%s:ec2:%s:%s:vpc/%s" , awsNamespace , region , aws_account_id , vpc_id ),
233233 },
234234 },
235235 },
@@ -238,19 +238,19 @@ func DataAwsCrossaccountPolicy() common.Resource {
238238 Effect : "Allow" ,
239239 Actions : "ec2:RunInstances" ,
240240 NotResources : []string {
241- fmt .Sprintf ("arn:%s:ec2:%s:%s:image/*" , awsPartition , region , aws_account_id ),
242- fmt .Sprintf ("arn:%s:ec2:%s:%s:network-interface/*" , awsPartition , region , aws_account_id ),
243- fmt .Sprintf ("arn:%s:ec2:%s:%s:subnet/*" , awsPartition , region , aws_account_id ),
244- fmt .Sprintf ("arn:%s:ec2:%s:%s:security-group/*" , awsPartition , region , aws_account_id ),
245- fmt .Sprintf ("arn:%s:ec2:%s:%s:volume/*" , awsPartition , region , aws_account_id ),
246- fmt .Sprintf ("arn:%s:ec2:%s:%s:instance/*" , awsPartition , region , aws_account_id ),
241+ fmt .Sprintf ("arn:%s:ec2:%s:%s:image/*" , awsNamespace , region , aws_account_id ),
242+ fmt .Sprintf ("arn:%s:ec2:%s:%s:network-interface/*" , awsNamespace , region , aws_account_id ),
243+ fmt .Sprintf ("arn:%s:ec2:%s:%s:subnet/*" , awsNamespace , region , aws_account_id ),
244+ fmt .Sprintf ("arn:%s:ec2:%s:%s:security-group/*" , awsNamespace , region , aws_account_id ),
245+ fmt .Sprintf ("arn:%s:ec2:%s:%s:volume/*" , awsNamespace , region , aws_account_id ),
246+ fmt .Sprintf ("arn:%s:ec2:%s:%s:instance/*" , awsNamespace , region , aws_account_id ),
247247 },
248248 },
249249 & awsIamPolicyStatement {
250250 Sid : "EC2TerminateInstancesTag" ,
251251 Effect : "Allow" ,
252252 Actions : "ec2:TerminateInstances" ,
253- Resources : fmt .Sprintf ("arn:%s:ec2:%s:%s:instance/*" , awsPartition , region , aws_account_id ),
253+ Resources : fmt .Sprintf ("arn:%s:ec2:%s:%s:instance/*" , awsNamespace , region , aws_account_id ),
254254 Condition : map [string ]map [string ]string {
255255 "StringEquals" : {
256256 "ec2:ResourceTag/Vendor" : "Databricks" ,
@@ -265,8 +265,8 @@ func DataAwsCrossaccountPolicy() common.Resource {
265265 "ec2:DetachVolume" ,
266266 },
267267 Resources : []string {
268- fmt .Sprintf ("arn:%s:ec2:%s:%s:instance/*" , awsPartition , region , aws_account_id ),
269- fmt .Sprintf ("arn:%s:ec2:%s:%s:volume/*" , awsPartition , region , aws_account_id ),
268+ fmt .Sprintf ("arn:%s:ec2:%s:%s:instance/*" , awsNamespace , region , aws_account_id ),
269+ fmt .Sprintf ("arn:%s:ec2:%s:%s:volume/*" , awsNamespace , region , aws_account_id ),
270270 },
271271 Condition : map [string ]map [string ]string {
272272 "StringEquals" : {
@@ -278,7 +278,7 @@ func DataAwsCrossaccountPolicy() common.Resource {
278278 Sid : "EC2CreateVolumeByTag" ,
279279 Effect : "Allow" ,
280280 Actions : "ec2:CreateVolume" ,
281- Resources : fmt .Sprintf ("arn:%s:ec2:%s:%s:volume/*" , awsPartition , region , aws_account_id ),
281+ Resources : fmt .Sprintf ("arn:%s:ec2:%s:%s:volume/*" , awsNamespace , region , aws_account_id ),
282282 Condition : map [string ]map [string ]string {
283283 "StringEquals" : {
284284 "aws:RequestTag/Vendor" : "Databricks" ,
@@ -290,7 +290,7 @@ func DataAwsCrossaccountPolicy() common.Resource {
290290 Effect : "Allow" ,
291291 Actions : "ec2:DeleteVolume" ,
292292 Resources : []string {
293- fmt .Sprintf ("arn:%s:ec2:%s:%s:volume/*" , awsPartition , region , aws_account_id ),
293+ fmt .Sprintf ("arn:%s:ec2:%s:%s:volume/*" , awsNamespace , region , aws_account_id ),
294294 },
295295 Condition : map [string ]map [string ]string {
296296 "StringEquals" : {
@@ -307,10 +307,10 @@ func DataAwsCrossaccountPolicy() common.Resource {
307307 "ec2:RevokeSecurityGroupEgress" ,
308308 "ec2:RevokeSecurityGroupIngress" ,
309309 },
310- Resources : fmt .Sprintf ("arn:%s:ec2:%s:%s:security-group/%s" , awsPartition , region , aws_account_id , security_group_id ),
310+ Resources : fmt .Sprintf ("arn:%s:ec2:%s:%s:security-group/%s" , awsNamespace , region , aws_account_id , security_group_id ),
311311 Condition : map [string ]map [string ]string {
312312 "StringEquals" : {
313- "ec2:vpc" : fmt .Sprintf ("arn:%s:ec2:%s:%s:vpc/%s" , awsPartition , region , aws_account_id , vpc_id ),
313+ "ec2:vpc" : fmt .Sprintf ("arn:%s:ec2:%s:%s:vpc/%s" , awsNamespace , region , aws_account_id , vpc_id ),
314314 },
315315 },
316316 },
0 commit comments