@@ -11,31 +11,51 @@ Resources:
11
11
Service : cloudformation.amazonaws.com
12
12
Action : sts:AssumeRole
13
13
Policies :
14
- - PolicyName : root
14
+ - PolicyName : QuiltServiceRolePolicy
15
15
PolicyDocument :
16
16
Version : ' 2012-10-17'
17
17
Statement :
18
18
- Effect : Allow
19
19
Action :
20
20
- apigateway:DELETE
21
21
- apigateway:GET
22
- - apigateway:GetResources
23
22
- apigateway:PATCH
24
23
- apigateway:POST
25
24
- apigateway:PUT
25
+ - apigateway:SetWebACL
26
26
- apigateway:UpdateRestApiPolicy
27
+ - appsync:SetWebACL
28
+ - apprunner:AssociateWebAcl
29
+ - apprunner:DescribeWebAclForService
30
+ - apprunner:DisassociateWebAcl
31
+ - athena:CreateWorkGroup
32
+ - athena:DeleteWorkGroup
33
+ - athena:GetWorkGroup
34
+ - athena:TagResource
27
35
- autoscaling:CreateAutoScalingGroup
28
36
- autoscaling:DeleteAutoScalingGroup
29
37
- autoscaling:DescribeAutoScalingGroups
30
38
- autoscaling:DescribeAutoScalingInstances
39
+ - autoscaling:DescribeLifecycleHooks
40
+ - autoscaling:DescribeNotificationConfigurations
31
41
- autoscaling:DescribeScalingActivities
32
42
- autoscaling:UpdateAutoScalingGroup
43
+ - cloudtrail:AddTags
33
44
- cloudtrail:CreateTrail
34
45
- cloudtrail:DeleteTrail
35
46
- cloudtrail:DescribeTrails
47
+ - cloudtrail:GetEventSelectors
48
+ - cloudtrail:GetInsightSelectors
49
+ - cloudtrail:GetTrail
50
+ - cloudtrail:GetTrailStatus
51
+ - cloudtrail:ListTags
36
52
- cloudtrail:PutEventSelectors
37
53
- cloudtrail:StartLogging
54
+ - cognito-idp:AssociateWebACL
55
+ - cognito-idp:DisassociateWebACL
56
+ - cognito-idp:GetWebACLForResource
38
57
- ec2:AssociateRouteTable
58
+ - ec2:AssociateVerifiedAccessInstanceWebAcl
39
59
- ec2:AttachInternetGateway
40
60
- ec2:AuthorizeSecurityGroupEgress
41
61
- ec2:AuthorizeSecurityGroupIngress
@@ -49,6 +69,7 @@ Resources:
49
69
- ec2:CreateVpc
50
70
- ec2:DeleteInternetGateway
51
71
- ec2:DeleteLaunchTemplate
72
+ - ec2:DeleteNetworkInterface
52
73
- ec2:DeleteRoute
53
74
- ec2:DeleteRouteTable
54
75
- ec2:DeleteSecurityGroup
@@ -62,13 +83,18 @@ Resources:
62
83
- ec2:DescribeLaunchTemplateVersions
63
84
- ec2:DescribeLaunchTemplates
64
85
- ec2:DescribeNetworkAcls
86
+ - ec2:DescribeNetworkInterfaces
65
87
- ec2:DescribeRouteTables
88
+ - ec2:DescribeSecurityGroupRules
66
89
- ec2:DescribeSecurityGroups
67
90
- ec2:DescribeSubnets
68
91
- ec2:DescribeVpcAttribute
69
92
- ec2:DescribeVpcs
70
93
- ec2:DetachInternetGateway
94
+ - ec2:DetachNetworkInterface
71
95
- ec2:DisassociateRouteTable
96
+ - ec2:DisassociateVerifiedAccessInstanceWebAcl
97
+ - ec2:GetVerifiedAccessInstanceWebAcl
72
98
- ec2:ModifyVpcAttribute
73
99
- ec2:RevokeSecurityGroupEgress
74
100
- ec2:RunInstances
@@ -82,6 +108,9 @@ Resources:
82
108
- ecs:DescribeClusters
83
109
- ecs:DescribeServices
84
110
- ecs:RegisterTaskDefinition
111
+ - ecs:TagResource
112
+ - ecs:UpdateService
113
+ - elasticloadbalancing:AddTags
85
114
- elasticloadbalancing:CreateListener
86
115
- elasticloadbalancing:CreateLoadBalancer
87
116
- elasticloadbalancing:CreateRule
@@ -91,28 +120,44 @@ Resources:
91
120
- elasticloadbalancing:DeleteRule
92
121
- elasticloadbalancing:DeleteTargetGroup
93
122
- elasticloadbalancing:DescribeListeners
123
+ - elasticloadbalancing:DescribeLoadBalancerAttributes
94
124
- elasticloadbalancing:DescribeLoadBalancers
95
125
- elasticloadbalancing:DescribeRules
126
+ - elasticloadbalancing:DescribeTags
127
+ - elasticloadbalancing:DescribeTargetGroupAttributes
96
128
- elasticloadbalancing:DescribeTargetGroups
129
+ - elasticloadbalancing:DescribeTargetHealth
97
130
- elasticloadbalancing:ModifyLoadBalancerAttributes
98
131
- elasticloadbalancing:ModifyTargetGroupAttributes
132
+ - elasticloadbalancing:SetWebAcl
133
+ - es:AddTags
99
134
- es:CreateElasticsearchDomain
100
135
- es:DeleteElasticsearchDomain
101
136
- es:DescribeElasticsearchDomain
137
+ - es:UpdateElasticsearchDomainConfig
102
138
- events:DeleteRule
103
139
- events:DescribeRule
140
+ - events:ListTargetsByRule
104
141
- events:PutRule
105
142
- events:PutTargets
106
143
- events:RemoveTargets
144
+ - events:TagResource
145
+ - firehose:CreateDeliveryStream
146
+ - firehose:DeleteDeliveryStream
147
+ - firehose:DescribeDeliveryStream
148
+ - firehose:ListTagsForDeliveryStream
149
+ - firehose:TagDeliveryStream
107
150
- glue:CreateDatabase
108
151
- glue:CreateTable
109
152
- glue:DeleteDatabase
110
153
- glue:DeleteTable
154
+ - glue:TagResource
111
155
- iam:AddRoleToInstanceProfile
112
156
- iam:AttachRolePolicy
113
157
- iam:CreateInstanceProfile
114
158
- iam:CreatePolicy
115
159
- iam:CreateRole
160
+ - iam:CreateServiceLinkedRole
116
161
- iam:DeleteInstanceProfile
117
162
- iam:DeletePolicy
118
163
- iam:DeletePolicyVersion
@@ -127,6 +172,20 @@ Resources:
127
172
- iam:PassRole
128
173
- iam:PutRolePolicy
129
174
- iam:RemoveRoleFromInstanceProfile
175
+ - iam:TagRole
176
+ - iam:TagPolicy
177
+ - kms:CreateGrant
178
+ - kms:CreateKey
179
+ - kms:Decrypt
180
+ - kms:DescribeKey
181
+ - kms:Encrypt
182
+ - kms:GenerateDataKey
183
+ - kms:GetKeyPolicy
184
+ - kms:GetKeyRotationStatus
185
+ - kms:ListResourceTags
186
+ - kms:PutKeyPolicy
187
+ - kms:ScheduleKeyDeletion
188
+ - kms:TagResource
130
189
- lambda:AddPermission
131
190
- lambda:CreateEventSourceMapping
132
191
- lambda:CreateFunction
@@ -135,42 +194,86 @@ Resources:
135
194
- lambda:DeleteLayerVersion
136
195
- lambda:GetEventSourceMapping
137
196
- lambda:GetFunction
197
+ - lambda:GetFunctionCodeSigningConfig
198
+ - lambda:GetFunctionConfiguration
138
199
- lambda:GetLayerVersion
200
+ - lambda:GetRuntimeManagementConfig
139
201
- lambda:InvokeFunction
140
202
- lambda:PublishLayerVersion
203
+ - lambda:PublishVersion
141
204
- lambda:PutFunctionConcurrency
142
205
- lambda:RemovePermission
206
+ - lambda:TagResource
143
207
- lambda:UpdateFunctionCode
144
208
- lambda:UpdateFunctionConfiguration
145
209
- logs:CreateLogGroup
210
+ - logs:CreateLogStream
146
211
- logs:DeleteLogGroup
212
+ - logs:DeleteLogStream
147
213
- logs:DeleteResourcePolicy
148
214
- logs:DescribeLogGroups
215
+ - logs:DescribeLogStreams
149
216
- logs:DescribeResourcePolicies
150
217
- logs:PutResourcePolicy
151
218
- logs:PutRetentionPolicy
219
+ - logs:TagResource
220
+ - organizations:ListAWSServiceAccessForOrganization
152
221
- rds:AddTagsToResource
153
222
- rds:CreateDBInstance
154
223
- rds:CreateDBSubnetGroup
224
+ - rds:CreateTenantDatabase
155
225
- rds:DeleteDBInstance
156
226
- rds:DeleteDBSubnetGroup
227
+ - rds:DeleteTenantDatabase
157
228
- rds:DescribeDBInstances
158
229
- rds:DescribeDBSubnetGroups
230
+ - rds:ListTagsForResource
159
231
- rds:ModifyDBInstance
160
- - s3:CreateBucket
161
- - s3:DeleteBucket
162
- - s3:DeleteBucketPolicy
163
- - s3:GetBucketPolicy
164
- - s3:GetObject
165
- - s3:PutBucketCORS
166
- - s3:PutBucketPolicy
167
- - s3:PutBucketVersioning
168
- - s3:PutLifecycleConfiguration
232
+ - route53:CreateHostedZone
233
+ - s3:* # Stack has this anyway; Canary buckets get Access Denied even with GetObject
234
+ - secretsmanager:CreateSecret
235
+ - secretsmanager:TagResource
236
+ - servicediscovery:CreatePrivateDnsNamespace
237
+ - servicediscovery:CreateService
238
+ - servicediscovery:DeleteNamespace
239
+ - servicediscovery:DeleteService
240
+ - servicediscovery:GetOperation
241
+ - servicediscovery:GetService
242
+ - servicediscovery:TagResource
243
+ - sns:CreateTopic*
244
+ - sns:DeleteTopic
245
+ - sns:Get*
169
246
- sns:Publish # To publish to CFN notification topic.
247
+ - sns:SetTopicAttributes
248
+ - sns:Subscribe
249
+ - sns:TagResource
170
250
- sqs:CreateQueue
171
251
- sqs:DeleteQueue
172
252
- sqs:GetQueueAttributes
253
+ - sqs:TagQueue
254
+ - ssm:AddTagsToResource
173
255
- ssm:DeleteParameter
174
256
- ssm:GetParameters
175
257
- ssm:PutParameter
258
+ - synthetics:CreateCanary
259
+ - synthetics:DeleteCanary
260
+ - synthetics:GetCanary
261
+ - synthetics:StartCanary
262
+ - synthetics:StopCanary
263
+ - synthetics:TagResource
264
+ - wafv2:AssociateWebACL
265
+ - wafv2:CreateRegexPatternSet
266
+ - wafv2:CreateWebACL
267
+ - wafv2:DeleteRegexPatternSet
268
+ - wafv2:DeleteWebACL
269
+ - wafv2:DisassociateWebACL
270
+ - wafv2:GetRegexPatternSet
271
+ - wafv2:GetWebACL
272
+ - wafv2:GetWebACLForResource
273
+ - wafv2:ListTagsForResource
274
+ - wafv2:TagResource
176
275
Resource : ' *'
276
+ Outputs :
277
+ QuiltServiceRoleArn :
278
+ Description : " ARN of the Quilt Service IAM Role"
279
+ Value : !GetAtt QuiltCloudFormationServiceRole.Arn
0 commit comments