@@ -38,9 +38,7 @@ Globals:
38
38
Environment :
39
39
Variables :
40
40
POWERTOOLS_METRICS_NAMESPACE : AccountSetup
41
- EXECUTION_ROLE_NAME : !Ref ExecutionRoleName
42
41
LOG_LEVEL : INFO
43
- AWS_PARTITION : !Ref "AWS::Partition"
44
42
Handler : lambda_handler.handler
45
43
Layers :
46
44
- !Ref DependencyLayer
@@ -348,13 +346,20 @@ Resources:
348
346
Type : " AWS::Serverless::StateMachine"
349
347
Properties :
350
348
Definition :
351
- StartAt : UpdatePasswordPolicy
349
+ StartAt : BuildParameters
352
350
States :
351
+ BuildParameters :
352
+ Type : Pass
353
+ InputPath : " $.account"
354
+ Parameters :
355
+ " AccountId.$ " : " $.accountId"
356
+ " ExecutionRoleArn.$ " : " States.Format('arn:aws:iam::{}:role/${ExecutionRoleName}', $.accountId)"
357
+ Next : UpdatePasswordPolicy
353
358
UpdatePasswordPolicy :
354
359
Type : Task
355
360
Resource : " arn:aws:states:::aws-sdk:iam:updateAccountPasswordPolicy"
356
361
Credentials :
357
- " RoleArn.$ " : " States.Format('arn:aws:iam::{}:role/${ExecutionRoleName}', $.account.accountId) "
362
+ " RoleArn.$ " : " $.ExecutionRoleArn "
358
363
Parameters :
359
364
MinimumPasswordLength : 14 # https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-cis-controls.html#securityhub-cis-controls-1.9
360
365
RequireSymbols : true # https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-cis-controls.html#securityhub-cis-controls-1.7
@@ -371,14 +376,14 @@ Resources:
371
376
Type : Task
372
377
Resource : " arn:aws:states:::aws-sdk:s3control:putPublicAccessBlock"
373
378
Credentials :
374
- " RoleArn.$ " : " States.Format('arn:aws:iam::{}:role/${ExecutionRoleName}', $.account.accountId) "
379
+ " RoleArn.$ " : " $.ExecutionRoleArn "
375
380
Parameters :
376
381
PublicAccessBlockConfiguration :
377
382
BlockPublicAcls : true
378
383
IgnorePublicAcls : true
379
384
BlockPublicPolicy : true
380
385
RestrictPublicBuckets : true
381
- " AccountId.$ " : $.account.accountId
386
+ " AccountId.$ " : " $.AccountId "
382
387
ResultPath : null # discard result and keep original input
383
388
Next : Route53PolicyDocument
384
389
Route53PolicyDocument :
@@ -413,10 +418,10 @@ Resources:
413
418
Type : Task
414
419
Resource : " arn:aws:states:::aws-sdk:cloudwatchlogs:putResourcePolicy"
415
420
Credentials :
416
- " RoleArn.$ " : " States.Format('arn:aws:iam::{}:role/${ExecutionRoleName}', $.account.accountId) "
421
+ " RoleArn.$ " : " $.ExecutionRoleArn "
417
422
Parameters :
418
423
PolicyName : AWSServiceRoleForRoute53
419
- " PolicyDocument.$ " : States.Format($.Policy.PolicyDocument, $.account.accountId , $.account.accountId )
424
+ " PolicyDocument.$ " : States.Format($.Policy.PolicyDocument, $.AccountId , $.AccountId )
420
425
ResultPath : null # discard result and keep original input
421
426
Next : DescribeRegions
422
427
DescribeRegions :
@@ -436,35 +441,39 @@ Resources:
436
441
Type : Map
437
442
ItemsPath : " $.Regions.RegionNames"
438
443
MaxConcurrency : 0
439
- Parameters :
440
- " account_id.$ " : " $.account.accountId"
441
- " region.$ " : " $$.Map.Item.Value"
442
- Iterator :
444
+ ItemSelector :
445
+ " AccountId.$ " : " $.AccountId"
446
+ " Region.$ " : " $$.Map.Item.Value"
447
+ " ExecutionRoleArn.$ " : " $.ExecutionRoleArn"
448
+ ItemProcessor :
443
449
StartAt : EbsEncryptionByDefault
444
450
States :
445
451
EbsEncryptionByDefault :
446
452
Type : Task
447
453
Resource : " arn:aws:states:::aws-sdk:ec2:enableEbsEncryptionByDefault"
448
454
Credentials :
449
- " RoleArn.$ " : " States.Format('arn:aws:iam::{}:role/${ExecutionRoleName}', $.account_id) "
455
+ " RoleArn.$ " : " $.ExecutionRoleArn "
450
456
Parameters : {}
451
457
ResultPath : null # discard result and keep original input
452
458
Next : DisableSsmPublicSharing
453
459
DisableSsmPublicSharing :
454
460
Type : Task
455
461
Resource : " arn:aws:states:::aws-sdk:ssm:updateServiceSetting"
456
462
Credentials :
457
- " RoleArn.$ " : " States.Format('arn:aws:iam::{}:role/${ExecutionRoleName}', $.account_id) "
463
+ " RoleArn.$ " : " $.ExecutionRoleArn "
458
464
Parameters :
459
- " SettingId.$ " : " States.Format('arn:aws:ssm:{}:{}:servicesetting/ssm/documents/console/public-sharing-permission', $.region , $.account_id )"
465
+ " SettingId.$ " : " States.Format('arn:aws:ssm:{}:{}:servicesetting/ssm/documents/console/public-sharing-permission', $.Region , $.AccountId )"
460
466
SettingValue : Disable
461
467
Catch :
462
468
- ErrorEquals :
463
469
- States.ALL
464
470
ResultPath : null # discard result and keep original input
465
- Next : Regional
471
+ Next : IgnoreError
466
472
ResultPath : null # discard result and keep original input
467
473
Next : Regional
474
+ IgnoreError :
475
+ Type : Pass
476
+ Next : Regional
468
477
Regional :
469
478
Type : Task
470
479
Resource : !GetAtt RegionalFunction.Arn
0 commit comments