@@ -45,6 +45,7 @@ Metadata:
45
45
Parameters :
46
46
- pDeployAccountAlternateContactsSolution
47
47
- pDeployCloudTrailSolution
48
+ - pDeployConfigSolution
48
49
- pDeployConfigManagementSolution
49
50
- pDeployConfigConformancePackSolution
50
51
- pDeployEC2DefaultEBSEncryptionSolution
@@ -88,6 +89,26 @@ Metadata:
88
89
- pCloudTrailLogGroupRetention
89
90
- pCreateCloudTrailLogGroup
90
91
- pOrganizationCloudTrailKeyAlias
92
+ - Label :
93
+ default : AWS Config Solution (This solution is incompatible with the AWS Control Tower environment)
94
+ Parameters :
95
+ - pCommonPrerequisitesRegionsOnly
96
+ - pConfigEnabledRegions
97
+ - pRecorderName
98
+ - pAllSupported
99
+ - pIncludeGlobalResourceTypes
100
+ - pResourceTypes
101
+ - pDeliveryChannelName
102
+ - pConfigOrgDeliveryBucketPrefix
103
+ - pConfigOrgDeliveryKeyAlias
104
+ - pFrequency
105
+ - pConfigTopicName
106
+ - pSubscribeToConfigurationTopic
107
+ - pConfigurationEmail
108
+ - pConfigOrgSnsKeyAlias
109
+ - pAggregatorName
110
+ - pAggregatorRoleName
111
+ - pRegisterDelegatedAdminAccount
91
112
- Label :
92
113
default : AWS Config Management Solution
93
114
Parameters :
@@ -298,6 +319,8 @@ Metadata:
298
319
default : Deploy the CloudTrail Solution
299
320
pDeployConfigConformancePackSolution :
300
321
default : Deploy the AWS Config Conformance Pack Solution
322
+ pDeployConfigSolution :
323
+ default : Deploy the AWS Config Solution (This solution is incompatible with the AWS Control Tower environment)
301
324
pDeployConfigManagementSolution :
302
325
default : Deploy the AWS Config Management Solution
303
326
pDeployEC2DefaultEBSEncryptionSolution :
@@ -437,6 +460,33 @@ Metadata:
437
460
pVpcId :
438
461
default : (Optional) Existing VPC ID
439
462
463
+ pCommonPrerequisitesRegionsOnly :
464
+ default : Common Prerequisites Regions Only
465
+ pConfigEnabledRegions :
466
+ default : (Optional) Enabled Regions
467
+ pRecorderName :
468
+ default : Recorder Name
469
+ pDeliveryChannelName :
470
+ default : Delivery Channel Name
471
+ pConfigOrgDeliveryBucketPrefix :
472
+ default : Config Delivery Bucket Prefix
473
+ pConfigOrgDeliveryKeyAlias :
474
+ default : Config Delivery KMS Key Alias
475
+ pConfigTopicName :
476
+ default : Config SNS Topic Name
477
+ pSubscribeToConfigurationTopic :
478
+ default : Subscribe to Configuration Topic
479
+ pConfigurationEmail :
480
+ default : Configuration Email
481
+ pConfigOrgSnsKeyAlias :
482
+ default : Config SNS KMS Key Alias
483
+ pAggregatorName :
484
+ default : Config Aggregator Name
485
+ pAggregatorRoleName :
486
+ default : Config Aggregator Role Name
487
+ pRegisterDelegatedAdminAccount :
488
+ default : Register Delegated Admin Account
489
+
440
490
Parameters :
441
491
pRepoURL :
442
492
Default : https://github.com/aws-samples/aws-security-reference-architecture-examples.git
@@ -735,6 +785,11 @@ Parameters:
735
785
Default : ' No'
736
786
Description : Deploy the AWS Config Conformance Pack solution
737
787
Type : String
788
+ pDeployConfigSolution :
789
+ AllowedValues : ['Yes', 'No']
790
+ Default : ' No'
791
+ Description : Deploy the AWS Config solution (This solution is incompatible with the AWS Control Tower environment)
792
+ Type : String
738
793
pDeployConfigManagementSolution :
739
794
AllowedValues : ['Yes', 'No', 'Already Deployed']
740
795
Default : ' No'
@@ -1072,7 +1127,7 @@ Parameters:
1072
1127
Description : You can require that IAM user passwords contain at least one uppercase character from the ISO basic Latin alphabet (A to Z).
1073
1128
Type : String
1074
1129
pResourceTypes :
1075
- AllowedPattern : ' ^$|^([a- zA-Z]+::[a- zA-Z]+::[a- zA-Z]+)$|^(([a- zA-Z]+::[a- zA-Z]+::[a- zA-Z]+(,|, ))*[a- zA-Z]+::[a- zA-Z]+::[a -zA-Z]+)$'
1130
+ AllowedPattern : ' ^$|^([0-9a- zA-Z]+::[0-9a- zA-Z]+::[0-9a- zA-Z]+)$|^(([0-9a- zA-Z]+::[0-9a- zA-Z]+::[0-9a- zA-Z]+(,|, ))*[0-9a- zA-Z]+::[0-9a- zA-Z]+::[0-9a -zA-Z]+)$'
1076
1131
Default : ' '
1077
1132
Description :
1078
1133
(Optional) A list of valid AWS resource types to include in this recording group. Eg. AWS::CloudTrail::Trail. If 'All Supported' parameter is
@@ -1136,6 +1191,82 @@ Parameters:
1136
1191
Description : (Optional) Existing VPC ID for the Firewall Manager Security Groups. Required if Create VPC For Security Group is "false".
1137
1192
Type : String
1138
1193
1194
+ pCommonPrerequisitesRegionsOnly :
1195
+ AllowedValues : ['true', 'false']
1196
+ Default : ' true'
1197
+ Description : Only enable in the customer regions specified in Common Prerequisites solution
1198
+ Type : String
1199
+ pRecorderName :
1200
+ AllowedPattern : ' ^([\w.-]{1,900})$|^(\/[\w.-]{1,900})*[\w.-]{1,900}$'
1201
+ ConstraintDescription :
1202
+ Must be alphanumeric or special characters [., _, -]. In addition, the slash character ( / ) used to delineate hierarchies in parameter names.
1203
+ Default : sra-ConfigRecorder
1204
+ Description : Config recorder name
1205
+ Type : String
1206
+ pDeliveryChannelName :
1207
+ AllowedPattern : ' ^([\w.-]{1,900})$|^(\/[\w.-]{1,900})*[\w.-]{1,900}$'
1208
+ ConstraintDescription :
1209
+ Must be alphanumeric or special characters [., _, -]. In addition, the slash character ( / ) used to delineate hierarchies in parameter names.
1210
+ Default : sra-config-s3-delivery
1211
+ Description : Config delivery channel name
1212
+ Type : String
1213
+ pConfigOrgDeliveryBucketPrefix :
1214
+ AllowedPattern : ' ^$|^[0-9a-zA-Z]+([0-9a-zA-Z-]*[0-9a-zA-Z])*$'
1215
+ ConstraintDescription :
1216
+ S3 bucket name can include numbers, lowercase letters, uppercase letters, and hyphens (-). It cannot start or end with a hyphen (-).
1217
+ Default : sra-config-org-delivery
1218
+ Description :
1219
+ Config Delivery S3 bucket prefix. The account and region will get added to the end. e.g. sra-config-delivery-123456789012-us-east-1
1220
+ Type : String
1221
+ pConfigOrgDeliveryKeyAlias :
1222
+ Default : sra-config-org-delivery-key
1223
+ Description : Config Delivery KMS Key Alias
1224
+ Type : String
1225
+ pConfigTopicName :
1226
+ AllowedPattern : ' ^[\w+=,.@-]{1,64}$'
1227
+ Default : sra-ConfigNotifications
1228
+ Description : Configuration Notification SNS Topic in Audit Account that AWS Config delivers notifications to.
1229
+ Type : String
1230
+ pSubscribeToConfigurationTopic :
1231
+ AllowedValues : [true, false]
1232
+ Default : false
1233
+ Description : Indicates whether ConfigurationEmail will be subscribed to the Configuration Notification SNS Topic.
1234
+ Type : String
1235
+ pConfigurationEmail :
1236
+ AllowedPattern : ' ^$|^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)$'
1237
+ ConstraintDescription : Email Validation as per RFC2822 standards.
1238
+ Description : Email for receiving all AWS configuration events
1239
+ Default : ' '
1240
+ Type : ' String'
1241
+ pConfigOrgSnsKeyAlias :
1242
+ Default : sra-config-org-sns-key
1243
+ Description : Config SNS KMS Key Alias
1244
+ Type : String
1245
+ pAggregatorName :
1246
+ AllowedPattern : ' ^[\w\-]+'
1247
+ ConstraintDescription : Max 256 alphanumeric characters.
1248
+ Default : sra-config-aggregator-org
1249
+ MaxLength : 256
1250
+ MinLength : 1
1251
+ Type : String
1252
+ pAggregatorRoleName :
1253
+ AllowedPattern : ' ^[\w+=,.@-]{1,64}$'
1254
+ ConstraintDescription : Max 64 alphanumeric characters. Also special characters supported [+, =, ., @, -].
1255
+ Default : sra-config-aggregator-org
1256
+ Type : String
1257
+ pRegisterDelegatedAdminAccount :
1258
+ AllowedValues : ['Yes', 'No']
1259
+ Default : ' Yes'
1260
+ Description : Register a delegated administrator account using the Common Register Delegated Administrator solution.
1261
+ Type : String
1262
+ pConfigEnabledRegions :
1263
+ AllowedPattern : ' ^$|^([a-z0-9-]{1,64})$|^(([a-z0-9-]{1,64},)*[a-z0-9-]{1,64})$'
1264
+ ConstraintDescription :
1265
+ Only lowercase letters, numbers, and hyphens ('-') allowed. (e.g. us-east-1) Additional AWS regions can be provided, separated by commas. (e.g.
1266
+ us-east-1,ap-southeast-2)
1267
+ Description : (Optional) Enabled regions (AWS regions, separated by commas). Leave blank to enable all regions.
1268
+ Type : String
1269
+
1139
1270
Rules :
1140
1271
BillingContactValidation :
1141
1272
RuleCondition : !And
@@ -1156,6 +1287,7 @@ Rules:
1156
1287
- Assert : !Or
1157
1288
- !Equals [!Ref pDeployConfigManagementSolution, 'Yes']
1158
1289
- !Equals [!Ref pDeployConfigManagementSolution, 'Already Deployed']
1290
+ - !Equals [!Ref pDeployConfigSolution, 'Yes']
1159
1291
AssertDescription :
1160
1292
" 'Deploy the AWS Config Management Solution' parameter must be set to 'Yes' or 'Already Deployed', if the 'Deploy the AWS Config Conformance
1161
1293
Pack Solution' parameter is set to 'Yes'."
@@ -1165,6 +1297,7 @@ Rules:
1165
1297
- Assert : !Or
1166
1298
- !Equals [!Ref pDeployConfigManagementSolution, 'Yes']
1167
1299
- !Equals [!Ref pDeployConfigManagementSolution, 'Already Deployed']
1300
+ - !Equals [!Ref pDeployConfigSolution, 'Yes']
1168
1301
AssertDescription :
1169
1302
" 'Deploy the AWS Config Management Solution' parameter must be set to 'Yes' or 'Already Deployed', if the 'Deploy the Security Hub Solution'
1170
1303
parameter is set to 'Yes'."
@@ -1194,6 +1327,16 @@ Rules:
1194
1327
AssertDescription :
1195
1328
" 'Security Full Name', 'Security Title', 'Security Email' and 'Security Phone' parameters are required if the 'Security Alternate Contact
1196
1329
Action' parameter is set to 'add'."
1330
+ EnabledRegionValidation :
1331
+ RuleCondition : !Equals [!Ref pCommonPrerequisitesRegionsOnly, 'false']
1332
+ Assertions :
1333
+ - Assert : !Not [!Equals [!Ref pConfigEnabledRegions, '']]
1334
+ AssertDescription : " 'Enabled Regions' parameter has to have a value if 'Common Prerequisites Regions Only' parameter is set to 'false'."
1335
+ ResourceTypesValidation :
1336
+ RuleCondition : !Equals [!Ref pAllSupported, 'false']
1337
+ Assertions :
1338
+ - AssertDescription : " 'Resource Types' parameter is required if 'All Supported' parameter is set to 'false'."
1339
+ Assert : !Not [!Equals [!Ref pResourceTypes, '']]
1197
1340
1198
1341
Conditions :
1199
1342
cUsingKmsKey : !Not [!Equals [!Ref pLambdaLogGroupKmsKey, '']]
@@ -1214,12 +1357,14 @@ Conditions:
1214
1357
cCreateLambdaLogGroup : !Equals [!Ref pCreateLambdaLogGroup, 'Yes']
1215
1358
cDeployAccountAlternateContactsSolution : !Equals [!Ref pDeployAccountAlternateContactsSolution, 'Yes']
1216
1359
cDeployCloudTrailSolution : !Equals [!Ref pDeployCloudTrailSolution, 'Yes']
1360
+ cDeployConfigSolution : !Equals [!Ref pDeployConfigSolution, 'Yes']
1217
1361
cDeployConfigManagementSolution : !Equals [!Ref pDeployConfigManagementSolution, 'Yes']
1218
1362
cDeployConfigManagementSolutionAlreadyDeployed : !Equals [!Ref pDeployConfigManagementSolution, 'Already Deployed']
1219
1363
cDeployConfigConformancePackSolution : !And
1220
1364
- !Or
1221
1365
- !Condition cDeployConfigManagementSolution
1222
1366
- !Condition cDeployConfigManagementSolutionAlreadyDeployed
1367
+ - !Condition cDeployConfigSolution
1223
1368
- !Equals [!Ref pDeployConfigConformancePackSolution, 'Yes']
1224
1369
cDeployDetectiveSolution : !Equals [!Ref pDeployDetectiveSolution, 'Yes']
1225
1370
cDeployEC2DefaultEBSEncryptionSolution : !Equals [!Ref pDeployEC2DefaultEBSEncryptionSolution, 'Yes']
@@ -2083,3 +2228,34 @@ Resources:
2083
2228
pLambdaLogLevel : !Ref pLambdaLogLevel
2084
2229
pSRAAlarmEmail : !Ref pSRAAlarmEmail
2085
2230
pComplianceFrequency : !Ref pComplianceFrequency
2231
+
2232
+ rConfigSolutionStack :
2233
+ Type : AWS::CloudFormation::Stack
2234
+ DependsOn : rCommonPrerequisitesMainSsm
2235
+ Condition : cDeployConfigSolution
2236
+ DeletionPolicy : Delete
2237
+ UpdateReplacePolicy : Delete
2238
+ Properties :
2239
+ TemplateURL : !Sub https://${pSRAStagingS3BucketNamePrefix}-${AWS::AccountId}-${AWS::Region}.s3.${AWS::Region}.${AWS::URLSuffix}/sra-config-org/templates/sra-config-org-main-ssm.yaml
2240
+ Parameters :
2241
+ pControlTowerRegionsOnly : !Ref pCommonPrerequisitesRegionsOnly
2242
+ pEnabledRegions : !Ref pConfigEnabledRegions
2243
+ pRecorderName : !Ref pRecorderName
2244
+ pDeliveryChannelName : !Ref pDeliveryChannelName
2245
+ pConfigOrgDeliveryBucketPrefix : !Ref pConfigOrgDeliveryBucketPrefix
2246
+ pConfigOrgDeliveryKeyAlias : !Ref pConfigOrgDeliveryKeyAlias
2247
+ pConfigTopicName : !Ref pConfigTopicName
2248
+ pSubscribeToConfigurationTopic : !Ref pSubscribeToConfigurationTopic
2249
+ pConfigurationEmail : !Ref pConfigurationEmail
2250
+ pConfigOrgSnsKeyAlias : !Ref pConfigOrgSnsKeyAlias
2251
+ pAggregatorName : !Ref pAggregatorName
2252
+ pAggregatorRoleName : !Ref pAggregatorRoleName
2253
+ pRegisterDelegatedAdminAccount : !Ref pRegisterDelegatedAdminAccount
2254
+ pLambdaLogGroupKmsKey : !Ref pLambdaLogGroupKmsKey
2255
+ pLambdaLogLevel : !Ref pLambdaLogLevel
2256
+ pSRAAlarmEmail : !Ref pSRAAlarmEmail
2257
+ pLambdaLogGroupRetention : !Ref pLambdaLogGroupRetention
2258
+ pFrequency : !Ref pFrequency
2259
+ pAllSupported : !Ref pAllSupported
2260
+ pIncludeGlobalResourceTypes : !Ref pIncludeGlobalResourceTypes
2261
+ pResourceTypes : !Ref pResourceTypes
0 commit comments