Skip to content

Commit c16c8c1

Browse files
Merge pull request #243 from SumoLogic/sumo-257879
Recovered GIS app from RCE
2 parents b13b2bf + eddc5a5 commit c16c8c1

27 files changed

+241
-9
lines changed
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
AWSTemplateFormatVersion: '2010-09-09'
2+
Transform: 'AWS::Serverless-2016-10-31'
3+
Description: "Version - v2.12.0: Template to setup the Sumo Logic AWS Inventory Source and Root Cause Explorer app."
4+
5+
Metadata:
6+
'AWS::CloudFormation::Interface':
7+
ParameterGroups:
8+
- Label:
9+
default: "Sumo Logic Access Configuration (Required)"
10+
Parameters:
11+
- Section1aSumoDeployment
12+
- Section1bSumoAccessID
13+
- Section1cSumoAccessKey
14+
- Section1dSumoOrganizationId
15+
- Section1eRemoveSumoResourcesOnDeleteStack
16+
17+
- Label:
18+
default: "App Details - Sumo Logic Collector Configuration"
19+
Parameters:
20+
- Section2aInstallApp
21+
22+
- Label:
23+
default: "Local Parameters. Do Not Edit the values."
24+
Parameters:
25+
- Section3aParentStackLambdaARN
26+
- Section3bNestedTemplateVersion
27+
28+
- Label:
29+
default: "App Installation and sharing"
30+
Parameters:
31+
- Section4aAppInstallLocation
32+
- Section4bShare
33+
34+
ParameterLabels:
35+
Section1aSumoDeployment:
36+
default: "Sumo Logic Deployment Name"
37+
Section1bSumoAccessID:
38+
default: "Sumo Logic Access ID"
39+
Section1cSumoAccessKey:
40+
default: "Sumo Logic Access Key"
41+
Section1dSumoOrganizationId:
42+
default: "Sumo Logic Organization Id"
43+
Section1eRemoveSumoResourcesOnDeleteStack:
44+
default: "Delete Sumo Logic Resources when stack is deleted"
45+
46+
Section2aInstallApp:
47+
default: "Create AWS Root Cause Explorer App"
48+
49+
Section3aParentStackLambdaARN:
50+
default: "If Any, Lambda ARN from parent Stack"
51+
Section3bNestedTemplateVersion:
52+
default: "Nested Templates Version"
53+
54+
Section4aAppInstallLocation:
55+
default: "App Installation location"
56+
Section4bShare:
57+
default: "Share"
58+
59+
Parameters:
60+
Section1aSumoDeployment:
61+
Type: String
62+
Default: ""
63+
Description: "Enter au, ca, de, eu, fed, jp, kr, us1 or us2"
64+
Section1bSumoAccessID:
65+
Type: String
66+
Description: "Sumo Logic Access ID. Used for Sumo Logic API calls."
67+
AllowedPattern: ".+"
68+
ConstraintDescription: "Sumo Logic Access ID can not be empty."
69+
Section1cSumoAccessKey:
70+
Type: String
71+
Description: "Sumo Logic Access Key. Used for Sumo Logic API calls."
72+
AllowedPattern: ".+"
73+
ConstraintDescription: "Sumo Logic Access Key can not be empty."
74+
NoEcho: true
75+
Section1dSumoOrganizationId:
76+
Description: "Appears on the Account Overview page that displays information about your Sumo Logic organization. Used for IAM Role in Sumo Logic AWS Sources."
77+
Type: String
78+
AllowedPattern: ".+"
79+
ConstraintDescription: "Sumo Logic Organization Id can not be empty."
80+
Section1eRemoveSumoResourcesOnDeleteStack:
81+
AllowedValues:
82+
- true
83+
- false
84+
Default: true
85+
Description: "To delete collectors, sources and apps when the stack is deleted, set this parameter to True. Default is True.
86+
Deletes the resources created by the stack. Deletion of updated resources will be skipped."
87+
Type: String
88+
Section2aInstallApp:
89+
Type: String
90+
Description: "Yes - Installs the Root Cause Explorer App for the Sumo Logic AWS Observability Solution.
91+
No - Skips the installation of this app."
92+
Default: 'Yes'
93+
AllowedValues:
94+
- 'Yes'
95+
- 'No'
96+
Section3aParentStackLambdaARN:
97+
Type: String
98+
Default: "ParentStackLambdaARN"
99+
Description: Parent Stack Lambda ARN. Do Not Edit the value.
100+
Section3bNestedTemplateVersion:
101+
Type: String
102+
Description: "Provide the version for the nested templates. Default is the latest version."
103+
AllowedPattern: ".+"
104+
Section4aAppInstallLocation:
105+
Type: String
106+
Description: "Personal Folder - Installs App in user's Personal folder.
107+
Admin Recommended Folder - Installs App in admin Recommended Folder"
108+
Default: 'Personal Folder'
109+
AllowedValues:
110+
- 'Personal Folder'
111+
- 'Admin Recommended Folder'
112+
Section4bShare:
113+
Type: String
114+
Description: "True - Installed App will be visible to all members of the organisation.
115+
False - Installed App will be visible to you only."
116+
Default: 'True'
117+
AllowedValues:
118+
- 'True'
119+
- 'False'
120+
121+
Conditions:
122+
install_app: !Equals [!Ref Section2aInstallApp, 'Yes']
123+
124+
Resources:
125+
CloudTrailDevOps:
126+
Type: Custom::App
127+
Condition: install_app
128+
Properties:
129+
ServiceToken: !Ref Section3aParentStackLambdaARN
130+
Region: !Ref "AWS::Region"
131+
AppName: "Global Intelligence for CloudTrail DevOps"
132+
AppId: "c7e195de-f169-460a-8e8b-7bb23af0ee5e"
133+
AppSources:
134+
CloudTrailLogSrc: "account=* eventSource"
135+
FolderName: !Sub "AWS Observability ${Section3bNestedTemplateVersion} "
136+
RetainOldAppOnUpdate: true
137+
RemoveOnDeleteStack: !Ref Section1eRemoveSumoResourcesOnDeleteStack
138+
SumoAccessID: !Ref Section1bSumoAccessID
139+
SumoAccessKey: !Ref Section1cSumoAccessKey
140+
SumoDeployment: !Ref Section1aSumoDeployment
141+
location: !Ref Section4aAppInstallLocation
142+
share: !Ref Section4bShare
143+
orgid: !Ref Section1dSumoOrganizationId
144+

aws-observability/templates/sumologic_observability.master.template.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1008,3 +1008,23 @@ Resources:
10081008
Section5aAppInstallLocation: !Ref Section10aAppInstallLocation
10091009
Section5bShare: !Ref Section10bShare
10101010
Section1eOrgId: !Ref Section1dSumoLogicOrganizationId
1011+
1012+
sumoGISAppStack:
1013+
Type: AWS::CloudFormation::Stack
1014+
DependsOn: sumoAlbMetricsAppStack
1015+
Properties:
1016+
TemplateURL: !Sub
1017+
- "https://${BucketName}.s3.amazonaws.com/aws-observability-versions/${Version}/gis/gis.template.yaml"
1018+
- BucketName: !FindInMap [CommonData, NestedTemplate, BucketName]
1019+
Version: !FindInMap [CommonData, NestedTemplate, Version]
1020+
Parameters:
1021+
Section1aSumoDeployment: !Ref Section1aSumoLogicDeployment
1022+
Section1bSumoAccessID: !Ref Section1bSumoLogicAccessID
1023+
Section1cSumoAccessKey: !Ref Section1cSumoLogicAccessKey
1024+
Section1dSumoOrganizationId: !Ref Section1dSumoLogicOrganizationId
1025+
Section1eRemoveSumoResourcesOnDeleteStack: !Ref Section1eSumoLogicResourceRemoveOnDeleteStack
1026+
Section2aInstallApp: !If [install_overview_dashboards, !GetAtt CreateCommonResources.Outputs.EnterpriseCheck, "No"]
1027+
Section3aParentStackLambdaARN: !GetAtt CreateCommonResources.Outputs.LambdaHelperARN
1028+
Section3bNestedTemplateVersion: !FindInMap [CommonData, NestedTemplate, Version]
1029+
Section4aAppInstallLocation: !Ref Section10aAppInstallLocation
1030+
Section4bShare: !Ref Section10bShare

aws-observability/templates/sumologic_observability.mp.test.yaml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1019,4 +1019,24 @@ Resources:
10191019
Section4bTemplatesBucketName: !FindInMap [CommonData, NestedTemplate, BucketName]
10201020
Section4cNestedTemplateVersion: !FindInMap [CommonData, NestedTemplate, Version]
10211021
Section5aAppInstallLocation: !Ref Section10aAppInstallLocation
1022-
Section5bShare: !Ref Section10bShare
1022+
Section5bShare: !Ref Section10bShare
1023+
1024+
sumoGISAppStack:
1025+
Type: AWS::CloudFormation::Stack
1026+
DependsOn: sumoAlbMetricsAppStack
1027+
Properties:
1028+
TemplateURL: !Sub
1029+
- "https://${BucketName}.s3.amazonaws.com/aws-observability-versions/${Version}/gis/gis.template.yaml"
1030+
- BucketName: !FindInMap [CommonData, NestedTemplate, BucketName]
1031+
Version: !FindInMap [CommonData, NestedTemplate, Version]
1032+
Parameters:
1033+
Section1aSumoDeployment: !Ref Section1aSumoLogicDeployment
1034+
Section1bSumoAccessID: !Ref Section1bSumoLogicAccessID
1035+
Section1cSumoAccessKey: !Ref Section1cSumoLogicAccessKey
1036+
Section1dSumoOrganizationId: !Ref Section1dSumoLogicOrganizationId
1037+
Section1eRemoveSumoResourcesOnDeleteStack: !Ref Section1eSumoLogicResourceRemoveOnDeleteStack
1038+
Section2aInstallApp: !If [install_overview_dashboards, !GetAtt CreateCommonResources.Outputs.EnterpriseCheck, "No"]
1039+
Section3aParentStackLambdaARN: !GetAtt CreateCommonResources.Outputs.LambdaHelperARN
1040+
Section3bNestedTemplateVersion: !FindInMap [CommonData, NestedTemplate, Version]
1041+
Section4aAppInstallLocation: !Ref Section10aAppInstallLocation
1042+
Section4bShare: !Ref Section10bShare

aws-observability/templates/sumologic_observability.mp.yaml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1017,4 +1017,24 @@ Resources:
10171017
Section4bTemplatesBucketName: !FindInMap [CommonData, NestedTemplate, BucketName]
10181018
Section4cNestedTemplateVersion: !FindInMap [CommonData, NestedTemplate, Version]
10191019
Section5aAppInstallLocation: !Ref Section10aAppInstallLocation
1020-
Section5bShare: !Ref Section10bShare
1020+
Section5bShare: !Ref Section10bShare
1021+
1022+
sumoGISAppStack:
1023+
Type: AWS::CloudFormation::Stack
1024+
DependsOn: sumoAlbMetricsAppStack
1025+
Properties:
1026+
TemplateURL: !Sub
1027+
- "https://${BucketName}.s3.amazonaws.com/aws-observability-versions/${Version}/gis/gis.template.yaml"
1028+
- BucketName: !FindInMap [CommonData, NestedTemplate, BucketName]
1029+
Version: !FindInMap [CommonData, NestedTemplate, Version]
1030+
Parameters:
1031+
Section1aSumoDeployment: !Ref Section1aSumoLogicDeployment
1032+
Section1bSumoAccessID: !Ref Section1bSumoLogicAccessID
1033+
Section1cSumoAccessKey: !Ref Section1cSumoLogicAccessKey
1034+
Section1dSumoOrganizationId: !Ref Section1dSumoLogicOrganizationId
1035+
Section1eRemoveSumoResourcesOnDeleteStack: !Ref Section1eSumoLogicResourceRemoveOnDeleteStack
1036+
Section2aInstallApp: !If [install_overview_dashboards, !GetAtt CreateCommonResources.Outputs.EnterpriseCheck, "No"]
1037+
Section3aParentStackLambdaARN: !GetAtt CreateCommonResources.Outputs.LambdaHelperARN
1038+
Section3bNestedTemplateVersion: !FindInMap [CommonData, NestedTemplate, Version]
1039+
Section4aAppInstallLocation: !Ref Section10aAppInstallLocation
1040+
Section4bShare: !Ref Section10bShare

aws-observability/templates/test/testcases/infra/create_source_existing_bucket_existing_sources.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ TestCase:
5858
- CreateCommonResources
5959
- sumoEC2MetricsAppStack
6060
- sumoAlbMetricsAppStack
61+
- sumoGISAppStack
6162
- sumoElbMetricsAppStack
6263
- sumoDynamoDBMetricsAppStack
6364
- sumoRdsMetricsAppStack

aws-observability/templates/test/testcases/infra/default_param_no_alias_and_csv.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ TestCase:
4141
- sumoLambdaMetricsAppStack
4242
- sumoECSMetricsAppStack
4343
- sumoElasticCacheMetricsAppStack
44+
- sumoGISAppStack
4445
- CreateCommonResources.AddAccountField
4546
- CreateCommonResources.AddRegionField
4647
- CreateCommonResources.AddNamespaceField
@@ -176,6 +177,7 @@ TestCase:
176177
- sumoAlbMetricsAppStack.AlbCloudTrailLogsFieldExtractionRule
177178
- sumoElbMetricsAppStack.ClbCloudTrailLogsFieldExtractionRule
178179
- sumoNlbMetricsAppStack.NlbCloudTrailLogsFieldExtractionRule
180+
- sumoGISAppStack.CloudTrailDevOps
179181
- AssertType: OutputsCheck
180182
Assert:
181183
Outputs:

aws-observability/templates/test/testcases/infra/default_param_no_cloudtrail_invalid_mapping_csv.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ TestCase:
4141
- sumoLambdaMetricsAppStack
4242
- sumoECSMetricsAppStack
4343
- sumoElasticCacheMetricsAppStack
44+
- sumoGISAppStack
4445
- CreateCommonResources.AddAccountField
4546
- CreateCommonResources.AddRegionField
4647
- CreateCommonResources.AddNamespaceField
@@ -176,6 +177,7 @@ TestCase:
176177
- sumoAlbMetricsAppStack.AlbCloudTrailLogsFieldExtractionRule
177178
- sumoElbMetricsAppStack.ClbCloudTrailLogsFieldExtractionRule
178179
- sumoNlbMetricsAppStack.NlbCloudTrailLogsFieldExtractionRule
180+
- sumoGISAppStack.CloudTrailDevOps
179181
- AssertType: OutputsCheck
180182
Assert:
181183
Outputs:

aws-observability/templates/test/testcases/infra/default_param_no_cloudtrail_valid_mapping_csv.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ TestCase:
4141
- sumoLambdaMetricsAppStack
4242
- sumoECSMetricsAppStack
4343
- sumoElasticCacheMetricsAppStack
44+
- sumoGISAppStack
4445
- CreateCommonResources.AddAccountField
4546
- CreateCommonResources.AddRegionField
4647
- CreateCommonResources.AddNamespaceField
@@ -176,6 +177,7 @@ TestCase:
176177
- sumoAlbMetricsAppStack.AlbCloudTrailLogsFieldExtractionRule
177178
- sumoElbMetricsAppStack.ClbCloudTrailLogsFieldExtractionRule
178179
- sumoNlbMetricsAppStack.NlbCloudTrailLogsFieldExtractionRule
180+
- sumoGISAppStack.CloudTrailDevOps
179181
- AssertType: OutputsCheck
180182
Assert:
181183
Outputs:

aws-observability/templates/test/testcases/infra/existing_cloudtrail_alb_source.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ TestCase:
114114
- sumoLambdaMetricsAppStack
115115
- sumoECSMetricsAppStack
116116
- sumoElasticCacheMetricsAppStack
117+
- sumoGISAppStack
117118
- CreateCommonResources.AddAccountField
118119
- CreateCommonResources.AddRegionField
119120
- CreateCommonResources.AddNamespaceField
@@ -206,6 +207,7 @@ TestCase:
206207
- CreateCommonResources.LambdaRoleAlias
207208
- sumoAlbMetricsAppStack.AlbCloudTrailLogsFieldExtractionRule
208209
- sumoNlbMetricsAppStack.NlbCloudTrailLogsFieldExtractionRule
210+
- sumoGISAppStack.CloudTrailDevOps
209211
- AssertType: OutputsCheck
210212
Assert:
211213
Outputs:

aws-observability/templates/test/testcases/infra/existing_cloudtrail_bucket.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ TestCase:
5656
- sumoLambdaMetricsAppStack
5757
- sumoECSMetricsAppStack
5858
- sumoElasticCacheMetricsAppStack
59+
- sumoGISAppStack
5960
- CreateCommonResources.AddAccountField
6061
- CreateCommonResources.AddRegionField
6162
- CreateCommonResources.AddNamespaceField

0 commit comments

Comments
 (0)