Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -114,18 +114,18 @@ CxPolicy[result] {
resource.Type == "AWS::ApiGateway::Stage"

properties := resource.Properties
methodSettings := properties.MethodSettings
not common_lib.valid_key(methodSettings, "LoggingLevel")
methodSetting := properties.MethodSettings[j]
not common_lib.valid_key(methodSetting, "LoggingLevel")

result := {
"documentId": input.document[i].id,
"resourceType": resource.Type,
"resourceName": cf_lib.get_resource_name(resource, name),
"searchKey": sprintf("Resources.%s.Properties.MethodSettings", [name]),
"issueType": "MissingAttribute",
"keyExpectedValue": sprintf("Resources.%s.Properties.MethodSettings.LoggingLevel should be defined and not null", [name]),
"keyActualValue": sprintf("Resources.%s.Properties.MethodSettings.LoggingLevel are undefined or null", [name]),
"searchLine": common_lib.build_search_line(["Resources", name, "Properties", "MethodSettings"], []),
"keyExpectedValue": sprintf("Resources.%s.Properties.MethodSettings[%d].LoggingLevel should be defined and not null", [name, j]),
"keyActualValue": sprintf("Resources.%s.Properties.MethodSettings[%d].LoggingLevel is undefined or null", [name, j]),
"searchLine": common_lib.build_search_line(["Resources", name, "Properties", "MethodSettings", j], []),
}
}

Expand All @@ -135,18 +135,18 @@ CxPolicy[result] {
resource.Type == "AWS::ApiGateway::Stage"

properties := resource.Properties
loggingLevel := properties.MethodSettings.LoggingLevel
loggingLevel := properties.MethodSettings[j].LoggingLevel
loggingLevel == ""

result := {
"documentId": input.document[i].id,
"resourceType": resource.Type,
"resourceName": cf_lib.get_resource_name(resource, name),
"searchKey": sprintf("Resources.%s.Properties.MethodSettings.LoggingLevel", [name]),
"searchKey": sprintf("Resources.%s.Properties.MethodSettings[%d].LoggingLevel", [name, j]),
"issueType": "IncorrectValue",
"keyExpectedValue": sprintf("Resources.%s.Properties.MethodSettings.LoggingLevel should be not be empty", [name]),
"keyActualValue": sprintf("Resources.%s.Properties.MethodSettings.LoggingLevel is empty", [name]),
"searchLine": common_lib.build_search_line(["Resources", name, "Properties", "MethodSettings", "LoggingLevel"], []),
"keyExpectedValue": sprintf("Resources.%s.Properties.MethodSettings[%d].LoggingLevel should not be empty", [name, j]),
"keyActualValue": sprintf("Resources.%s.Properties.MethodSettings[%d].LoggingLevel is empty", [name, j]),
"searchLine": common_lib.build_search_line(["Resources", name, "Properties", "MethodSettings", j, "LoggingLevel"], []),
}
}

Expand All @@ -156,18 +156,18 @@ CxPolicy[result] {
resource.Type == "AWS::ApiGateway::Stage"

properties := resource.Properties
loggingLevel := properties.MethodSettings.LoggingLevel
loggingLevel := properties.MethodSettings[j].LoggingLevel
loggingLevel == "OFF"

result := {
"documentId": input.document[i].id,
"resourceType": resource.Type,
"resourceName": cf_lib.get_resource_name(resource, name),
"searchKey": sprintf("Resources.%s.Properties.MethodSettings.LoggingLevel", [name]),
"searchKey": sprintf("Resources.%s.Properties.MethodSettings[%d].LoggingLevel", [name, j]),
"issueType": "IncorrectValue",
"keyExpectedValue": sprintf("Resources.%s.Properties.MethodSettings.LoggingLevel should not be set to OFF", [name]),
"keyActualValue": sprintf("Resources.%s.Properties.MethodSettings.LoggingLevel is OFF", [name]),
"searchLine": common_lib.build_search_line(["Resources", name, "Properties", "MethodSettings", "LoggingLevel"], []),
"keyExpectedValue": sprintf("Resources.%s.Properties.MethodSettings[%d].LoggingLevel should not be set to OFF", [name, j]),
"keyActualValue": sprintf("Resources.%s.Properties.MethodSettings[%d].LoggingLevel is OFF", [name, j]),
"searchLine": common_lib.build_search_line(["Resources", name, "Properties", "MethodSettings", j, "LoggingLevel"], []),
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,22 @@
"DeploymentId": {
"Ref": "MyDeployment"
},
"MethodSettings": {
"DetailedMetricsEnabled": true,
"LoggingLevel": "INFO",
"DataTraceEnabled": false,
"ThrottlingBurstLimit": 10,
"ThrottlingRateLimit": 10
},
"MethodSettings": [
{
"DetailedMetricsEnabled": true,
"LoggingLevel": "INFO",
"DataTraceEnabled": false,
"ThrottlingBurstLimit": 10,
"ThrottlingRateLimit": 10
},
{
"DetailedMetricsEnabled": true,
"LoggingLevel": "ERROR",
"DataTraceEnabled": false,
"ThrottlingBurstLimit": 10,
"ThrottlingRateLimit": 10
}
],
"RestApiId": {
"Ref": "CFNWebSocket"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@ Resources:
DeploymentId: !Ref TestDeployment
DocumentationVersion: ""
MethodSettings:
LoggingLevel: "ON"
- LoggingLevel: "INFO"
DataTraceEnabled: False
- DataTraceEnabled: False
LoggingLevel: "ERROR"
AccessLogSetting:
DestinationArn: "dest"
Format: "format"
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,13 @@ Resources:
HttpMethod: GET
MetricsEnabled: false
DataTraceEnabled: false
- ResourcePath: /stack
- LoggingLevel: "OFF"
ResourcePath: /stack
HttpMethod: POST
MetricsEnabled: false
DataTraceEnabled: false
- ResourcePath: /stack
HttpMethod: GET
MetricsEnabled: true
DataTraceEnabled: false
LoggingLevel: "INFO"
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,16 @@
"RestApiId": {
"Ref": "CFNWebSocket"
},
"MethodSettings": {
}
"MethodSettings": [
{},
{
"DetailedMetricsEnabled": true,
"LoggingLevel": "INFO",
"DataTraceEnabled": false,
"ThrottlingBurstLimit": 10,
"ThrottlingRateLimit": 10
}
]
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,29 @@
"RestApiId": {
"Ref": "CFNWebSocket"
},
"MethodSettings": {
"DetailedMetricsEnabled": true,
"LoggingLevel": "OFF",
"DataTraceEnabled": false,
"ThrottlingBurstLimit": 10,
"ThrottlingRateLimit": 10
}
"MethodSettings": [
{
"DetailedMetricsEnabled": true,
"LoggingLevel": "OFF",
"DataTraceEnabled": false,
"ThrottlingBurstLimit": 10,
"ThrottlingRateLimit": 10
},
{
"DetailedMetricsEnabled": true,
"LoggingLevel": "",
"DataTraceEnabled": false,
"ThrottlingBurstLimit": 10,
"ThrottlingRateLimit": 10
},
{
"DetailedMetricsEnabled": true,
"LoggingLevel": "INFO",
"DataTraceEnabled": false,
"ThrottlingBurstLimit": 10,
"ThrottlingRateLimit": 10
}
]
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,7 @@ Resources:
DeploymentId: !Ref TestDeployment
DocumentationVersion: ""
MethodSettings:
LoggingLevel: "OFF"
- LoggingLevel: "OFF"
DataTraceEnabled: False
- DataTraceEnabled: False
LoggingLevel: "INFO"
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,7 @@ Resources:
DeploymentId: !Ref TestDeployment
DocumentationVersion: ""
MethodSettings:
LoggingLevel: "ON"
- LoggingLevel: "INFO"
DataTraceEnabled: False
- DataTraceEnabled: False
LoggingLevel: "ERROR"
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"AWSTemplateFormatVersion": "2010-09-09",
"Resources": {
"MyStage": {
"Type": "AWS::ApiGateway::Stage",
"Properties": {
"StageName": "Prod",
"Description": "Prod Stage",
"AccessLogSetting": {
"DestinationArn": "dest",
"Format": "format"
},
"DeploymentId": {
"Ref": "MyDeployment"
},
"RestApiId": {
"Ref": "CFNWebSocket"
},
"MethodSettings": [
{
"DetailedMetricsEnabled": true,
"LoggingLevel": "OFF",
"DataTraceEnabled": false,
"ThrottlingBurstLimit": 10,
"ThrottlingRateLimit": 10
},
{
"DetailedMetricsEnabled": true,
"LoggingLevel": "INFO",
"DataTraceEnabled": false,
"ThrottlingBurstLimit": 10,
"ThrottlingRateLimit": 10
},
{
"DetailedMetricsEnabled": true,
"DataTraceEnabled": false,
"ThrottlingBurstLimit": 10,
"ThrottlingRateLimit": 10
}
]
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
Resources:
Prod:
Type: AWS::ApiGateway::Stage
Properties:
StageName: Prod
Description: Prod Stage
AccessLogSetting:
DestinationArn: "dest"
Format: "format"
RestApiId: !Ref MyRestApi
DeploymentId: !Ref TestDeployment
DocumentationVersion: ""
MethodSettings:
- DataTraceEnabled: False
LoggingLevel: "OFF"
- DataTraceEnabled: False
LoggingLevel: ""
- LoggingLevel: "INFO"
DataTraceEnabled: False
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,22 @@
"DeploymentId": {
"Ref": "MyDeployment"
},
"MethodSettings": {
"DetailedMetricsEnabled": true,
"LoggingLevel": "INFO",
"DataTraceEnabled": false,
"ThrottlingBurstLimit": 10,
"ThrottlingRateLimit": 10
},
"MethodSettings": [
{
"DetailedMetricsEnabled": true,
"LoggingLevel": "INFO",
"DataTraceEnabled": false,
"ThrottlingBurstLimit": 10,
"ThrottlingRateLimit": 10
},
{
"DetailedMetricsEnabled": true,
"LoggingLevel": "ERROR",
"DataTraceEnabled": false,
"ThrottlingBurstLimit": 10,
"ThrottlingRateLimit": 10
}
],
"RestApiId": {
"Ref": "CFNWebSocket"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@
{
"queryName": "API Gateway V2 Stage Access Logging Settings Not Defined",
"severity": "MEDIUM",
"line": 16,
"line": 17,
"fileName": "positive1.yaml"
},
{
"queryName": "API Gateway V2 Stage Access Logging Settings Not Defined",
"severity": "MEDIUM",
"line": 21,
"fileName": "positive1.yaml"
},
{
Expand Down Expand Up @@ -56,7 +62,7 @@
{
"queryName": "API Gateway V2 Stage Access Logging Settings Not Defined",
"severity": "MEDIUM",
"line": 19,
"line": 22,
"fileName": "positive10.json"
},
{
Expand All @@ -68,13 +74,13 @@
{
"queryName": "API Gateway V2 Stage Access Logging Settings Not Defined",
"severity": "MEDIUM",
"line": 13,
"fileName": "positive11.yaml"
"line": 22,
"fileName": "positive12.json"
},
{
"queryName": "API Gateway V2 Stage Access Logging Settings Not Defined",
"severity": "MEDIUM",
"line": 21,
"line": 29,
"fileName": "positive12.json"
},
{
Expand Down Expand Up @@ -112,5 +118,29 @@
"severity": "MEDIUM",
"line": 4,
"fileName": "positive17.yaml"
},
{
"queryName": "API Gateway V2 Stage Access Logging Settings Not Defined",
"severity": "MEDIUM",
"line": 22,
"fileName": "positive18.json"
},
{
"queryName": "API Gateway V2 Stage Access Logging Settings Not Defined",
"severity": "MEDIUM",
"line": 35,
"fileName": "positive18.json"
},
{
"queryName": "API Gateway V2 Stage Access Logging Settings Not Defined",
"severity": "MEDIUM",
"line": 15,
"fileName": "positive19.yaml"
},
{
"queryName": "API Gateway V2 Stage Access Logging Settings Not Defined",
"severity": "MEDIUM",
"line": 17,
"fileName": "positive19.yaml"
}
]
Loading
Loading