12
12
# permissions and limitations under the License.
13
13
14
14
AWSTemplateFormatVersion: '2010-09-09'
15
- Description: '(SO0089) - customizations-for-aws-control-tower Solution. Version: v2.5.2 '
15
+ Description: '(SO0089) - customizations-for-aws-control-tower Solution. Version: v2.5.3 '
16
16
17
17
Parameters:
18
18
PipelineApprovalStage:
@@ -127,7 +127,7 @@ Mappings:
127
127
SourceBucketName:
128
128
Name: control-tower-cfct-assets-prod
129
129
SourceKeyName:
130
- Name: customizations-for-aws-control-tower/v2.5.2 /custom-control-tower-configuration.zip
130
+ Name: customizations-for-aws-control-tower/v2.5.3 /custom-control-tower-configuration.zip
131
131
CustomControlTowerPipelineS3TriggerKey:
132
132
Name: custom-control-tower-configuration.zip
133
133
CustomControlTowerPipelineS3NonTriggerKey:
@@ -145,7 +145,7 @@ Mappings:
145
145
SolutionID: 'SO0089'
146
146
MetricsURL: 'https://metrics.awssolutionsbuilder.com/generic'
147
147
Data:
148
- AddonTemplate: 'https://s3.amazonaws.com/control-tower-cfct-assets-prod/customizations-for-aws-control-tower/v2.5.2 /custom-control-tower-initiation.template'
148
+ AddonTemplate: 'https://s3.amazonaws.com/control-tower-cfct-assets-prod/customizations-for-aws-control-tower/v2.5.3 /custom-control-tower-initiation.template'
149
149
AWSControlTower:
150
150
ExecutionRole:
151
151
Name: "AWSControlTowerExecution"
@@ -283,7 +283,31 @@ Resources:
283
283
Effect: Deny
284
284
Principal: "*"
285
285
Action: s3:DeleteBucket
286
- Resource: !Sub arn:${AWS::Partition}:s3:::${CustomControlTowerS3AccessLogsBucket}
286
+ Resource: !Sub "arn:${AWS::Partition}:s3:::${CustomControlTowerS3AccessLogsBucket}"
287
+ - Sid: EnableS3AccessLoggingForPipelineS3Bucket
288
+ Effect: Allow
289
+ Principal:
290
+ Service: logging.s3.amazonaws.com
291
+ Action:
292
+ - s3:PutObject
293
+ Resource: !Sub "arn:${AWS::Partition}:s3:::${CustomControlTowerS3AccessLogsBucket}/*"
294
+ Condition:
295
+ ArnLike:
296
+ "aws:SourceArn": !Sub "arn:${AWS::Partition}:s3:::${CustomControlTowerPipelineS3Bucket}"
297
+ StringEquals:
298
+ "aws:SourceAccount": !Ref AWS::AccountId
299
+ - Sid: EnableS3AccessLoggingForPipelineArtifactS3Bucket
300
+ Effect: Allow
301
+ Principal:
302
+ Service: logging.s3.amazonaws.com
303
+ Action:
304
+ - s3:PutObject
305
+ Resource: !Sub "arn:${AWS::Partition}:s3:::${CustomControlTowerS3AccessLogsBucket}/*"
306
+ Condition:
307
+ ArnLike:
308
+ "aws:SourceArn": !Sub "arn:${AWS::Partition}:s3:::${CustomControlTowerPipelineArtifactS3Bucket}"
309
+ StringEquals:
310
+ "aws:SourceAccount": !Ref AWS::AccountId
287
311
288
312
CustomControlTowerCodeCommit:
289
313
Type: AWS::CodeCommit::Repository
@@ -296,7 +320,7 @@ Resources:
296
320
Code:
297
321
S3:
298
322
Bucket: control-tower-cfct-assets-prod
299
- Key: !Sub customizations-for-aws-control-tower/v2.5.2 /custom-control-tower-configuration-${AWS::Region}.zip
323
+ Key: !Sub customizations-for-aws-control-tower/v2.5.3 /custom-control-tower-configuration-${AWS::Region}.zip
300
324
301
325
# SSM Parameter to store the git repository name
302
326
CustomControlTowerRepoNameParameter:
@@ -559,7 +583,7 @@ Resources:
559
583
- {KMSKeyName: !FindInMap [KMS, Alias, Name]}
560
584
Source:
561
585
Type: CODEPIPELINE
562
- BuildSpec: "version: 0.2\nphases:\n install:\n runtime-versions:\n python: 3.8\n ruby: 2.6\n commands:\n - export current=$(pwd)\n - if [ -f manifest.yaml ];then export current=$(pwd);else if [ -f custom-control-tower-configuration/manifest.yaml ]; then export current=$(pwd)/custom-control-tower-configuration; else echo 'manifest.yaml does not exist at the root level of custom-control-tower-configuration.zip or inside custom-control-tower-configuration folder, please check the ZIP file'; exit 1; fi; fi;\n - apt-get -q update 1> /dev/null\n - apt-get -q install zip wget python3-pip libyaml-dev -y 1>/dev/null\n - export LC_ALL='en_US.UTF-8'\n - locale-gen en_US en_US.UTF-8\n - dpkg-reconfigure locales --frontend noninteractive\n pre_build:\n commands:\n - cd $current\n - echo 'Download CustomControlTower Scripts'\n - aws s3 cp --quiet s3://control-tower-cfct-assets-prod/customizations-for-aws-control-tower/v2.5.2/custom-control-tower-scripts.zip $current\n - unzip -q -o $current/custom-control-tower-scripts.zip -d $current\n - cp codebuild_scripts/* .\n - bash install_stage_dependencies.sh $STAGE_NAME\n build:\n commands:\n - echo 'Starting build $(date) in $(pwd)'\n - echo 'bash execute_stage_scripts.sh $STAGE_NAME $LOG_LEVEL $WAIT_TIME $SM_ARN $ARTIFACT_BUCKET $KMS_KEY_ALIAS_NAME $BOOL_VALUES $NONE_TYPE_VALUES'\n - bash execute_stage_scripts.sh $STAGE_NAME $LOG_LEVEL $WAIT_TIME $SM_ARN $ARTIFACT_BUCKET $KMS_KEY_ALIAS_NAME $BOOL_VALUES $NONE_TYPE_VALUES \n - echo 'Running build scripts completed $(date)'\n post_build:\n commands:\n - echo 'Starting post build $(date) in $(pwd)'\n - echo 'build completed on $(date)'\n\nartifacts:\n files:\n - '**/*'\n\n"
586
+ BuildSpec: "version: 0.2\nphases:\n install:\n runtime-versions:\n python: 3.8\n ruby: 2.6\n commands:\n - export current=$(pwd)\n - if [ -f manifest.yaml ];then export current=$(pwd);else if [ -f custom-control-tower-configuration/manifest.yaml ]; then export current=$(pwd)/custom-control-tower-configuration; else echo 'manifest.yaml does not exist at the root level of custom-control-tower-configuration.zip or inside custom-control-tower-configuration folder, please check the ZIP file'; exit 1; fi; fi;\n - apt-get -q update 1> /dev/null\n - apt-get -q install zip wget python3-pip libyaml-dev -y 1>/dev/null\n - export LC_ALL='en_US.UTF-8'\n - locale-gen en_US en_US.UTF-8\n - dpkg-reconfigure locales --frontend noninteractive\n pre_build:\n commands:\n - cd $current\n - echo 'Download CustomControlTower Scripts'\n - aws s3 cp --quiet s3://control-tower-cfct-assets-prod/customizations-for-aws-control-tower/v2.5.3/custom-control-tower-scripts.zip $current\n - unzip -q -o $current/custom-control-tower-scripts.zip -d $current\n - cp codebuild_scripts/* .\n - bash install_stage_dependencies.sh $STAGE_NAME\n build:\n commands:\n - echo 'Starting build $(date) in $(pwd)'\n - echo 'bash execute_stage_scripts.sh $STAGE_NAME $LOG_LEVEL $WAIT_TIME $SM_ARN $ARTIFACT_BUCKET $KMS_KEY_ALIAS_NAME $BOOL_VALUES $NONE_TYPE_VALUES'\n - bash execute_stage_scripts.sh $STAGE_NAME $LOG_LEVEL $WAIT_TIME $SM_ARN $ARTIFACT_BUCKET $KMS_KEY_ALIAS_NAME $BOOL_VALUES $NONE_TYPE_VALUES \n - echo 'Running build scripts completed $(date)'\n post_build:\n commands:\n - echo 'Starting post build $(date) in $(pwd)'\n - echo 'build completed on $(date)'\n\nartifacts:\n files:\n - '**/*'\n\n"
563
587
Environment:
564
588
ComputeType: BUILD_GENERAL1_SMALL
565
589
Image: "aws/codebuild/standard:5.0"
@@ -584,7 +608,7 @@ Resources:
584
608
- Name: SOLUTION_ID
585
609
Value: !FindInMap [ Solution, Metrics, SolutionID ]
586
610
- Name: SOLUTION_VERSION
587
- Value: v2.5.2
611
+ Value: v2.5.3
588
612
Artifacts:
589
613
Name: !Sub ${CustomControlTowerPipelineArtifactS3Bucket}-Built
590
614
Type: CODEPIPELINE
@@ -687,7 +711,7 @@ Resources:
687
711
- {KMSKeyName: !FindInMap [KMS, Alias, Name]}
688
712
Source:
689
713
Type: CODEPIPELINE
690
- BuildSpec: "version: 0.2\nphases:\n install:\n runtime-versions:\n python: 3.8\n ruby: 2.6\n commands:\n - export current=$(pwd)\n - if [ -f manifest.yaml ];then export current=$(pwd);else if [ -f custom-control-tower-configuration/manifest.yaml ]; then export current=$(pwd)/custom-control-tower-configuration; else echo 'manifest.yaml does not exist at the root level of custom-control-tower-configuration.zip or inside custom-control-tower-configuration folder, please check the ZIP file'; exit 1; fi; fi;\n - apt-get -q update 1> /dev/null\n - apt-get -q install zip wget python3-pip libyaml-dev -y 1> /dev/null \n pre_build:\n commands:\n - cd $current\n - echo 'Download CustomControlTower Scripts'\n - aws s3 cp --quiet s3://control-tower-cfct-assets-prod/customizations-for-aws-control-tower/v2.5.2/custom-control-tower-scripts.zip $current\n - unzip -q -o $current/custom-control-tower-scripts.zip -d $current\n - cp codebuild_scripts/* .\n - bash install_stage_dependencies.sh $STAGE_NAME\n build:\n commands:\n - echo 'Starting build $(date) in $(pwd)'\n - echo 'bash execute_stage_scripts.sh $STAGE_NAME $LOG_LEVEL $WAIT_TIME $SM_ARN $ARTIFACT_BUCKET $KMS_KEY_ALIAS_NAME $BOOL_VALUES $NONE_TYPE_VALUES'\n - bash execute_stage_scripts.sh $STAGE_NAME $LOG_LEVEL $WAIT_TIME $SM_ARN $ARTIFACT_BUCKET $KMS_KEY_ALIAS_NAME $BOOL_VALUES $NONE_TYPE_VALUES\n - echo 'Running build scripts completed $(date)'\n post_build:\n commands:\n - echo 'Starting post build $(date) in $(pwd)'\n - echo 'build completed on $(date)'\n\nartifacts:\n files:\n - '**/*'\n"
714
+ BuildSpec: "version: 0.2\nphases:\n install:\n runtime-versions:\n python: 3.8\n ruby: 2.6\n commands:\n - export current=$(pwd)\n - if [ -f manifest.yaml ];then export current=$(pwd);else if [ -f custom-control-tower-configuration/manifest.yaml ]; then export current=$(pwd)/custom-control-tower-configuration; else echo 'manifest.yaml does not exist at the root level of custom-control-tower-configuration.zip or inside custom-control-tower-configuration folder, please check the ZIP file'; exit 1; fi; fi;\n - apt-get -q update 1> /dev/null\n - apt-get -q install zip wget python3-pip libyaml-dev -y 1> /dev/null \n pre_build:\n commands:\n - cd $current\n - echo 'Download CustomControlTower Scripts'\n - aws s3 cp --quiet s3://control-tower-cfct-assets-prod/customizations-for-aws-control-tower/v2.5.3/custom-control-tower-scripts.zip $current\n - unzip -q -o $current/custom-control-tower-scripts.zip -d $current\n - cp codebuild_scripts/* .\n - bash install_stage_dependencies.sh $STAGE_NAME\n build:\n commands:\n - echo 'Starting build $(date) in $(pwd)'\n - echo 'bash execute_stage_scripts.sh $STAGE_NAME $LOG_LEVEL $WAIT_TIME $SM_ARN $ARTIFACT_BUCKET $KMS_KEY_ALIAS_NAME $BOOL_VALUES $NONE_TYPE_VALUES'\n - bash execute_stage_scripts.sh $STAGE_NAME $LOG_LEVEL $WAIT_TIME $SM_ARN $ARTIFACT_BUCKET $KMS_KEY_ALIAS_NAME $BOOL_VALUES $NONE_TYPE_VALUES\n - echo 'Running build scripts completed $(date)'\n post_build:\n commands:\n - echo 'Starting post build $(date) in $(pwd)'\n - echo 'build completed on $(date)'\n\nartifacts:\n files:\n - '**/*'\n"
691
715
Environment:
692
716
ComputeType: BUILD_GENERAL1_SMALL
693
717
Image: "aws/codebuild/standard:5.0"
@@ -708,7 +732,7 @@ Resources:
708
732
- Name: SOLUTION_ID
709
733
Value: !FindInMap [ Solution, Metrics, SolutionID ]
710
734
- Name: SOLUTION_VERSION
711
- Value: v2.5.2
735
+ Value: v2.5.3
712
736
Artifacts:
713
737
Name: !Sub ${CustomControlTowerPipelineArtifactS3Bucket}-Built
714
738
Type: CODEPIPELINE
@@ -863,7 +887,7 @@ Resources:
863
887
- {KMSKeyName: !FindInMap [KMS, Alias, Name]}
864
888
Source:
865
889
Type: CODEPIPELINE
866
- BuildSpec: "version: 0.2\nphases:\n install:\n runtime-versions:\n python: 3.8\n ruby: 2.6\n commands:\n - export current=$(pwd)\n - if [ -f manifest.yaml ];then export current=$(pwd);else if [ -f custom-control-tower-configuration/manifest.yaml ]; then export current=$(pwd)/custom-control-tower-configuration; else echo 'manifest.yaml does not exist at the root level of custom-control-tower-configuration.zip or inside custom-control-tower-configuration folder, please check the ZIP file'; exit 1; fi; fi;\n - apt-get -q update 1> /dev/null\n - apt-get -q install zip wget python3-pip libyaml-dev -y 1> /dev/null\n pre_build:\n commands:\n - cd $current\n - echo 'Download CustomControlTower Scripts'\n - aws s3 cp --quiet s3://control-tower-cfct-assets-prod/customizations-for-aws-control-tower/v2.5.2/custom-control-tower-scripts.zip $current\n - unzip -q -o $current/custom-control-tower-scripts.zip -d $current\n - cp codebuild_scripts/* .\n - bash install_stage_dependencies.sh $STAGE_NAME\n build:\n commands:\n - echo 'Starting build $(date) in $(pwd)'\n - echo 'bash execute_stage_scripts.sh $STAGE_NAME $LOG_LEVEL $WAIT_TIME $SM_ARN $ARTIFACT_BUCKET $KMS_KEY_ALIAS_NAME $BOOL_VALUES $NONE_TYPE_VALUES'\n - bash execute_stage_scripts.sh $STAGE_NAME $LOG_LEVEL $WAIT_TIME $SM_ARN $ARTIFACT_BUCKET $KMS_KEY_ALIAS_NAME $BOOL_VALUES $NONE_TYPE_VALUES\n - echo 'Running build scripts completed $(date)'\n post_build:\n commands:\n - echo 'Starting post build $(date) in $(pwd)'\n - echo 'build completed on $(date)'\n\nartifacts:\n files:\n - '**/*'\n"
890
+ BuildSpec: "version: 0.2\nphases:\n install:\n runtime-versions:\n python: 3.8\n ruby: 2.6\n commands:\n - export current=$(pwd)\n - if [ -f manifest.yaml ];then export current=$(pwd);else if [ -f custom-control-tower-configuration/manifest.yaml ]; then export current=$(pwd)/custom-control-tower-configuration; else echo 'manifest.yaml does not exist at the root level of custom-control-tower-configuration.zip or inside custom-control-tower-configuration folder, please check the ZIP file'; exit 1; fi; fi;\n - apt-get -q update 1> /dev/null\n - apt-get -q install zip wget python3-pip libyaml-dev -y 1> /dev/null\n pre_build:\n commands:\n - cd $current\n - echo 'Download CustomControlTower Scripts'\n - aws s3 cp --quiet s3://control-tower-cfct-assets-prod/customizations-for-aws-control-tower/v2.5.3/custom-control-tower-scripts.zip $current\n - unzip -q -o $current/custom-control-tower-scripts.zip -d $current\n - cp codebuild_scripts/* .\n - bash install_stage_dependencies.sh $STAGE_NAME\n build:\n commands:\n - echo 'Starting build $(date) in $(pwd)'\n - echo 'bash execute_stage_scripts.sh $STAGE_NAME $LOG_LEVEL $WAIT_TIME $SM_ARN $ARTIFACT_BUCKET $KMS_KEY_ALIAS_NAME $BOOL_VALUES $NONE_TYPE_VALUES'\n - bash execute_stage_scripts.sh $STAGE_NAME $LOG_LEVEL $WAIT_TIME $SM_ARN $ARTIFACT_BUCKET $KMS_KEY_ALIAS_NAME $BOOL_VALUES $NONE_TYPE_VALUES\n - echo 'Running build scripts completed $(date)'\n post_build:\n commands:\n - echo 'Starting post build $(date) in $(pwd)'\n - echo 'build completed on $(date)'\n\nartifacts:\n files:\n - '**/*'\n"
867
891
Environment:
868
892
ComputeType: BUILD_GENERAL1_SMALL
869
893
Image: "aws/codebuild/standard:5.0"
@@ -888,7 +912,7 @@ Resources:
888
912
- Name: SOLUTION_ID
889
913
Value: !FindInMap [Solution, Metrics, SolutionID]
890
914
- Name: SOLUTION_VERSION
891
- Value: v2.5.2
915
+ Value: v2.5.3
892
916
- Name: METRICS_URL
893
917
Value: !FindInMap [Solution, Metrics, MetricsURL]
894
918
- Name: CONTROL_TOWER_BASELINE_CONFIG_STACKSET
@@ -1021,10 +1045,10 @@ Resources:
1021
1045
Variables:
1022
1046
LOG_LEVEL: !FindInMap [LambdaFunction, Logging, Level]
1023
1047
SOLUTION_ID: !FindInMap [Solution, Metrics, SolutionID]
1024
- SOLUTION_VERSION: v2.5.2
1048
+ SOLUTION_VERSION: v2.5.3
1025
1049
Code:
1026
1050
S3Bucket: !Sub "control-tower-cfct-assets-prod-${AWS::Region}"
1027
- S3Key: customizations-for-aws-control-tower/v2.5.2 /custom-control-tower-config-deployer.zip
1051
+ S3Key: customizations-for-aws-control-tower/v2.5.3 /custom-control-tower-config-deployer.zip
1028
1052
FunctionName: CustomControlTowerDeploymentLambda
1029
1053
Description: Custom Control Tower Deployment Lambda
1030
1054
Handler: config_deployer.lambda_handler
@@ -1309,14 +1333,14 @@ Resources:
1309
1333
ADMINISTRATION_ROLE_ARN: !Sub arn:${AWS::Partition}:iam::${AWS::AccountId}:role/service-role/AWSControlTowerStackSetRole
1310
1334
EXECUTION_ROLE_NAME: !FindInMap [AWSControlTower, ExecutionRole, Name]
1311
1335
SOLUTION_ID: !FindInMap [Solution, Metrics, SolutionID]
1312
- SOLUTION_VERSION: v2.5.2
1336
+ SOLUTION_VERSION: v2.5.3
1313
1337
METRICS_URL: !FindInMap [Solution, Metrics, MetricsURL]
1314
1338
MAX_CONCURRENT_PERCENT: !Ref MaxConcurrentPercentage
1315
1339
FAILED_TOLERANCE_PERCENT: !Ref FailureTolerancePercentage
1316
1340
REGION_CONCURRENCY_TYPE: !Ref RegionConcurrencyType
1317
1341
Code:
1318
1342
S3Bucket: !Sub "control-tower-cfct-assets-prod-${AWS::Region}"
1319
- S3Key: customizations-for-aws-control-tower/v2.5.2 /custom-control-tower-state-machine.zip
1343
+ S3Key: customizations-for-aws-control-tower/v2.5.3 /custom-control-tower-state-machine.zip
1320
1344
FunctionName: CustomControlTowerStateMachineLambda
1321
1345
Description: Custom Control Tower State Machine Handler
1322
1346
Handler: state_machine_router.lambda_handler
@@ -2934,10 +2958,10 @@ Resources:
2934
2958
LOG_LEVEL: !FindInMap [LambdaFunction, Logging, Level]
2935
2959
CODE_PIPELINE_NAME: !Ref CustomControlTowerCodePipeline
2936
2960
SOLUTION_ID: !FindInMap [ Solution, Metrics, SolutionID ]
2937
- SOLUTION_VERSION: v2.5.2
2961
+ SOLUTION_VERSION: v2.5.3
2938
2962
Code:
2939
2963
S3Bucket: !Sub "control-tower-cfct-assets-prod-${AWS::Region}"
2940
- S3Key: customizations-for-aws-control-tower/v2.5.2 /custom-control-tower-lifecycle-event-handler.zip
2964
+ S3Key: customizations-for-aws-control-tower/v2.5.3 /custom-control-tower-lifecycle-event-handler.zip
2941
2965
Description: Custom Control Tower Lifecyle event Lambda to handle lifecycle events
2942
2966
Handler: lifecycle_event_handler.lambda_handler
2943
2967
MemorySize: 512
@@ -3108,6 +3132,6 @@ Outputs:
3108
3132
Value: !Ref CustomControlTowerPipelineS3Bucket
3109
3133
CustomControlTowerSolutionVersion:
3110
3134
Description: Version Number
3111
- Value: "v2.5.2 "
3135
+ Value: "v2.5.3 "
3112
3136
Export:
3113
3137
Name: Custom-Control-Tower-Version
0 commit comments