Skip to content

Commit ac259aa

Browse files
committed
ELI-577: Refines permissions for preprod to address policy size
1 parent 86beebd commit ac259aa

1 file changed

Lines changed: 19 additions & 60 deletions

File tree

infrastructure/stacks/iams-developer-roles/iams_permissions_boundary.tf

Lines changed: 19 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -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",
@@ -179,37 +160,18 @@ data "aws_iam_policy_document" "permissions_boundary" {
179160
# S3 - bucket and object management
180161
"s3:GetLifecycleConfiguration",
181162
"s3:PutLifecycleConfiguration",
182-
"s3:GetBucketVersioning",
183163
"s3:GetEncryptionConfiguration",
184164
"s3:PutEncryptionConfiguration",
185-
"s3:GetBucketPolicy",
186-
"s3:GetBucketObjectLockConfiguration",
187-
"s3:GetBucketLogging",
188165
"s3:GetReplicationConfiguration",
189-
"s3:GetBucketWebsite",
190-
"s3:GetBucketRequestPayment",
191-
"s3:GetBucketCORS",
192-
"s3:GetBucketAcl",
193-
"s3:PutBucketAcl",
194166
"s3:GetAccelerateConfiguration",
195167
"s3:ListBucket",
196-
"s3:GetObject",
197-
"s3:PutObject",
168+
"s3:GetObject*",
169+
"s3:PutObject*",
198170
"s3:DeleteObject",
199-
"s3:GetBucketLocation",
200-
"s3:GetBucketPublicAccessBlock",
201-
"s3:PutBucketCORS",
171+
"s3:GetBucket*",
202172
"s3:CreateBucket",
203173
"s3:DeleteBucket",
204-
"s3:GetBucketTagging",
205-
"s3:PutBucketPolicy",
206-
"s3:PutBucketVersioning",
207-
"s3:PutBucketPublicAccessBlock",
208-
"s3:PutBucketLogging",
209-
"s3:GetObjectTagging",
210-
"s3:PutObjectTagging",
211-
"s3:GetObjectVersion",
212-
"s3:PutBucketTagging",
174+
"s3:PutBucket*",
213175

214176
# SNS - notification management
215177
"sns:CreateTopic",
@@ -222,23 +184,20 @@ data "aws_iam_policy_document" "permissions_boundary" {
222184
"sns:UntagResource",
223185
"sns:Subscribe",
224186
"sns:Unsubscribe",
225-
"sns:ListSubscriptions",
226-
"sns:ListSubscriptionsByTopic",
187+
"sns:ListSubscriptions*",
227188
"sns:GetSubscriptionAttributes",
228189

229190
# SSM - parameter management
230191
"ssm:DescribeParameters",
231-
"ssm:GetParameter",
232-
"ssm:GetParameters",
192+
"ssm:GetParameter*",
233193
"ssm:ListTagsForResource",
234194
"ssm:PutParameter",
235195
"ssm:AddTagsToResource",
236196

237197
# WAFv2 - web application firewall management
238198
"wafv2:CreateWebACL",
239199
"wafv2:DeleteWebACL",
240-
"wafv2:GetWebACL",
241-
"wafv2:GetWebACLForResource",
200+
"wafv2:GetWebACL*",
242201
"wafv2:UpdateWebACL",
243202
"wafv2:ListWebACLs",
244203
"wafv2:TagResource",

0 commit comments

Comments
 (0)