@@ -21,18 +21,15 @@ data "aws_iam_policy_document" "permissions_boundary" {
2121 # CloudWatch - monitoring and alarms
2222 " cloudwatch:PutMetricAlarm" ,
2323 " cloudwatch:DeleteAlarms" ,
24- " cloudwatch:DescribeAlarms" ,
25- " cloudwatch:DescribeAlarmsForMetric" ,
24+ " cloudwatch:DescribeAlarms*" ,
2625 " cloudwatch:ListTagsForResource" ,
2726 " cloudwatch:TagResource" ,
2827 " cloudwatch:UntagResource" ,
2928 " cloudwatch:GetDashboard" ,
3029 " cloudwatch:GetMetricWidgetImage" ,
3130
3231 # DynamoDB - table management
33- " dynamodb:DescribeTimeToLive" ,
34- " dynamodb:DescribeTable" ,
35- " dynamodb:DescribeContinuousBackups" ,
32+ " dynamodb:Describe*" ,
3633 " dynamodb:ListTables" ,
3734 " dynamodb:DeleteTable" ,
3835 " dynamodb:CreateTable" ,
@@ -47,12 +44,10 @@ data "aws_iam_policy_document" "permissions_boundary" {
4744 " ec2:ModifyVpcBlockPublicAccessOptions" ,
4845 " ec2:CreateTags" ,
4946 " ec2:DeleteTags" ,
50- " ec2:CreateNetworkAclEntry" ,
51- " ec2:DeleteNetworkAclEntry" ,
52- " ec2:CreateNetworkAcl" ,
53- " ec2:DeleteNetworkAcl" ,
47+ " ec2:CreateNetworkAcl*" ,
48+ " ec2:DeleteNetworkAcl*" ,
5449 " ec2:AssociateRouteTable" ,
55- " ec2:CreateVpc" ,
50+ " ec2:CreateVpc* " ,
5651 " ec2:ModifyVpcAttribute" ,
5752 " ec2:DeleteVpc" ,
5853 " ec2:CreateRouteTable" ,
@@ -62,7 +57,6 @@ data "aws_iam_policy_document" "permissions_boundary" {
6257 " ec2:RevokeSecurityGroupEgress" ,
6358 " ec2:AuthorizeSecurityGroupIngress" ,
6459 " ec2:AuthorizeSecurityGroupEgress" ,
65- " ec2:CreateVpcEndpoint" ,
6660 " ec2:CreateFlowLogs" ,
6761 " ec2:ReplaceNetworkAclAssociation" ,
6862 " ec2:DeleteSecurityGroup" ,
@@ -93,13 +87,10 @@ data "aws_iam_policy_document" "permissions_boundary" {
9387 " firehose:StopDeliveryStreamEncryption" ,
9488
9589 # IAM - specific role and policy management
96- " iam:GetRole" ,
97- " iam:GetRolePolicy" ,
98- " iam:GetPolicy" ,
99- " iam:GetPolicyVersion" ,
100- " iam:ListRoles" ,
90+ " iam:GetRole*" ,
91+ " iam:GetPolicy*" ,
92+ " iam:ListRole*" ,
10193 " iam:ListPolicies" ,
102- " iam:ListRolePolicies" ,
10394 " iam:ListAttachedRolePolicies" ,
10495 " iam:ListPolicyVersions" ,
10596 " iam:CreateRole" ,
@@ -110,10 +101,8 @@ data "aws_iam_policy_document" "permissions_boundary" {
110101 " iam:PutRolePermissionsBoundary" ,
111102 " iam:AttachRolePolicy" ,
112103 " iam:DetachRolePolicy" ,
113- " iam:CreatePolicy" ,
114- " iam:CreatePolicyVersion" ,
115- " iam:DeletePolicy" ,
116- " iam:DeletePolicyVersion" ,
104+ " iam:CreatePolicy*" ,
105+ " iam:DeletePolicy*" ,
117106 " iam:TagRole" ,
118107 " iam:UntagPolicy" ,
119108 " iam:PassRole" ,
@@ -122,13 +111,9 @@ data "aws_iam_policy_document" "permissions_boundary" {
122111
123112 # KMS - encryption key management
124113 " kms:CreateKey" ,
125- " kms:DescribeKey" ,
126114 " kms:Describe*" ,
127115 " kms:CreateAlias" ,
128- " kms:ListKeys" ,
129116 " kms:List*" ,
130- " kms:ListAliases" ,
131- " kms:GetKeyPolicy" ,
132117 " kms:GetKeyPolicy*" ,
133118 " kms:GetKeyRotationStatus" ,
134119 " kms:DeleteAlias" ,
@@ -140,19 +125,15 @@ data "aws_iam_policy_document" "permissions_boundary" {
140125 " kms:ScheduleKeyDeletion" ,
141126 " kms:PutKeyPolicy" ,
142127 " kms:Encrypt" ,
143- " kms:Decrypt" ,
144128 " kms:Decrypt*" ,
145129 " kms:ReEncrypt*" ,
146130 " kms:GenerateDataKey" ,
147131
148132 # Lambda - function management
149133 " lambda:CreateFunction" ,
150- " lambda:UpdateFunctionCode" ,
151- " lambda:UpdateFunctionConfiguration" ,
134+ " lambda:UpdateFunction*" ,
152135 " lambda:DeleteFunction" ,
153- " lambda:GetFunction" ,
154- " lambda:GetFunctionConfiguration" ,
155- " lambda:GetFunctionCodeSigningConfig" ,
136+ " lambda:GetFunction*" ,
156137 " lambda:ListVersionsByFunction" ,
157138 " lambda:TagResource" ,
158139 " lambda:UntagResource" ,
@@ -171,44 +152,26 @@ data "aws_iam_policy_document" "permissions_boundary" {
171152 " lambda:PutProvisionedConcurrencyConfig" ,
172153 " lambda:DeleteProvisionedConcurrencyConfig" ,
173154 " lambda:ListProvisionedConcurrencyConfigs" ,
155+ " lambda:PutFunctionConcurrency" ,
174156
175157 # CloudWatch Logs - log management
176158 " logs:*" ,
177159
178160 # S3 - bucket and object management
179161 " s3:GetLifecycleConfiguration" ,
180162 " s3:PutLifecycleConfiguration" ,
181- " s3:GetBucketVersioning" ,
182163 " s3:GetEncryptionConfiguration" ,
183164 " s3:PutEncryptionConfiguration" ,
184- " s3:GetBucketPolicy" ,
185- " s3:GetBucketObjectLockConfiguration" ,
186- " s3:GetBucketLogging" ,
187165 " s3:GetReplicationConfiguration" ,
188- " s3:GetBucketWebsite" ,
189- " s3:GetBucketRequestPayment" ,
190- " s3:GetBucketCORS" ,
191- " s3:GetBucketAcl" ,
192- " s3:PutBucketAcl" ,
193166 " s3:GetAccelerateConfiguration" ,
194167 " s3:ListBucket" ,
195- " s3:GetObject" ,
196- " s3:PutObject" ,
168+ " s3:GetObject* " ,
169+ " s3:PutObject* " ,
197170 " s3:DeleteObject" ,
198- " s3:GetBucketLocation" ,
199- " s3:GetBucketPublicAccessBlock" ,
200- " s3:PutBucketCORS" ,
171+ " s3:GetBucket*" ,
201172 " s3:CreateBucket" ,
202173 " s3:DeleteBucket" ,
203- " s3:GetBucketTagging" ,
204- " s3:PutBucketPolicy" ,
205- " s3:PutBucketVersioning" ,
206- " s3:PutBucketPublicAccessBlock" ,
207- " s3:PutBucketLogging" ,
208- " s3:GetObjectTagging" ,
209- " s3:PutObjectTagging" ,
210- " s3:GetObjectVersion" ,
211- " s3:PutBucketTagging" ,
174+ " s3:PutBucket*" ,
212175
213176 # SNS - notification management
214177 " sns:CreateTopic" ,
@@ -221,23 +184,20 @@ data "aws_iam_policy_document" "permissions_boundary" {
221184 " sns:UntagResource" ,
222185 " sns:Subscribe" ,
223186 " sns:Unsubscribe" ,
224- " sns:ListSubscriptions" ,
225- " sns:ListSubscriptionsByTopic" ,
187+ " sns:ListSubscriptions*" ,
226188 " sns:GetSubscriptionAttributes" ,
227189
228190 # SSM - parameter management
229191 " ssm:DescribeParameters" ,
230- " ssm:GetParameter" ,
231- " ssm:GetParameters" ,
192+ " ssm:GetParameter*" ,
232193 " ssm:ListTagsForResource" ,
233194 " ssm:PutParameter" ,
234195 " ssm:AddTagsToResource" ,
235196
236197 # WAFv2 - web application firewall management
237198 " wafv2:CreateWebACL" ,
238199 " wafv2:DeleteWebACL" ,
239- " wafv2:GetWebACL" ,
240- " wafv2:GetWebACLForResource" ,
200+ " wafv2:GetWebACL*" ,
241201 " wafv2:UpdateWebACL" ,
242202 " wafv2:ListWebACLs" ,
243203 " wafv2:TagResource" ,
@@ -255,7 +215,11 @@ data "aws_iam_policy_document" "permissions_boundary" {
255215 # State Machine management
256216 " states:DescribeStateMachine" ,
257217 " states:ListStateMachineVersions" ,
258- " states:ListTagsForResource"
218+ " states:ListTagsForResource" ,
219+ " states:ValidateStateMachineDefinition" ,
220+ " states:CreateStateMachine" ,
221+ " states:TagResource" ,
222+ " states:UpdateStateMachine" ,
259223 ]
260224
261225 resources = [" *" ]
0 commit comments