@@ -188,34 +188,66 @@ data "aws_iam_policy_document" "ebs_csi" {
188
188
189
189
statement {
190
190
actions = [
191
- " ec2:CreateSnapshot" ,
192
- " ec2:AttachVolume" ,
193
- " ec2:DetachVolume" ,
194
- " ec2:ModifyVolume" ,
195
191
" ec2:DescribeAvailabilityZones" ,
196
192
" ec2:DescribeInstances" ,
197
193
" ec2:DescribeSnapshots" ,
198
194
" ec2:DescribeTags" ,
199
195
" ec2:DescribeVolumes" ,
200
196
" ec2:DescribeVolumesModifications" ,
201
- " ec2:EnableFastSnapshotRestores"
202
197
]
203
198
204
199
resources = [" *" ]
205
200
}
206
201
207
202
statement {
208
- actions = [" ec2:CreateTags" ]
203
+ actions = [
204
+ " ec2:CreateSnapshot" ,
205
+ " ec2:ModifyVolume" ,
206
+ ]
207
+
208
+ resources = [" arn:${ local . partition } :ec2:*:*:volume/*" ]
209
+ }
210
+
211
+ statement {
212
+ actions = [
213
+ " ec2:AttachVolume" ,
214
+ " ec2:DetachVolume" ,
215
+ ]
216
+
217
+ resources = [
218
+ " arn:${ local . partition } :ec2:*:*:volume/*" ,
219
+ " arn:${ local . partition } :ec2:*:*:instance/*" ,
220
+ ]
221
+ }
222
+
223
+ statement {
224
+ actions = [
225
+ " ec2:CreateVolume" ,
226
+ " ec2:EnableFastSnapshotRestores" ,
227
+ ]
209
228
229
+ resources = [" arn:${ local . partition } :ec2:*:*:snapshot/*" ]
230
+ }
231
+
232
+ statement {
233
+ actions = [" ec2:CreateTags" ]
210
234
resources = [
211
235
" arn:${ local . partition } :ec2:*:*:volume/*" ,
212
236
" arn:${ local . partition } :ec2:*:*:snapshot/*" ,
213
237
]
238
+
239
+ condition {
240
+ test = " StringEquals"
241
+ variable = " ec2:CreateAction"
242
+ values = [
243
+ " CreateVolume" ,
244
+ " CreateSnapshot" ,
245
+ ]
246
+ }
214
247
}
215
248
216
249
statement {
217
250
actions = [" ec2:DeleteTags" ]
218
-
219
251
resources = [
220
252
" arn:${ local . partition } :ec2:*:*:volume/*" ,
221
253
" arn:${ local . partition } :ec2:*:*:snapshot/*" ,
@@ -229,9 +261,7 @@ data "aws_iam_policy_document" "ebs_csi" {
229
261
condition {
230
262
test = " StringLike"
231
263
variable = " aws:RequestTag/ebs.csi.aws.com/cluster"
232
- values = [
233
- true
234
- ]
264
+ values = [" true" ]
235
265
}
236
266
}
237
267
@@ -247,84 +277,79 @@ data "aws_iam_policy_document" "ebs_csi" {
247
277
}
248
278
249
279
statement {
250
- actions = [" ec2:CreateVolume " ]
251
- resources = [" *" ]
280
+ actions = [" ec2:DeleteVolume " ]
281
+ resources = [" arn: ${ local . partition } :ec2:*:*:volume/ *" ]
252
282
253
283
condition {
254
284
test = " StringLike"
255
- variable = " aws:RequestTag/kubernetes.io /cluster/* "
256
- values = [" owned " ]
285
+ variable = " aws:ResourceTag/ebs.csi.aws.com /cluster"
286
+ values = [" true " ]
257
287
}
258
288
}
259
289
260
- statement {
261
- actions = [" ec2:CreateVolume" ]
262
- resources = [" arn:${ local . partition } :ec2:*:*:snapshot/*" ]
263
- }
264
-
265
290
statement {
266
291
actions = [" ec2:DeleteVolume" ]
267
- resources = [" *" ]
292
+ resources = [" arn: ${ local . partition } :ec2:*:*:volume/ *" ]
268
293
269
294
condition {
270
295
test = " StringLike"
271
- variable = " ec2 :ResourceTag/ebs.csi.aws.com/cluster "
272
- values = [true ]
296
+ variable = " aws :ResourceTag/CSIVolumeName "
297
+ values = [" * " ]
273
298
}
274
299
}
275
300
276
301
statement {
277
302
actions = [" ec2:DeleteVolume" ]
278
- resources = [" *" ]
303
+ resources = [" arn: ${ local . partition } :ec2:*:*:volume/ *" ]
279
304
280
305
condition {
281
306
test = " StringLike"
282
- variable = " ec2:ResourceTag/CSIVolumeName "
307
+ variable = " ec2:ResourceTag/kubernetes.io/created-for/pvc/name "
283
308
values = [" *" ]
284
309
}
285
310
}
286
311
287
312
statement {
288
- actions = [" ec2:DeleteVolume " ]
289
- resources = [" *" ]
313
+ actions = [" ec2:CreateSnapshot " ]
314
+ resources = [" arn: ${ local . partition } :ec2:*:*:snapshot/ *" ]
290
315
291
316
condition {
292
317
test = " StringLike"
293
- variable = " ec2:ResourceTag/kubernetes.io/cluster/* "
294
- values = [" owned " ]
318
+ variable = " aws:RequestTag/CSIVolumeSnapshotName "
319
+ values = [" * " ]
295
320
}
296
321
}
297
322
298
323
statement {
299
- actions = [" ec2:DeleteVolume " ]
300
- resources = [" *" ]
324
+ actions = [" ec2:CreateSnapshot " ]
325
+ resources = [" arn: ${ local . partition } :ec2:*:*:snapshot/ *" ]
301
326
302
327
condition {
303
328
test = " StringLike"
304
- variable = " ec2:ResourceTag/kubernetes.io/created-for/pvc/name "
305
- values = [" * " ]
329
+ variable = " aws:RequestTag/ebs.csi.aws.com/cluster "
330
+ values = [" true " ]
306
331
}
307
332
}
308
333
309
334
statement {
310
335
actions = [" ec2:DeleteSnapshot" ]
311
- resources = [" *" ]
336
+ resources = [" arn: ${ local . partition } :ec2:*:*:snapshot/ *" ]
312
337
313
338
condition {
314
339
test = " StringLike"
315
- variable = " ec2 :ResourceTag/CSIVolumeSnapshotName"
340
+ variable = " aws :ResourceTag/CSIVolumeSnapshotName"
316
341
values = [" *" ]
317
342
}
318
343
}
319
344
320
345
statement {
321
346
actions = [" ec2:DeleteSnapshot" ]
322
- resources = [" *" ]
347
+ resources = [" arn: ${ local . partition } :ec2:*:*:snapshot/ *" ]
323
348
324
349
condition {
325
350
test = " StringLike"
326
- variable = " ec2 :ResourceTag/ebs.csi.aws.com/cluster"
327
- values = [true ]
351
+ variable = " aws :ResourceTag/ebs.csi.aws.com/cluster"
352
+ values = [" true" ]
328
353
}
329
354
}
330
355
0 commit comments