diff --git a/application-components/RESOURCES.md b/application-components/RESOURCES.md index c12c21c0..90c029cf 100644 --- a/application-components/RESOURCES.md +++ b/application-components/RESOURCES.md @@ -243,7 +243,7 @@ | [sqlserver\_monitor\_folder](#input\_sqlserver\_monitor\_folder) | Folder where sqlserver monitors will be created. | `string` | `"SQL Server"` | no | | [sumologic\_access\_id](#input\_sumologic\_access\_id) | Sumo Logic Access ID. Visit https://help.sumologic.com/Manage/Security/Access-Keys#Create_an_access_key | `string` | n/a | yes | | [sumologic\_access\_key](#input\_sumologic\_access\_key) | Sumo Logic Access Key. Visit https://help.sumologic.com/Manage/Security/Access-Keys#Create_an_access_key | `string` | n/a | yes | -| [sumologic\_environment](#input\_sumologic\_environment) | Enter au, ca, ch, de, eu, jp, us2, fed, kr or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security | `string` | n/a | yes | +| [sumologic\_environment](#input\_sumologic\_environment) | Enter au, ca, ch, de, eu, esc, jp, us2, fed, kr or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security | `string` | n/a | yes | | [sumologic\_organization\_id](#input\_sumologic\_organization\_id) | You can find your org on the Preferences page in the Sumo Logic UI. For more information, see the Preferences Page topic. Your org ID will be used to configure the IAM Role for Sumo Logic AWS Sources."
For more details, visit https://help.sumologic.com/01Start-Here/05Customize-Your-Sumo-Logic-Experience/Preferences-Page | `string` | n/a | yes | ## Outputs diff --git a/application-components/fields.sh b/application-components/fields.sh index 37f70e6a..4cb28d68 100644 --- a/application-components/fields.sh +++ b/application-components/fields.sh @@ -2,7 +2,7 @@ # ---------------------------------------------------------------------------------------------------------------------------------------------------------- # This script imports the existing fields and FERs (required by aws observability solution) if field(s) and FER(s) are already present in the user's Sumo Logic account. -# For SUMOLOGIC_ENV, provide one from the list : au, ca, ch, de, eu, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" +# For SUMOLOGIC_ENV, provide one from the list : au, ca, ch, de, eu, esc, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" # Before using this script, set following environment variables using below commands: # export SUMOLOGIC_ENV="" # export SUMOLOGIC_ACCESSID="" @@ -16,8 +16,9 @@ if ! foobar_loc="$(type -p "jq")" || [[ -z $foobar_loc ]]; then fi # Validate Sumo Logic environment/deployment. -if ! [[ "$SUMOLOGIC_ENV" =~ ^(au|ca|ch|de|eu|jp|us2|fed|kr|us1)$ ]]; then - echo "$SUMOLOGIC_ENV is invalid Sumo Logic deployment. For SUMOLOGIC_ENV, provide one from list : au, ca, ch, de, eu, jp, us2, kr, fed, or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" +if ! [[ "$SUMOLOGIC_ENV" =~ ^(au|ca|ch|de|eu|esc|jp|us2|fed|kr|us1)$ ]]; then + echo "$SUMOLOGIC_ENV is invalid Sumo Logic deployment. For SUMOLOGIC_ENV, provide one from list : au, ca, ch, de, eu, esc, jp, us2, fed, kr or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" + exit 1 fi diff --git a/application-components/main.auto.tfvars b/application-components/main.auto.tfvars index 37eed948..47454b22 100644 --- a/application-components/main.auto.tfvars +++ b/application-components/main.auto.tfvars @@ -3,7 +3,7 @@ ####### SUMOLOGIC CONFIGURATION ####### -sumologic_environment = "" # Please replace (including brackets) with au, ca, ch, de, eu, jp, us2, kr, fed or us1. +sumologic_environment = "" # Please replace (including brackets) with au, ca, ch, de, eu, esc, jp, us2, kr, fed or us1. sumologic_access_id = "" # Please replace (including brackets) with your Sumo Logic Access ID. sumologic_access_key = "" # Please replace (including brackets) with your Sumo Logic Access KEY. sumologic_organization_id = "" # Please replace (including brackets) with your Sumo Logic Organization ID. diff --git a/application-components/variables.tf b/application-components/variables.tf index 79551e06..84427b45 100644 --- a/application-components/variables.tf +++ b/application-components/variables.tf @@ -2,7 +2,7 @@ variable "sumologic_environment" { type = string - description = "Enter au, ca, ch, de, eu, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" + description = "Enter au, ca, ch, de, eu, esc, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" validation { condition = contains([ @@ -13,12 +13,13 @@ variable "sumologic_environment" { "ch", "de", "eu", + "esc", "jp", "us1", "us2", "kr", "fed"], var.sumologic_environment) - error_message = "The value must be one of au, ca, ch, de, eu, jp, us1, us2, kr or fed." + error_message = "The value must be one of au, ca, ch, de, eu, esc, jp, us1, us2, kr or fed." } } diff --git a/aws-observability-terraform/app-modules/alb/app.tf b/aws-observability-terraform/app-modules/alb/app.tf index 13b33913..6cea262d 100644 --- a/aws-observability-terraform/app-modules/alb/app.tf +++ b/aws-observability-terraform/app-modules/alb/app.tf @@ -1,6 +1,8 @@ module "alb_module" { - source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" - version = "1.0.22" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//sumologic?ref=fy27q1" + # source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" + # version = "1.0.23" + access_id = var.access_id access_key = var.access_key diff --git a/aws-observability-terraform/app-modules/apigateway/app.tf b/aws-observability-terraform/app-modules/apigateway/app.tf index 6fc59b0a..96e59bae 100644 --- a/aws-observability-terraform/app-modules/apigateway/app.tf +++ b/aws-observability-terraform/app-modules/apigateway/app.tf @@ -1,6 +1,8 @@ module "apigateway_module" { - source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" - version = "1.0.22" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//sumologic?ref=fy27q1" + # source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" + # version = "1.0.23" + access_id = var.access_id access_key = var.access_key diff --git a/aws-observability-terraform/app-modules/dynamodb/app.tf b/aws-observability-terraform/app-modules/dynamodb/app.tf index 8757d7d7..7e62641a 100644 --- a/aws-observability-terraform/app-modules/dynamodb/app.tf +++ b/aws-observability-terraform/app-modules/dynamodb/app.tf @@ -1,6 +1,7 @@ module "dynamodb_module" { - source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" - version = "1.0.22" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//sumologic?ref=fy27q1" + # source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" + # version = "1.0.23" access_id = var.access_id access_key = var.access_key diff --git a/aws-observability-terraform/app-modules/ec2metrics/app.tf b/aws-observability-terraform/app-modules/ec2metrics/app.tf index ed5647ab..d898789b 100644 --- a/aws-observability-terraform/app-modules/ec2metrics/app.tf +++ b/aws-observability-terraform/app-modules/ec2metrics/app.tf @@ -1,6 +1,7 @@ module "ec2metrics_module" { - source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" - version = "1.0.22" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//sumologic?ref=fy27q1" + # source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" + # version = "1.0.23" access_id = var.access_id access_key = var.access_key diff --git a/aws-observability-terraform/app-modules/ecs/app.tf b/aws-observability-terraform/app-modules/ecs/app.tf index 67b5ca0a..41824eb7 100644 --- a/aws-observability-terraform/app-modules/ecs/app.tf +++ b/aws-observability-terraform/app-modules/ecs/app.tf @@ -1,6 +1,7 @@ module "ecs_module" { - source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" - version = "1.0.22" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//sumologic?ref=fy27q1" + # source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" + # version = "1.0.23" access_id = var.access_id access_key = var.access_key diff --git a/aws-observability-terraform/app-modules/elasticache/app.tf b/aws-observability-terraform/app-modules/elasticache/app.tf index 6a73e7a3..2e46f60f 100644 --- a/aws-observability-terraform/app-modules/elasticache/app.tf +++ b/aws-observability-terraform/app-modules/elasticache/app.tf @@ -1,6 +1,7 @@ module "elasticache_module" { - source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" - version = "1.0.22" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//sumologic?ref=fy27q1" + # source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" + # version = "1.0.23" access_id = var.access_id access_key = var.access_key @@ -28,7 +29,7 @@ module "elasticache_module" { monitor_is_disabled = var.monitors_disabled monitor_evaluation_delay = "0m" queries = { - A = "account=* region=* namespace=aws/elasticache \"\\\"eventSource\\\":\\\"elasticache.amazonaws.com\\\"\" errorCode errorMessage\n| json \"eventSource\", \"errorCode\", \"errorMessage\", \"userIdentity\", \"requestParameters\", \"responseElements\" as event_source, error_code, error_message, user_identity, requestParameters, responseElements nodrop\n| json field=requestParameters \"cacheClusterId\" as req_cacheClusterId nodrop\n| json field=responseElements \"cacheClusterId\" as res_cacheClusterId nodrop\n| json field=user_identity \"arn\", \"userName\" nodrop \n| parse field=arn \":assumed-role/*\" as user nodrop \n| parse field=arn \"arn:aws:iam::*:*\" as accountId, user nodrop\n| if (isEmpty(userName), user, userName) as user\n| if (isEmpty(req_cacheClusterId), res_cacheClusterId, req_cacheClusterId) as cacheclusterid\n| where event_source matches \"elasticache.amazonaws.com\" and !isEmpty(error_code) and !isEmpty(error_message) and !isEmpty(user)\n| count as event_count by _messageTime, account, region, event_source, error_code, error_message, user, cacheclusterid\n| formatDate(_messageTime, \"MM/dd/yyyy HH:mm:ss:SSS Z\") as message_date\n| fields message_date, account, region, event_source, error_code, error_message, user, cacheclusterid\n| fields -_messageTime" + A = "account=* region=* namespace=aws/elasticache \"\\\"eventSource\\\":\\\"elasticache.amazonaws.com\\\"\" errorCode errorMessage\n| json \"eventSource\", \"errorCode\", \"errorMessage\", \"userIdentity\", \"requestParameters\", \"responseElements\" as event_source, error_code, error_message, user_identity, requestParameters, responseElements nodrop\n| json field=requestParameters \"cacheClusterId\" as req_cacheClusterId nodrop\n| json field=responseElements \"cacheClusterId\" as res_cacheClusterId nodrop\n| json field=user_identity \"arn\", \"userName\" nodrop \n| parse field=arn \":assumed-role/*\" as user nodrop \n| parse field=arn \"arn:*:iam::*:*\" as arn_part, accountId, user nodrop\n| if (isEmpty(userName), user, userName) as user\n| if (isEmpty(req_cacheClusterId), res_cacheClusterId, req_cacheClusterId) as cacheclusterid\n| where event_source matches \"elasticache.amazonaws.com\" and !isEmpty(error_code) and !isEmpty(error_message) and !isEmpty(user)\n| count as event_count by _messageTime, account, region, event_source, error_code, error_message, user, cacheclusterid\n| formatDate(_messageTime, \"MM/dd/yyyy HH:mm:ss:SSS Z\") as message_date\n| fields message_date, account, region, event_source, error_code, error_message, user, cacheclusterid\n| fields -_messageTime" } triggers = [ { diff --git a/aws-observability-terraform/app-modules/elb/app.tf b/aws-observability-terraform/app-modules/elb/app.tf index 7ec79b30..2230a180 100644 --- a/aws-observability-terraform/app-modules/elb/app.tf +++ b/aws-observability-terraform/app-modules/elb/app.tf @@ -1,6 +1,7 @@ module "classic_elb_module" { - source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" - version = "1.0.22" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//sumologic?ref=fy27q1" + # source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" + # version = "1.0.23" access_id = var.access_id access_key = var.access_key diff --git a/aws-observability-terraform/app-modules/lambda/app.tf b/aws-observability-terraform/app-modules/lambda/app.tf index dc10242e..2b66fa60 100644 --- a/aws-observability-terraform/app-modules/lambda/app.tf +++ b/aws-observability-terraform/app-modules/lambda/app.tf @@ -1,6 +1,7 @@ module "lambda_module" { - source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" - version = "1.0.22" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//sumologic?ref=fy27q1" + # source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" + # version = "1.0.23" access_id = var.access_id access_key = var.access_key diff --git a/aws-observability-terraform/app-modules/nlb/app.tf b/aws-observability-terraform/app-modules/nlb/app.tf index 398dc117..4597ee13 100644 --- a/aws-observability-terraform/app-modules/nlb/app.tf +++ b/aws-observability-terraform/app-modules/nlb/app.tf @@ -1,6 +1,7 @@ module "nlb_module" { - source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" - version = "1.0.22" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//sumologic?ref=fy27q1" + # source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" + # version = "1.0.23" access_id = var.access_id access_key = var.access_key diff --git a/aws-observability-terraform/app-modules/overview/app.tf b/aws-observability-terraform/app-modules/overview/app.tf index 1bbcc2ba..5b41f76d 100644 --- a/aws-observability-terraform/app-modules/overview/app.tf +++ b/aws-observability-terraform/app-modules/overview/app.tf @@ -1,6 +1,7 @@ module "overview_module" { - source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" - version = "1.0.22" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//sumologic?ref=fy27q1" + # source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" + # version = "1.0.23" access_id = var.access_id access_key = var.access_key diff --git a/aws-observability-terraform/app-modules/rds/app.tf b/aws-observability-terraform/app-modules/rds/app.tf index faa61461..31406193 100644 --- a/aws-observability-terraform/app-modules/rds/app.tf +++ b/aws-observability-terraform/app-modules/rds/app.tf @@ -1,6 +1,7 @@ module "rds_module" { - source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" - version = "1.0.22" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//sumologic?ref=fy27q1" + # source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" + # version = "1.0.23" access_id = var.access_id access_key = var.access_key diff --git a/aws-observability-terraform/app-modules/sns/app.tf b/aws-observability-terraform/app-modules/sns/app.tf index e68c5734..b3283367 100644 --- a/aws-observability-terraform/app-modules/sns/app.tf +++ b/aws-observability-terraform/app-modules/sns/app.tf @@ -1,6 +1,7 @@ module "sns_module" { - source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" - version = "1.0.22" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//sumologic?ref=fy27q1" + # source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" + # version = "1.0.23" access_id = var.access_id access_key = var.access_key @@ -64,7 +65,7 @@ module "sns_module" { monitor_is_disabled = var.monitors_disabled monitor_evaluation_delay = "0m" queries = { - A = "account=* region=* namespace=aws/sns \"\\\"eventsource\\\":\\\"sns.amazonaws.com\\\"\" errorCode \n| json \"userIdentity\", \"eventSource\", \"eventName\", \"awsRegion\", \"sourceIPAddress\", \"userAgent\", \"eventType\", \"recipientAccountId\", \"requestParameters\", \"responseElements\", \"requestID\", \"errorCode\", \"errorMessage\" as userIdentity, event_source, event_name, region, src_ip, user_agent, event_type, recipient_account_id, requestParameters, responseElements, request_id, error_code, error_message nodrop \n| where event_source = \"sns.amazonaws.com\" and !isblank(error_code) \n| json field=userIdentity \"accountId\", \"type\", \"arn\", \"userName\" as accountid, type, arn, username nodrop \n| parse field=arn \":assumed-role/*\" as user nodrop \n| parse field=arn \"arn:aws:iam::*:*\" as accountId, user nodrop \n| json field=requestParameters \"topicArn\", \"name\", \"resourceArn\", \"subscriptionArn\" as req_topic_arn, req_topic_name, resource_arn, subscription_arn nodrop \n| json field=responseElements \"topicArn\" as res_topic_arn nodrop \n| if (isBlank(req_topic_arn), res_topic_arn, req_topic_arn) as topic_arn \n| if (isBlank(topic_arn), resource_arn, topic_arn) as topic_arn \n| parse field=topic_arn \"arn:aws:sns:*:*:*\" as region_temp, accountid_temp, topic_arn_name_temp nodrop \n| parse field=subscription_arn \"arn:aws:sns:*:*:*:*\" as region_temp, accountid_temp, topic_arn_name_temp, arn_value_temp nodrop \n| if (isBlank(req_topic_name), topic_arn_name_temp, req_topic_name) as topicname \n| if (isBlank(accountid), recipient_account_id, accountid) as accountid \n| if (isEmpty(error_code), \"Success\", \"Failure\") as event_status \n| if (isEmpty(username), user, username) as user \n| count as event_count by event_name, error_code, error_message, region, src_ip, accountid, user, type, request_id, topicname, topic_arn, user_agent" + A = "account=* region=* namespace=aws/sns \"\\\"eventsource\\\":\\\"sns.amazonaws.com\\\"\" errorCode \n| json \"userIdentity\", \"eventSource\", \"eventName\", \"awsRegion\", \"sourceIPAddress\", \"userAgent\", \"eventType\", \"recipientAccountId\", \"requestParameters\", \"responseElements\", \"requestID\", \"errorCode\", \"errorMessage\" as userIdentity, event_source, event_name, region, src_ip, user_agent, event_type, recipient_account_id, requestParameters, responseElements, request_id, error_code, error_message nodrop \n| where event_source = \"sns.amazonaws.com\" and !isblank(error_code) \n| json field=userIdentity \"accountId\", \"type\", \"arn\", \"userName\" as accountid, type, arn, username nodrop \n| parse field=arn \":assumed-role/*\" as user nodrop \n| parse field=arn \"arn:*:iam::*:*\" as arn_part, accountId, user nodrop \n| json field=requestParameters \"topicArn\", \"name\", \"resourceArn\", \"subscriptionArn\" as req_topic_arn, req_topic_name, resource_arn, subscription_arn nodrop \n| json field=responseElements \"topicArn\" as res_topic_arn nodrop \n| if (isBlank(req_topic_arn), res_topic_arn, req_topic_arn) as topic_arn \n| if (isBlank(topic_arn), resource_arn, topic_arn) as topic_arn \n| parse field=topic_arn \"arn:*:sns:*:*:*\" as arn_part, region_temp, accountid_temp, topic_arn_name_temp nodrop \n| parse field=subscription_arn \"arn:*:sns:*:*:*:*\" as arn_part, region_temp, accountid_temp, topic_arn_name_temp, arn_value_temp nodrop \n| if (isBlank(req_topic_name), topic_arn_name_temp, req_topic_name) as topicname \n| if (isBlank(accountid), recipient_account_id, accountid) as accountid \n| if (isEmpty(error_code), \"Success\", \"Failure\") as event_status \n| if (isEmpty(username), user, username) as user \n| count as event_count by event_name, error_code, error_message, region, src_ip, accountid, user, type, request_id, topicname, topic_arn, user_agent" } triggers = [ { @@ -98,7 +99,7 @@ module "sns_module" { monitor_is_disabled = var.monitors_disabled monitor_evaluation_delay = "0m" queries = { - A = "account=* region=* namespace=aws/sns \"\\\"eventsource\\\":\\\"sns.amazonaws.com\\\"\" sourceIPAddress \n| json \"userIdentity\", \"eventSource\", \"eventName\", \"awsRegion\", \"sourceIPAddress\", \"userAgent\", \"eventType\", \"recipientAccountId\", \"requestParameters\", \"responseElements\", \"requestID\", \"errorCode\", \"errorMessage\" as userIdentity, event_source, event_name, region, src_ip, user_agent, event_type, recipient_account_id, requestParameters, responseElements, request_id, error_code, error_message nodrop \n| where event_source = \"sns.amazonaws.com\" \n| json field=userIdentity \"accountId\", \"type\", \"arn\", \"userName\" as accountid, user_type, arn, username nodrop \n| parse field=arn \":assumed-role/*\" as user nodrop \n| parse field=arn \"arn:aws:iam::*:*\" as accountid, user nodrop \n| json field=requestParameters \"topicArn\", \"name\", \"resourceArn\", \"subscriptionArn\" as req_topic_arn, req_topic_name, resource_arn, subscription_arn nodrop \n| json field=responseElements \"topicArn\" as res_topic_arn nodrop \n| if (isBlank(req_topic_arn), res_topic_arn, req_topic_arn) as topic_arn \n| if (isBlank(topic_arn), resource_arn, topic_arn) as topic_arn \n| parse field=topic_arn \"arn:aws:sns:*:*:*\" as region_temp, accountid_temp, topic_arn_name_temp nodrop \n| parse field=subscription_arn \"arn:aws:sns:*:*:*:*\" as region_temp, accountid_temp, topic_arn_name_temp, arn_value_temp nodrop \n| if (isBlank(req_topic_name), topic_arn_name_temp, req_topic_name) as topicname \n| if (isBlank(accountid), recipient_account_id, accountid) as accountid \n| if (isEmpty(error_code), \"Success\", \"Failure\") as event_status \n| if (isEmpty(username), user_type, username) as user_type \n| count as ip_count by src_ip, event_name, region, accountid,user_type \n| lookup type, actor, raw, threatlevel as malicious_confidence from sumo://threat/cs on threat=src_ip \n| where malicious_confidence = \"high\" \n| json field=raw \"labels[*].name\" as label_name nodrop\n| replace(label_name, \"\\\\/\",\"->\") as label_name \n| replace(label_name, \"\\\"\",\" \") as label_name \n| if (isEmpty(actor), \"Unassigned\", actor) as actor \n| sum(ip_count) as threat_count by src_ip, event_name, region, accountid, malicious_confidence, actor, label_name" + A = "account=* region=* namespace=aws/sns \"\\\"eventsource\\\":\\\"sns.amazonaws.com\\\"\" sourceIPAddress \n| json \"userIdentity\", \"eventSource\", \"eventName\", \"awsRegion\", \"sourceIPAddress\", \"userAgent\", \"eventType\", \"recipientAccountId\", \"requestParameters\", \"responseElements\", \"requestID\", \"errorCode\", \"errorMessage\" as userIdentity, event_source, event_name, region, src_ip, user_agent, event_type, recipient_account_id, requestParameters, responseElements, request_id, error_code, error_message nodrop \n| where event_source = \"sns.amazonaws.com\" \n| json field=userIdentity \"accountId\", \"type\", \"arn\", \"userName\" as accountid, user_type, arn, username nodrop \n| parse field=arn \":assumed-role/*\" as user nodrop \n| parse field=arn \"arn:*:iam::*:*\" as arn_part, accountid, user nodrop \n| json field=requestParameters \"topicArn\", \"name\", \"resourceArn\", \"subscriptionArn\" as req_topic_arn, req_topic_name, resource_arn, subscription_arn nodrop \n| json field=responseElements \"topicArn\" as res_topic_arn nodrop \n| if (isBlank(req_topic_arn), res_topic_arn, req_topic_arn) as topic_arn \n| if (isBlank(topic_arn), resource_arn, topic_arn) as topic_arn \n| parse field=topic_arn \"arn:*:sns:*:*:*\" as arn_part, region_temp, accountid_temp, topic_arn_name_temp nodrop \n| parse field=subscription_arn \"arn:*:sns:*:*:*:*\" as arn_part, region_temp, accountid_temp, topic_arn_name_temp, arn_value_temp nodrop \n| if (isBlank(req_topic_name), topic_arn_name_temp, req_topic_name) as topicname \n| if (isBlank(accountid), recipient_account_id, accountid) as accountid \n| if (isEmpty(error_code), \"Success\", \"Failure\") as event_status \n| if (isEmpty(username), user_type, username) as user_type \n| count as ip_count by src_ip, event_name, region, accountid,user_type \n| lookup type, actor, raw, threatlevel as malicious_confidence from sumo://threat/cs on threat=src_ip \n| where malicious_confidence = \"high\" \n| json field=raw \"labels[*].name\" as label_name nodrop\n| replace(label_name, \"\\\\/\",\"->\") as label_name \n| replace(label_name, \"\\\"\",\" \") as label_name \n| if (isEmpty(actor), \"Unassigned\", actor) as actor \n| sum(ip_count) as threat_count by src_ip, event_name, region, accountid, malicious_confidence, actor, label_name" } triggers = [ diff --git a/aws-observability-terraform/app-modules/sqs/app.tf b/aws-observability-terraform/app-modules/sqs/app.tf index b67cb880..ff8c8423 100644 --- a/aws-observability-terraform/app-modules/sqs/app.tf +++ b/aws-observability-terraform/app-modules/sqs/app.tf @@ -1,6 +1,7 @@ module "sqs_module" { - source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" - version = "1.0.22" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//sumologic?ref=fy27q1" + # source = "SumoLogic/sumo-logic-integrations/sumologic//sumologic" + # version = "1.0.23" access_id = var.access_id access_key = var.access_key diff --git a/aws-observability-terraform/cloudformation-module/README.md b/aws-observability-terraform/cloudformation-module/README.md index 0832750b..3574176e 100644 --- a/aws-observability-terraform/cloudformation-module/README.md +++ b/aws-observability-terraform/cloudformation-module/README.md @@ -63,7 +63,7 @@ Configure the following parameters in `main_variables.auto.tfvars`. For more det | Parameter |Description |Default Value | --- | --- | --- | | CloudFormationStackName | A unique name for your AWS CloudFormation Stack | | -| Section1aSumoLogicDeployment | Enter au, ca, ch, de, eu, fed, jp, kr, us1 or us2. [Visit](https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security) | | +| Section1aSumoLogicDeployment | Enter au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2. [Visit](https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security) | | | Section1bSumoLogicAccessID | Sumo Logic Access ID. [Visit](https://help.sumologic.com/Manage/Security/Access-Keys#Create_an_access_key) | | | Section1cSumoLogicAccessKey| Sumo Logic Access Key. | | | Section1dSumoLogicOrganizationId | Appears on the Account Overview page that displays information about your Sumo Logic organization. Used for IAM Role in Sumo Logic AWS Sources. [Visit](https://help.sumologic.com/01Start-Here/05Customize-Your-Sumo-Logic-Experience/Preferences-Page) | | diff --git a/aws-observability-terraform/cloudformation-module/main_variables.auto.tfvars b/aws-observability-terraform/cloudformation-module/main_variables.auto.tfvars index f297406b..3491cfa3 100644 --- a/aws-observability-terraform/cloudformation-module/main_variables.auto.tfvars +++ b/aws-observability-terraform/cloudformation-module/main_variables.auto.tfvars @@ -11,7 +11,7 @@ CloudFormationStackName = "" ####### BELOW ARE REQUIRED PARAMETERS FOR CLOUDFORMATION STACK ####### # Visit - https://help.sumologic.com/Solutions/AWS_Observability_Solution/03_Set_Up_the_AWS_Observability_Solution#sumo-logic-access-configuration-required -Section1aSumoLogicDeployment = "" # Please replace (including brackets) with au, ca, ch, de, eu, jp, us2, kr, fed or us1. +Section1aSumoLogicDeployment = "" # Please replace (including brackets) with au, ca, ch, de, eu, esc, jp, us2, kr, fed or us1. Section1bSumoLogicAccessID = "" # Please replace (including brackets) with your Sumo Logic Access ID. Section1cSumoLogicAccessKey = "" # Please replace (including brackets) with your Sumo Logic Access KEY. Section1dSumoLogicOrganizationId = "" # Please replace (including brackets) with your Sumo Logic Organization ID. diff --git a/aws-observability-terraform/cloudformation-module/variables.tf b/aws-observability-terraform/cloudformation-module/variables.tf index a565a9ab..a37076aa 100644 --- a/aws-observability-terraform/cloudformation-module/variables.tf +++ b/aws-observability-terraform/cloudformation-module/variables.tf @@ -12,7 +12,7 @@ variable "CloudFormationStackName" { # Sumo Logic Access Configuration (Required) variable "Section1aSumoLogicDeployment" { type = string - description = "Enter au, ca, ch, de, eu, fed, jp, kr, us1 or us2. Visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" + description = "Enter au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2. Visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" validation { condition = contains([ "au", @@ -20,12 +20,13 @@ variable "Section1aSumoLogicDeployment" { "ch", "de", "eu", + "esc", "jp", "us2", "kr", "fed", "us1"], var.Section1aSumoLogicDeployment) - error_message = "Argument \"Section1aSumoLogicDeployment\" must be either \"au\", \"ca\", \"ch\", \"de\", \"eu\", \"jp\", \"us2\", \"kr\", \"fed\" or \"us1\"." + error_message = "Argument \"Section1aSumoLogicDeployment\" must be either \"au\", \"ca\", \"ch\", \"de\", \"eu\", \"esc\", \"jp\", \"us2\", \"kr\", \"fed\" or \"us1\"." } } variable "Section1bSumoLogicAccessID" { diff --git a/aws-observability-terraform/examples/appmodule/README.md b/aws-observability-terraform/examples/appmodule/README.md index 2827d5f8..1e2a72aa 100644 --- a/aws-observability-terraform/examples/appmodule/README.md +++ b/aws-observability-terraform/examples/appmodule/README.md @@ -77,7 +77,7 @@ | [sumo\_api\_endpoint](#input\_sumo\_api\_endpoint) | n/a | `string` | n/a | yes | | [sumologic\_access\_id](#input\_sumologic\_access\_id) | Sumo Logic Access ID. Visit https://help.sumologic.com/Manage/Security/Access-Keys#Create_an_access_key | `string` | n/a | yes | | [sumologic\_access\_key](#input\_sumologic\_access\_key) | Sumo Logic Access Key. Visit https://help.sumologic.com/Manage/Security/Access-Keys#Create_an_access_key | `string` | n/a | yes | -| [sumologic\_environment](#input\_sumologic\_environment) | Enter au, ca, ch, de, eu, fed, jp, kr, us1 or us2. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security | `string` | n/a | yes | +| [sumologic\_environment](#input\_sumologic\_environment) | Enter au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security | `string` | n/a | yes | | [sumologic\_folder\_installation\_location](#input\_sumologic\_folder\_installation\_location) | Indicates where to install the app folder. Enter "Personal Folder" for installing in "Personal" folder and "Admin Recommended Folder" for installing in "Admin Recommended" folder. | `string` | `"Personal Folder"` | no | | [sumologic\_folder\_share\_with\_org](#input\_sumologic\_folder\_share\_with\_org) | Indicates if AWS Observability folder should be shared (view access) with entire organization. true to enable; false to disable. | `bool` | `true` | no | | [sumologic\_organization\_id](#input\_sumologic\_organization\_id) | You can find your org on the Preferences page in the Sumo Logic UI. For more information, see the Preferences Page topic. Your org ID will be used to configure the IAM Role for Sumo Logic AWS Sources."
For more details, visit https://help.sumologic.com/01Start-Here/05Customize-Your-Sumo-Logic-Experience/Preferences-Page | `string` | n/a | yes | diff --git a/aws-observability-terraform/examples/appmodule/field.tf b/aws-observability-terraform/examples/appmodule/field.tf index b7757eee..5b8c4ba0 100644 --- a/aws-observability-terraform/examples/appmodule/field.tf +++ b/aws-observability-terraform/examples/appmodule/field.tf @@ -329,7 +329,7 @@ resource "sumologic_field_extraction_rule" "AwsObservabilityFieldExtractionRule" | where eventSource = "lambda.amazonaws.com" | json field=requestParameters "functionName", "resource" as functionname, resource nodrop | parse regex field=functionname "\w+:\w+:\S+:[\w-]+:\S+:\S+:(?[\S]+)$" nodrop - | parse field=resource "arn:aws:lambda:*:function:*" as f1, functionname2 nodrop + | parse field=resource "arn:*:lambda:*:function:*" as arn_part, f1, functionname2 nodrop | if (isEmpty(functionname), functionname2, functionname) as functionname | "aws/lambda" as namespace | tolowercase(functionname) as functionname @@ -388,9 +388,9 @@ resource "sumologic_field_extraction_rule" "AwsObservabilityRdsCloudTrailLogsFER | "aws/rds" as namespace | json field=requestParameters "dBInstanceIdentifier", "resourceName", "dBClusterIdentifier" as dBInstanceIdentifier1, resourceName, dBClusterIdentifier1 nodrop | json field=responseElements "dBInstanceIdentifier" as dBInstanceIdentifier3 nodrop | json field=responseElements "dBClusterIdentifier" as dBClusterIdentifier3 nodrop - | parse field=resourceName "arn:aws:rds:*:db:*" as f1, dBInstanceIdentifier2 nodrop | parse field=resourceName "arn:aws:rds:*:cluster:*" as f1, dBClusterIdentifier2 nodrop - | if (resourceName matches "arn:aws:rds:*:db:*", dBInstanceIdentifier2, if (!isEmpty(dBInstanceIdentifier1), dBInstanceIdentifier1, dBInstanceIdentifier3) ) as dBInstanceIdentifier - | if (resourceName matches "arn:aws:rds:*:cluster:*", dBClusterIdentifier2, if (!isEmpty(dBClusterIdentifier1), dBClusterIdentifier1, dBClusterIdentifier3) ) as dBClusterIdentifier + | parse field=resourceName "arn:*:rds:*:db:*" as arn_part, f1, dBInstanceIdentifier2 nodrop | parse field=resourceName "arn:*:rds:*:cluster:*" as arn_part, f1, dBClusterIdentifier2 nodrop + | if (resourceName matches "arn:*:rds:*:db:*", dBInstanceIdentifier2, if (!isEmpty(dBInstanceIdentifier1), dBInstanceIdentifier1, dBInstanceIdentifier3) ) as dBInstanceIdentifier + | if (resourceName matches "arn:*:rds:*:cluster:*", dBClusterIdentifier2, if (!isEmpty(dBClusterIdentifier1), dBClusterIdentifier1, dBClusterIdentifier3) ) as dBClusterIdentifier | if (isEmpty(dBInstanceIdentifier), dBClusterIdentifier, dBInstanceIdentifier) as dbidentifier | tolowercase(dbidentifier) as dbidentifier | fields region, namespace, dBInstanceIdentifier, dBClusterIdentifier, dbidentifier, accountid @@ -408,13 +408,13 @@ resource "sumologic_field_extraction_rule" "AwsObservabilitySNSCloudTrailLogsFER | where event_source = "sns.amazonaws.com" | json field=userIdentity "accountId", "type", "arn", "userName" as accountid, type, arn, username nodrop | parse field=arn ":assumed-role/*" as user nodrop - | parse field=arn "arn:aws:iam::*:*" as accountid, user nodrop + | parse field=arn "arn:*:iam::*:*" as arn_part, accountid, user nodrop | json field=requestParameters "topicArn", "name", "resourceArn", "subscriptionArn" as req_topic_arn, req_topic_name, resource_arn, subscription_arn nodrop | json field=responseElements "topicArn" as res_topic_arn nodrop | if (isBlank(req_topic_arn), res_topic_arn, req_topic_arn) as topic_arn | if (isBlank(topic_arn), resource_arn, topic_arn) as topic_arn - | parse field=topic_arn "arn:aws:sns:*:*:*" as region_temp, accountid_temp, topic_arn_name_temp nodrop - | parse field=subscription_arn "arn:aws:sns:*:*:*:*" as region_temp, accountid_temp, topic_arn_name_temp, arn_value_temp nodrop + | parse field=topic_arn "arn:*:sns:*:*:*" as arn_part, region_temp, accountid_temp, topic_arn_name_temp nodrop + | parse field=subscription_arn "arn:*:sns:*:*:*:*" as arn_part, region_temp, accountid_temp, topic_arn_name_temp, arn_value_temp nodrop | if (isBlank(req_topic_name), topic_arn_name_temp, req_topic_name) as topicname | if (isBlank(accountid), recipient_account_id, accountid) as accountid | toLowerCase(topicname) as topicname diff --git a/aws-observability-terraform/examples/appmodule/fields.sh b/aws-observability-terraform/examples/appmodule/fields.sh index 38616162..a85abd6e 100644 --- a/aws-observability-terraform/examples/appmodule/fields.sh +++ b/aws-observability-terraform/examples/appmodule/fields.sh @@ -2,7 +2,7 @@ # ---------------------------------------------------------------------------------------------------------------------------------------------------------- # This script imports the existing fields and FERs (required by aws observability solution) if field(s) and FER(s) are already present in the user's Sumo Logic account. -# For SUMOLOGIC_ENV, provide one from the list : au, ca, ch, de, eu, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" +# For SUMOLOGIC_ENV, provide one from the list : au, ca, ch, de, eu, esc, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" # Before using this script, set following environment variables using below commands: # export SUMOLOGIC_ENV="" # export SUMOLOGIC_ACCESSID="" @@ -10,8 +10,8 @@ #----------------------------------------------------------------------------------------------------------------------------------------------------------- # Validate Sumo Logic environment/deployment. -if ! [[ "$SUMOLOGIC_ENV" =~ ^(au|ca|ch|de|eu|jp|us2|fed|kr|us1)$ ]]; then - echo "$SUMOLOGIC_ENV is invalid Sumo Logic deployment. For SUMOLOGIC_ENV, provide one from list : au, ca, ch, de, eu, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" +if ! [[ "$SUMOLOGIC_ENV" =~ ^(au|ca|ch|de|eu|esc|jp|us2|kr|fed|us1)$ ]]; then + echo "$SUMOLOGIC_ENV is invalid Sumo Logic deployment. For SUMOLOGIC_ENV, provide one from list : au, ca, ch, de, eu, esc, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" exit 1 fi diff --git a/aws-observability-terraform/examples/appmodule/main.auto.tfvars b/aws-observability-terraform/examples/appmodule/main.auto.tfvars index d83c1607..b39cdf38 100644 --- a/aws-observability-terraform/examples/appmodule/main.auto.tfvars +++ b/aws-observability-terraform/examples/appmodule/main.auto.tfvars @@ -1,6 +1,6 @@ ####### BELOW ARE REQUIRED PARAMETERS FOR TERRAFORM SCRIPT ####### # Visit - https://help.sumologic.com/Solutions/AWS_Observability_Solution/03_Set_Up_the_AWS_Observability_Solution#sumo-logic-access-configuration-required -sumologic_environment = "" # Please replace (including brackets) with au, ca, ch, de, eu, jp, us2, kr, fed or us1. +sumologic_environment = "" # Please replace (including brackets) with au, ca, ch, de, eu, esc, jp, us2, kr, fed or us1. sumologic_access_id = "" sumologic_access_key = "" sumologic_organization_id = "" # Please replace (including brackets) with your Sumo Logic Organization ID. diff --git a/aws-observability-terraform/examples/appmodule/variables.tf b/aws-observability-terraform/examples/appmodule/variables.tf index 6fb56fe1..16e3055d 100644 --- a/aws-observability-terraform/examples/appmodule/variables.tf +++ b/aws-observability-terraform/examples/appmodule/variables.tf @@ -1,6 +1,6 @@ variable "sumologic_environment" { type = string - description = "Enter au, ca, ch, de, eu, fed, jp, kr, us1 or us2. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" + description = "Enter au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" validation { condition = contains([ @@ -9,12 +9,13 @@ variable "sumologic_environment" { "ch", "de", "eu", + "esc", "fed", "jp", "kr", "us1", "us2"], var.sumologic_environment) - error_message = "The value must be one of au, ca, ch, de, eu, fed, jp, kr, us1 or us2." + error_message = "The value must be one of au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2." } } @@ -90,7 +91,16 @@ variable "sumo_api_endpoint" { validation { condition = contains([ "https://api.au.sumologic.com/api/", - "https://api.ca.sumologic.com/api/", "https://api.ch.sumologic.com/api/", "https://api.de.sumologic.com/api/", "https://api.eu.sumologic.com/api/", "https://api.fed.sumologic.com/api/", "https://api.jp.sumologic.com/api/", "https://api.sumologic.com/api/", "https://api.us2.sumologic.com/api/", "https://api.kr.sumologic.com/api/"], var.sumo_api_endpoint) + "https://api.ca.sumologic.com/api/", + "https://api.ch.sumologic.com/api/", + "https://api.de.sumologic.com/api/", + "https://api.eu.sumologic.com/api/", + "https://api.esc.sumologic.com/api/", + "https://api.fed.sumologic.com/api/", + "https://api.jp.sumologic.com/api/", + "https://api.sumologic.com/api/", + "https://api.us2.sumologic.com/api/", + "https://api.kr.sumologic.com/api/"], var.sumo_api_endpoint) error_message = "Argument \"sumo_api_endpoint\" must be one of the values specified at https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security." } } diff --git a/aws-observability-terraform/examples/sourcemodule/overrideSources/README.md b/aws-observability-terraform/examples/sourcemodule/overrideSources/README.md index 2ea45e29..2f3e1b6b 100644 --- a/aws-observability-terraform/examples/sourcemodule/overrideSources/README.md +++ b/aws-observability-terraform/examples/sourcemodule/overrideSources/README.md @@ -88,7 +88,7 @@ | [sumo\_api\_endpoint](#input\_sumo\_api\_endpoint) | n/a | `string` | n/a | yes | | [sumologic\_access\_id](#input\_sumologic\_access\_id) | Sumo Logic Access ID. Visit https://help.sumologic.com/Manage/Security/Access-Keys#Create_an_access_key | `string` | n/a | yes | | [sumologic\_access\_key](#input\_sumologic\_access\_key) | Sumo Logic Access Key. Visit https://help.sumologic.com/Manage/Security/Access-Keys#Create_an_access_key | `string` | n/a | yes | -| [sumologic\_environment](#input\_sumologic\_environment) | Enter au, ca, ch, de, eu, fed, jp, kr, us1 or us2. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security | `string` | n/a | yes | +| [sumologic\_environment](#input\_sumologic\_environment) | Enter au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security | `string` | n/a | yes | | [sumologic\_folder\_installation\_location](#input\_sumologic\_folder\_installation\_location) | Indicates where to install the app folder. Enter "Personal Folder" for installing in "Personal" folder and "Admin Recommended Folder" for installing in "Admin Recommended" folder. | `string` | `"Personal Folder"` | no | | [sumologic\_folder\_share\_with\_org](#input\_sumologic\_folder\_share\_with\_org) | Indicates if AWS Observability folder should be shared (view access) with entire organization. true to enable; false to disable. | `bool` | `true` | no | | [sumologic\_organization\_id](#input\_sumologic\_organization\_id) | You can find your org on the Preferences page in the Sumo Logic UI. For more information, see the Preferences Page topic. Your org ID will be used to configure the IAM Role for Sumo Logic AWS Sources."
For more details, visit https://help.sumologic.com/01Start-Here/05Customize-Your-Sumo-Logic-Experience/Preferences-Page | `string` | n/a | yes | diff --git a/aws-observability-terraform/examples/sourcemodule/overrideSources/field.tf b/aws-observability-terraform/examples/sourcemodule/overrideSources/field.tf index 0f60a4df..8b0c17d8 100644 --- a/aws-observability-terraform/examples/sourcemodule/overrideSources/field.tf +++ b/aws-observability-terraform/examples/sourcemodule/overrideSources/field.tf @@ -252,7 +252,7 @@ resource "sumologic_field_extraction_rule" "AwsObservabilityFieldExtractionRule" | where eventSource = "lambda.amazonaws.com" | json field=requestParameters "functionName", "resource" as functionname, resource nodrop | parse regex field=functionname "\w+:\w+:\S+:[\w-]+:\S+:\S+:(?[\S]+)$" nodrop - | parse field=resource "arn:aws:lambda:*:function:*" as f1, functionname2 nodrop + | parse field=resource "arn:*:lambda:*:function:*" as arn_part, f1, functionname2 nodrop | if (isEmpty(functionname), functionname2, functionname) as functionname | "aws/lambda" as namespace | tolowercase(functionname) as functionname @@ -302,9 +302,9 @@ resource "sumologic_field_extraction_rule" "AwsObservabilityRdsCloudTrailLogsFER | "aws/rds" as namespace | json field=requestParameters "dBInstanceIdentifier", "resourceName", "dBClusterIdentifier" as dBInstanceIdentifier1, resourceName, dBClusterIdentifier1 nodrop | json field=responseElements "dBInstanceIdentifier" as dBInstanceIdentifier3 nodrop | json field=responseElements "dBClusterIdentifier" as dBClusterIdentifier3 nodrop - | parse field=resourceName "arn:aws:rds:*:db:*" as f1, dBInstanceIdentifier2 nodrop | parse field=resourceName "arn:aws:rds:*:cluster:*" as f1, dBClusterIdentifier2 nodrop - | if (resourceName matches "arn:aws:rds:*:db:*", dBInstanceIdentifier2, if (!isEmpty(dBInstanceIdentifier1), dBInstanceIdentifier1, dBInstanceIdentifier3) ) as dBInstanceIdentifier - | if (resourceName matches "arn:aws:rds:*:cluster:*", dBClusterIdentifier2, if (!isEmpty(dBClusterIdentifier1), dBClusterIdentifier1, dBClusterIdentifier3) ) as dBClusterIdentifier + | parse field=resourceName "arn:*:rds:*:db:*" as arn_part, f1, dBInstanceIdentifier2 nodrop | parse field=resourceName "arn:*:rds:*:cluster:*" as arn_part, f1, dBClusterIdentifier2 nodrop + | if (resourceName matches "arn:*:rds:*:db:*", dBInstanceIdentifier2, if (!isEmpty(dBInstanceIdentifier1), dBInstanceIdentifier1, dBInstanceIdentifier3) ) as dBInstanceIdentifier + | if (resourceName matches "arn:*:rds:*:cluster:*", dBClusterIdentifier2, if (!isEmpty(dBClusterIdentifier1), dBClusterIdentifier1, dBClusterIdentifier3) ) as dBClusterIdentifier | if (isEmpty(dBInstanceIdentifier), dBClusterIdentifier, dBInstanceIdentifier) as dbidentifier | tolowercase(dbidentifier) as dbidentifier | fields region, namespace, dBInstanceIdentifier, dBClusterIdentifier, dbidentifier, accountid @@ -322,13 +322,13 @@ resource "sumologic_field_extraction_rule" "AwsObservabilitySNSCloudTrailLogsFER | where event_source = "sns.amazonaws.com" | json field=userIdentity "accountId", "type", "arn", "userName" as accountid, type, arn, username nodrop | parse field=arn ":assumed-role/*" as user nodrop - | parse field=arn "arn:aws:iam::*:*" as accountid, user nodrop + | parse field=arn "arn:*:iam::*:*" as arn_part, accountid, user nodrop | json field=requestParameters "topicArn", "name", "resourceArn", "subscriptionArn" as req_topic_arn, req_topic_name, resource_arn, subscription_arn nodrop | json field=responseElements "topicArn" as res_topic_arn nodrop | if (isBlank(req_topic_arn), res_topic_arn, req_topic_arn) as topic_arn | if (isBlank(topic_arn), resource_arn, topic_arn) as topic_arn - | parse field=topic_arn "arn:aws:sns:*:*:*" as region_temp, accountid_temp, topic_arn_name_temp nodrop - | parse field=subscription_arn "arn:aws:sns:*:*:*:*" as region_temp, accountid_temp, topic_arn_name_temp, arn_value_temp nodrop + | parse field=topic_arn "arn:*:sns:*:*:*" as arn_part, region_temp, accountid_temp, topic_arn_name_temp nodrop + | parse field=subscription_arn "arn:*:sns:*:*:*:*" as arn_part, region_temp, accountid_temp, topic_arn_name_temp, arn_value_temp nodrop | if (isBlank(req_topic_name), topic_arn_name_temp, req_topic_name) as topicname | if (isBlank(accountid), recipient_account_id, accountid) as accountid | "aws/sns" as namespace diff --git a/aws-observability-terraform/examples/sourcemodule/overrideSources/fields.sh b/aws-observability-terraform/examples/sourcemodule/overrideSources/fields.sh index 38616162..cd95c199 100644 --- a/aws-observability-terraform/examples/sourcemodule/overrideSources/fields.sh +++ b/aws-observability-terraform/examples/sourcemodule/overrideSources/fields.sh @@ -2,7 +2,7 @@ # ---------------------------------------------------------------------------------------------------------------------------------------------------------- # This script imports the existing fields and FERs (required by aws observability solution) if field(s) and FER(s) are already present in the user's Sumo Logic account. -# For SUMOLOGIC_ENV, provide one from the list : au, ca, ch, de, eu, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" +# For SUMOLOGIC_ENV, provide one from the list : au, ca, ch, de, eu, esc, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" # Before using this script, set following environment variables using below commands: # export SUMOLOGIC_ENV="" # export SUMOLOGIC_ACCESSID="" @@ -10,8 +10,9 @@ #----------------------------------------------------------------------------------------------------------------------------------------------------------- # Validate Sumo Logic environment/deployment. -if ! [[ "$SUMOLOGIC_ENV" =~ ^(au|ca|ch|de|eu|jp|us2|fed|kr|us1)$ ]]; then - echo "$SUMOLOGIC_ENV is invalid Sumo Logic deployment. For SUMOLOGIC_ENV, provide one from list : au, ca, ch, de, eu, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" + +if ! [[ "$SUMOLOGIC_ENV" =~ ^(au|ca|ch|de|eu|esc|jp|us2|kr|fed|us1)$ ]]; then + echo "$SUMOLOGIC_ENV is invalid Sumo Logic deployment. For SUMOLOGIC_ENV, provide one from list : au, ca, ch, de, eu, esc, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" exit 1 fi diff --git a/aws-observability-terraform/examples/sourcemodule/overrideSources/main.auto.tfvars b/aws-observability-terraform/examples/sourcemodule/overrideSources/main.auto.tfvars index 0e2a4cb2..08a5c1bd 100644 --- a/aws-observability-terraform/examples/sourcemodule/overrideSources/main.auto.tfvars +++ b/aws-observability-terraform/examples/sourcemodule/overrideSources/main.auto.tfvars @@ -1,7 +1,7 @@ ####### BELOW ARE REQUIRED PARAMETERS FOR TERRAFORM SCRIPT ####### # Visit - https://help.sumologic.com/Solutions/AWS_Observability_Solution/03_Set_Up_the_AWS_Observability_Solution#sumo-logic-access-configuration-required -sumologic_environment = "" # Please replace (including brackets) with au, ca, ch, de, eu, jp, us2, kr, fed or us1. +sumologic_environment = "" # Please replace (including brackets) with au, ca, ch, de, eu, esc, jp, us2, kr, fed or us1. sumologic_access_id = "" sumologic_access_key = "" sumologic_organization_id = "" # Please replace (including brackets) with your Sumo Logic Organization ID. diff --git a/aws-observability-terraform/examples/sourcemodule/overrideSources/variables.tf b/aws-observability-terraform/examples/sourcemodule/overrideSources/variables.tf index 802ce78c..9a20343b 100644 --- a/aws-observability-terraform/examples/sourcemodule/overrideSources/variables.tf +++ b/aws-observability-terraform/examples/sourcemodule/overrideSources/variables.tf @@ -1,6 +1,6 @@ variable "sumologic_environment" { type = string - description = "Enter au, ca, ch, de, eu, fed, jp, kr, us1 or us2. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" + description = "Enter au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" validation { condition = contains([ @@ -9,12 +9,13 @@ variable "sumologic_environment" { "ch", "de", "eu", + "esc", "fed", "jp", "kr", "us1", "us2"], var.sumologic_environment) - error_message = "The value must be one of au, ca, ch, de, eu, fed, jp, kr, us1 or us2." + error_message = "The value must be one of au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2." } } @@ -90,7 +91,16 @@ variable "sumo_api_endpoint" { validation { condition = contains([ "https://api.au.sumologic.com/api/", - "https://api.ca.sumologic.com/api/", "https://api.ch.sumologic.com/api/", "https://api.de.sumologic.com/api/", "https://api.eu.sumologic.com/api/", "https://api.fed.sumologic.com/api/", "https://api.jp.sumologic.com/api/", "https://api.sumologic.com/api/", "https://api.us2.sumologic.com/api/", "https://api.kr.sumologic.com/api/"], var.sumo_api_endpoint) + "https://api.ca.sumologic.com/api/", + "https://api.ch.sumologic.com/api/", + "https://api.de.sumologic.com/api/", + "https://api.eu.sumologic.com/api/", + "https://api.esc.sumologic.com/api/", + "https://api.fed.sumologic.com/api/", + "https://api.jp.sumologic.com/api/", + "https://api.sumologic.com/api/", + "https://api.us2.sumologic.com/api/", + "https://api.kr.sumologic.com/api/"], var.sumo_api_endpoint) error_message = "Argument \"sumo_api_endpoint\" must be one of the values specified at https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security." } } diff --git a/aws-observability-terraform/examples/sourcemodule/testSource/README.md b/aws-observability-terraform/examples/sourcemodule/testSource/README.md index 10e01e7e..396b75a3 100644 --- a/aws-observability-terraform/examples/sourcemodule/testSource/README.md +++ b/aws-observability-terraform/examples/sourcemodule/testSource/README.md @@ -92,7 +92,7 @@ | [sumo\_api\_endpoint](#input\_sumo\_api\_endpoint) | n/a | `string` | n/a | yes | | [sumologic\_access\_id](#input\_sumologic\_access\_id) | Sumo Logic Access ID. Visit https://help.sumologic.com/Manage/Security/Access-Keys#Create_an_access_key | `string` | n/a | yes | | [sumologic\_access\_key](#input\_sumologic\_access\_key) | Sumo Logic Access Key. Visit https://help.sumologic.com/Manage/Security/Access-Keys#Create_an_access_key | `string` | n/a | yes | -| [sumologic\_environment](#input\_sumologic\_environment) | Enter au, ca, ch, de, eu, fed, jp, kr, us1 or us2. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security | `string` | n/a | yes | +| [sumologic\_environment](#input\_sumologic\_environment) | Enter au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security | `string` | n/a | yes | | [sumologic\_folder\_installation\_location](#input\_sumologic\_folder\_installation\_location) | Indicates where to install the app folder. Enter "Personal Folder" for installing in "Personal" folder and "Admin Recommended Folder" for installing in "Admin Recommended" folder. | `string` | `"Personal Folder"` | no | | [sumologic\_folder\_share\_with\_org](#input\_sumologic\_folder\_share\_with\_org) | Indicates if AWS Observability folder should be shared (view access) with entire organization. true to enable; false to disable. | `bool` | `true` | no | | [sumologic\_organization\_id](#input\_sumologic\_organization\_id) | You can find your org on the Preferences page in the Sumo Logic UI. For more information, see the Preferences Page topic. Your org ID will be used to configure the IAM Role for Sumo Logic AWS Sources."
For more details, visit https://help.sumologic.com/01Start-Here/05Customize-Your-Sumo-Logic-Experience/Preferences-Page | `string` | n/a | yes | diff --git a/aws-observability-terraform/examples/sourcemodule/testSource/field.tf b/aws-observability-terraform/examples/sourcemodule/testSource/field.tf index 11b5838f..eba7fafa 100644 --- a/aws-observability-terraform/examples/sourcemodule/testSource/field.tf +++ b/aws-observability-terraform/examples/sourcemodule/testSource/field.tf @@ -246,7 +246,7 @@ resource "sumologic_field_extraction_rule" "AwsObservabilityFieldExtractionRule" | where eventSource = "lambda.amazonaws.com" | json field=requestParameters "functionName", "resource" as functionname, resource nodrop | parse regex field=functionname "\w+:\w+:\S+:[\w-]+:\S+:\S+:(?[\S]+)$" nodrop - | parse field=resource "arn:aws:lambda:*:function:*" as f1, functionname2 nodrop + | parse field=resource "arn:*:lambda:*:function:*" as arn_part, f1, functionname2 nodrop | if (isEmpty(functionname), functionname2, functionname) as functionname | "aws/lambda" as namespace | tolowercase(functionname) as functionname @@ -296,9 +296,9 @@ resource "sumologic_field_extraction_rule" "AwsObservabilityRdsCloudTrailLogsFER | "aws/rds" as namespace | json field=requestParameters "dBInstanceIdentifier", "resourceName", "dBClusterIdentifier" as dBInstanceIdentifier1, resourceName, dBClusterIdentifier1 nodrop | json field=responseElements "dBInstanceIdentifier" as dBInstanceIdentifier3 nodrop | json field=responseElements "dBClusterIdentifier" as dBClusterIdentifier3 nodrop - | parse field=resourceName "arn:aws:rds:*:db:*" as f1, dBInstanceIdentifier2 nodrop | parse field=resourceName "arn:aws:rds:*:cluster:*" as f1, dBClusterIdentifier2 nodrop - | if (resourceName matches "arn:aws:rds:*:db:*", dBInstanceIdentifier2, if (!isEmpty(dBInstanceIdentifier1), dBInstanceIdentifier1, dBInstanceIdentifier3) ) as dBInstanceIdentifier - | if (resourceName matches "arn:aws:rds:*:cluster:*", dBClusterIdentifier2, if (!isEmpty(dBClusterIdentifier1), dBClusterIdentifier1, dBClusterIdentifier3) ) as dBClusterIdentifier + | parse field=resourceName "arn:*:rds:*:db:*" as arn_part, f1, dBInstanceIdentifier2 nodrop | parse field=resourceName "arn:*:rds:*:cluster:*" as arn_part, f1, dBClusterIdentifier2 nodrop + | if (resourceName matches "arn:*:rds:*:db:*", dBInstanceIdentifier2, if (!isEmpty(dBInstanceIdentifier1), dBInstanceIdentifier1, dBInstanceIdentifier3) ) as dBInstanceIdentifier + | if (resourceName matches "arn:*:rds:*:cluster:*", dBClusterIdentifier2, if (!isEmpty(dBClusterIdentifier1), dBClusterIdentifier1, dBClusterIdentifier3) ) as dBClusterIdentifier | if (isEmpty(dBInstanceIdentifier), dBClusterIdentifier, dBInstanceIdentifier) as dbidentifier | tolowercase(dbidentifier) as dbidentifier | fields region, namespace, dBInstanceIdentifier, dBClusterIdentifier, dbidentifier, accountid @@ -316,13 +316,13 @@ resource "sumologic_field_extraction_rule" "AwsObservabilitySNSCloudTrailLogsFER | where event_source = "sns.amazonaws.com" | json field=userIdentity "accountId", "type", "arn", "userName" as accountid, type, arn, username nodrop | parse field=arn ":assumed-role/*" as user nodrop - | parse field=arn "arn:aws:iam::*:*" as accountid, user nodrop + | parse field=arn "arn:*:iam::*:*" as arn_part, accountid, user nodrop | json field=requestParameters "topicArn", "name", "resourceArn", "subscriptionArn" as req_topic_arn, req_topic_name, resource_arn, subscription_arn nodrop | json field=responseElements "topicArn" as res_topic_arn nodrop | if (isBlank(req_topic_arn), res_topic_arn, req_topic_arn) as topic_arn | if (isBlank(topic_arn), resource_arn, topic_arn) as topic_arn - | parse field=topic_arn "arn:aws:sns:*:*:*" as region_temp, accountid_temp, topic_arn_name_temp nodrop - | parse field=subscription_arn "arn:aws:sns:*:*:*:*" as region_temp, accountid_temp, topic_arn_name_temp, arn_value_temp nodrop + | parse field=topic_arn "arn:*:sns:*:*:*" as arn_part, region_temp, accountid_temp, topic_arn_name_temp nodrop + | parse field=subscription_arn "arn:*:sns:*:*:*:*" as arn_part, region_temp, accountid_temp, topic_arn_name_temp, arn_value_temp nodrop | if (isBlank(req_topic_name), topic_arn_name_temp, req_topic_name) as topicname | if (isBlank(accountid), recipient_account_id, accountid) as accountid | "aws/sns" as namespace diff --git a/aws-observability-terraform/examples/sourcemodule/testSource/fields.sh b/aws-observability-terraform/examples/sourcemodule/testSource/fields.sh index 38616162..a85abd6e 100644 --- a/aws-observability-terraform/examples/sourcemodule/testSource/fields.sh +++ b/aws-observability-terraform/examples/sourcemodule/testSource/fields.sh @@ -2,7 +2,7 @@ # ---------------------------------------------------------------------------------------------------------------------------------------------------------- # This script imports the existing fields and FERs (required by aws observability solution) if field(s) and FER(s) are already present in the user's Sumo Logic account. -# For SUMOLOGIC_ENV, provide one from the list : au, ca, ch, de, eu, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" +# For SUMOLOGIC_ENV, provide one from the list : au, ca, ch, de, eu, esc, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" # Before using this script, set following environment variables using below commands: # export SUMOLOGIC_ENV="" # export SUMOLOGIC_ACCESSID="" @@ -10,8 +10,8 @@ #----------------------------------------------------------------------------------------------------------------------------------------------------------- # Validate Sumo Logic environment/deployment. -if ! [[ "$SUMOLOGIC_ENV" =~ ^(au|ca|ch|de|eu|jp|us2|fed|kr|us1)$ ]]; then - echo "$SUMOLOGIC_ENV is invalid Sumo Logic deployment. For SUMOLOGIC_ENV, provide one from list : au, ca, ch, de, eu, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" +if ! [[ "$SUMOLOGIC_ENV" =~ ^(au|ca|ch|de|eu|esc|jp|us2|kr|fed|us1)$ ]]; then + echo "$SUMOLOGIC_ENV is invalid Sumo Logic deployment. For SUMOLOGIC_ENV, provide one from list : au, ca, ch, de, eu, esc, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" exit 1 fi diff --git a/aws-observability-terraform/examples/sourcemodule/testSource/main.auto.tfvars b/aws-observability-terraform/examples/sourcemodule/testSource/main.auto.tfvars index 0a951661..d531f95a 100644 --- a/aws-observability-terraform/examples/sourcemodule/testSource/main.auto.tfvars +++ b/aws-observability-terraform/examples/sourcemodule/testSource/main.auto.tfvars @@ -1,7 +1,7 @@ ####### BELOW ARE REQUIRED PARAMETERS FOR TERRAFORM SCRIPT ####### # Visit - https://help.sumologic.com/Solutions/AWS_Observability_Solution/03_Set_Up_the_AWS_Observability_Solution#sumo-logic-access-configuration-required -sumologic_environment = "" # Please replace (including brackets) with au, ca, ch, de, eu, jp, us2, kr, fed or us1. +sumologic_environment = "" # Please replace (including brackets) with au, ca, ch, de, eu, esc, jp, us2, kr, fed or us1. sumologic_access_id = "" sumologic_access_key = "" sumologic_organization_id = "" # Please replace (including brackets) with your Sumo Logic Organization ID. diff --git a/aws-observability-terraform/examples/sourcemodule/testSource/variables.tf b/aws-observability-terraform/examples/sourcemodule/testSource/variables.tf index e0039f84..80e682c5 100644 --- a/aws-observability-terraform/examples/sourcemodule/testSource/variables.tf +++ b/aws-observability-terraform/examples/sourcemodule/testSource/variables.tf @@ -1,6 +1,6 @@ variable "sumologic_environment" { type = string - description = "Enter au, ca, ch, de, eu, fed, jp, kr, us1 or us2. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" + description = "Enter au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" validation { condition = contains([ @@ -9,12 +9,13 @@ variable "sumologic_environment" { "ch", "de", "eu", + "esc", "fed", "jp", "kr", "us1", "us2"], var.sumologic_environment) - error_message = "The value must be one of au, ca, ch, de, eu, fed, jp, kr, us1 or us2." + error_message = "The value must be one of au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2." } } @@ -90,7 +91,16 @@ variable "sumo_api_endpoint" { validation { condition = contains([ "https://api.au.sumologic.com/api/", - "https://api.ca.sumologic.com/api/", "https://api.ch.sumologic.com/api/", "https://api.de.sumologic.com/api/", "https://api.eu.sumologic.com/api/", "https://api.fed.sumologic.com/api/", "https://api.jp.sumologic.com/api/", "https://api.sumologic.com/api/", "https://api.us2.sumologic.com/api/", "https://api.kr.sumologic.com/api/"], var.sumo_api_endpoint) + "https://api.ca.sumologic.com/api/", + "https://api.ch.sumologic.com/api/", + "https://api.de.sumologic.com/api/", + "https://api.eu.sumologic.com/api/", + "https://api.esc.sumologic.com/api/", + "https://api.fed.sumologic.com/api/", + "https://api.jp.sumologic.com/api/", + "https://api.sumologic.com/api/", + "https://api.us2.sumologic.com/api/", + "https://api.kr.sumologic.com/api/"], var.sumo_api_endpoint) error_message = "Argument \"sumo_api_endpoint\" must be one of the values specified at https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security." } } diff --git a/aws-observability-terraform/fields.sh b/aws-observability-terraform/fields.sh index dbad5144..c0997f21 100644 --- a/aws-observability-terraform/fields.sh +++ b/aws-observability-terraform/fields.sh @@ -10,6 +10,7 @@ #----------------------------------------------------------------------------------------------------------------------------------------------------------- # Validate Sumo Logic environment/deployment. + if ! [[ "$SUMOLOGIC_ENV" =~ ^(au|ca|ch|de|eu|jp|us2|fed|kr|us1)$ ]]; then echo "$SUMOLOGIC_ENV is invalid Sumo Logic deployment. For SUMOLOGIC_ENV, provide one from list : au, ca, ch, de, eu, fed, jp, kr, us1 or us2. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" exit 1 diff --git a/aws-observability-terraform/go.mod b/aws-observability-terraform/go.mod index 424b9219..c0be3c9c 100644 --- a/aws-observability-terraform/go.mod +++ b/aws-observability-terraform/go.mod @@ -3,44 +3,44 @@ module github.com/SumoLogic/sumologic-solution-templates/aws-observability-terra go 1.25.0 require ( - github.com/aws/aws-sdk-go-v2 v1.36.6 + github.com/aws/aws-sdk-go-v2 v1.41.6 github.com/aws/aws-sdk-go-v2/config v1.29.18 github.com/aws/aws-sdk-go-v2/service/cloudformation v1.61.1 github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.49.4 github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.45.4 github.com/aws/aws-sdk-go-v2/service/firehose v1.37.8 github.com/aws/aws-sdk-go-v2/service/iam v1.43.1 - github.com/aws/aws-sdk-go-v2/service/lambda v1.73.0 - github.com/aws/aws-sdk-go-v2/service/s3 v1.84.1 + github.com/aws/aws-sdk-go-v2/service/lambda v1.89.1 + github.com/aws/aws-sdk-go-v2/service/s3 v1.99.1 github.com/aws/aws-sdk-go-v2/service/sns v1.34.8 github.com/gruntwork-io/terratest v0.50.0 - github.com/stretchr/testify v1.10.0 + github.com/stretchr/testify v1.11.1 ) require ( - filippo.io/edwards25519 v1.1.0 // indirect + filippo.io/edwards25519 v1.2.0 // indirect github.com/agext/levenshtein v1.2.3 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.9 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.71 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.33 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.85 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.37 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.37 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.22 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.22 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.37 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.23 // indirect github.com/aws/aws-sdk-go-v2/service/acm v1.33.1 // indirect github.com/aws/aws-sdk-go-v2/service/autoscaling v1.54.1 // indirect - github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.53.1 // indirect + github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.69.1 // indirect github.com/aws/aws-sdk-go-v2/service/dynamodb v1.44.1 // indirect github.com/aws/aws-sdk-go-v2/service/ec2 v1.234.0 // indirect github.com/aws/aws-sdk-go-v2/service/ecr v1.46.0 // indirect github.com/aws/aws-sdk-go-v2/service/ecs v1.60.1 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.5 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.8 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.14 // indirect github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.18 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.18 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.18 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.22 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.22 // indirect github.com/aws/aws-sdk-go-v2/service/kms v1.41.3 // indirect github.com/aws/aws-sdk-go-v2/service/rds v1.99.2 // indirect github.com/aws/aws-sdk-go-v2/service/route53 v1.53.1 // indirect @@ -50,7 +50,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.25.6 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.4 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.34.1 // indirect - github.com/aws/smithy-go v1.22.4 // indirect + github.com/aws/smithy-go v1.25.0 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/boombuler/barcode v1.1.0 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect @@ -79,7 +79,7 @@ require ( github.com/hashicorp/terraform-json v0.25.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect - github.com/jackc/pgx/v5 v5.7.5 // indirect + github.com/jackc/pgx/v5 v5.9.2 // indirect github.com/jackc/puddle/v2 v2.2.2 // indirect github.com/jinzhu/copier v0.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect @@ -90,7 +90,7 @@ require ( github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect - github.com/moby/spdystream v0.5.0 // indirect + github.com/moby/spdystream v0.5.1 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect diff --git a/aws-observability-terraform/go.sum b/aws-observability-terraform/go.sum index dc7f0b79..21f3434c 100644 --- a/aws-observability-terraform/go.sum +++ b/aws-observability-terraform/go.sum @@ -1,15 +1,15 @@ -filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= -filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +filippo.io/edwards25519 v1.2.0 h1:crnVqOiS4jqYleHd9vaKZ+HKtHfllngJIiOpNpoJsjo= +filippo.io/edwards25519 v1.2.0/go.mod h1:xzAOLCNug/yB62zG1bQ8uziwrIqIuxhctzJT18Q77mc= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/aws/aws-sdk-go-v2 v1.36.6 h1:zJqGjVbRdTPojeCGWn5IR5pbJwSQSBh5RWFTQcEQGdU= -github.com/aws/aws-sdk-go-v2 v1.36.6/go.mod h1:EYrzvCCN9CMUTa5+6lf6MM4tq3Zjp8UhSGR/cBsjai0= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11 h1:12SpdwU8Djs+YGklkinSSlcrPyj3H4VifVsKf78KbwA= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11/go.mod h1:dd+Lkp6YmMryke+qxW/VnKyhMBDTYP41Q2Bb+6gNZgY= +github.com/aws/aws-sdk-go-v2 v1.41.6 h1:1AX0AthnBQzMx1vbmir3Y4WsnJgiydmnJjiLu+LvXOg= +github.com/aws/aws-sdk-go-v2 v1.41.6/go.mod h1:dy0UzBIfwSeot4grGvY1AqFWN5zgziMmWGzysDnHFcQ= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.9 h1:adBsCIIpLbLmYnkQU+nAChU5yhVTvu5PerROm+/Kq2A= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.9/go.mod h1:uOYhgfgThm/ZyAuJGNQ5YgNyOlYfqnGpTHXvk3cpykg= github.com/aws/aws-sdk-go-v2/config v1.29.18 h1:x4T1GRPnqKV8HMJOMtNktbpQMl3bIsfx8KbqmveUO2I= github.com/aws/aws-sdk-go-v2/config v1.29.18/go.mod h1:bvz8oXugIsH8K7HLhBv06vDqnFv3NsGDt2Znpk7zmOU= github.com/aws/aws-sdk-go-v2/credentials v1.17.71 h1:r2w4mQWnrTMJjOyIsZtGp3R3XGY3nqHn8C26C2lQWgA= @@ -18,14 +18,14 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.33 h1:D9ixiWSG4lyUBL2DDNK924 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.33/go.mod h1:caS/m4DI+cij2paz3rtProRBI4s/+TCiWoaWZuQ9010= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.85 h1:AfpstoiaenxGSCUheWiicgZE5XXS5Fi4CcQ4PA/x+Qw= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.85/go.mod h1:HxiF0Fd6WHWjdjOffLkCauq7JqzWqMMq0iUVLS7cPQc= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.37 h1:osMWfm/sC/L4tvEdQ65Gri5ZZDCUpuYJZbTTDrsn4I0= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.37/go.mod h1:ZV2/1fbjOPr4G4v38G3Ww5TBT4+hmsK45s/rxu1fGy0= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.37 h1:v+X21AvTb2wZ+ycg1gx+orkB/9U6L7AOp93R7qYxsxM= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.37/go.mod h1:G0uM1kyssELxmJ2VZEfG0q2npObR3BAkF3c1VsfVnfs= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.22 h1:GmLa5Kw1ESqtFpXsx5MmC84QWa/ZrLZvlJGa2y+4kcQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.22/go.mod h1:6sW9iWm9DK9YRpRGga/qzrzNLgKpT2cIxb7Vo2eNOp0= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.22 h1:dY4kWZiSaXIzxnKlj17nHnBcXXBfac6UlsAx2qL6XrU= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.22/go.mod h1:KIpEUx0JuRZLO7U6cbV204cWAEco2iC3l061IxlwLtI= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.37 h1:XTZZ0I3SZUHAtBLBU6395ad+VOblE0DwQP6MuaNeics= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.37/go.mod h1:Pi6ksbniAWVwu2S8pEzcYPyhUkAcLaufxN7PfAUQjBk= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.23 h1:FPXsW9+gMuIeKmz7j6ENWcWtBGTe1kH8r9thNt5Uxx4= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.23/go.mod h1:7J8iGMdRKk6lw2C+cMIphgAnT8uTwBwNOsGkyOCm80U= github.com/aws/aws-sdk-go-v2/service/acm v1.33.1 h1:VAAadBIWgoYoS0tRWkghu1E2LfSsKQw8m/sOkdF1D3E= github.com/aws/aws-sdk-go-v2/service/acm v1.33.1/go.mod h1:eq3JsAPGHsNfhRbPoVRUVDxtQFynlnFcDXzxFMEeOdQ= github.com/aws/aws-sdk-go-v2/service/autoscaling v1.54.1 h1:DsCwHidm3y19FV7h/UEylDDxiv+PFoztdMTToYkdMn8= @@ -36,8 +36,8 @@ github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.49.4 h1:A0rvb7JdUw0YgjNrVbs3Z github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.49.4/go.mod h1:XaaXDmDC31kF9fEv0SiFr0g1WQ4dBMGaJvbl80kBxd8= github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.45.4 h1:0uWgUHILgrSF/Gx9Of+Sx6r97A1L9tx0ghTsdhxwcN8= github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.45.4/go.mod h1:pad4tIMdDzdRqCPkJ1Oxlf1J8NRo0Tud2OY11gsBEOo= -github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.53.1 h1:RXmXjIIZEb37O9INIV1SXNya5U8xj/6tDWtKQitpvNQ= -github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.53.1/go.mod h1:sJpy0akDxor5AnHCgbRP+qUmwb8HPsyCzKuZUFqz+sQ= +github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.69.1 h1:2ANEV0YkO/NlWxVmHBui7w7NE3lHW2sJji+OtjKJwck= +github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.69.1/go.mod h1:O7cQtpXZSk+P59gPFZIpcMpKwLk5d9zabFpV8fw68RM= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.44.1 h1:UoEWyfuQ/yNOuDENk5nn+AgNCH2Y5yzQEv6YbTyhIV8= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.44.1/go.mod h1:K1I47BjiTRX00pBxfJLYK80QFRcf6blev2wbjgC5Cyc= github.com/aws/aws-sdk-go-v2/service/ec2 v1.234.0 h1:CwPCXL7/lBUFtgm+8P3V/eRi25Gu8UuvCrevjxJJrNI= @@ -50,26 +50,26 @@ github.com/aws/aws-sdk-go-v2/service/firehose v1.37.8 h1:JItNmjKGPoH5YwgIA5B37wd github.com/aws/aws-sdk-go-v2/service/firehose v1.37.8/go.mod h1:xdxhXGIsH5upngcOV+G1CEgveutXEFYJvWN9eUsgogA= github.com/aws/aws-sdk-go-v2/service/iam v1.43.1 h1:xpPZZpbmqIJse9OH+Kf/bW/n+bRe0BtE/LtHvBJYcbc= github.com/aws/aws-sdk-go-v2/service/iam v1.43.1/go.mod h1:/IEkOg5Gkv2HFxOb3Prs84xpRyxO9P/9Zow/clWl84Q= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 h1:CXV68E2dNqhuynZJPB80bhPQwAKqBWVer887figW6Jc= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4/go.mod h1:/xFi9KtvBXP97ppCz1TAEvU1Uf66qvid89rbem3wCzQ= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.5 h1:M5/B8JUaCI8+9QD+u3S/f4YHpvqE9RpSkV3rf0Iks2w= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.5/go.mod h1:Bktzci1bwdbpuLiu3AOksiNPMl/LLKmX1TWmqp2xbvs= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.8 h1:HtOTYcbVcGABLOVuPYaIihj6IlkqubBwFj10K5fxRek= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.8/go.mod h1:VsK9abqQeGlzPgUr+isNWzPlK2vKe9INMLWnY65f5Xs= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.14 h1:xnvDEnw+pnj5mctWiYuFbigrEzSm35x7k4KS/ZkCANg= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.14/go.mod h1:yS5rNogD8e0Wu9+l3MUwr6eENBzEeGejvINpN5PAYfY= github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.18 h1:QnGWwpTiazs1Y74RwA8VUfAtKuJQbnQ98DBFnSywj0s= github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.18/go.mod h1:gWOI6Vb0Bbmsi0Ejvtt3RkwKpdoa/SOYTVUlzqYPRLc= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.18 h1:vvbXsA2TVO80/KT7ZqCbx934dt6PY+vQ8hZpUZ/cpYg= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.18/go.mod h1:m2JJHledjBGNMsLOF1g9gbAxprzq3KjC8e4lxtn+eWg= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.18 h1:OS2e0SKqsU2LiJPqL8u9x41tKc6MMEHrWjLVLn3oysg= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.18/go.mod h1:+Yrk+MDGzlNGxCXieljNeWpoZTCQUQVL+Jk9hGGJ8qM= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.22 h1:PUmZeJU6Y1Lbvt9WFuJ0ugUK2xn6hIWUBBbKuOWF30s= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.22/go.mod h1:nO6egFBoAaoXze24a2C0NjQCvdpk8OueRoYimvEB9jo= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.22 h1:SE+aQ4DEqG53RRCAIHlCf//B2ycxGH7jFkpnAh/kKPM= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.22/go.mod h1:ES3ynECd7fYeJIL6+oax+uIEljmfps0S70BaQzbMd/o= github.com/aws/aws-sdk-go-v2/service/kms v1.41.3 h1:P0mjq/4mqTRA8SlS/4jL946RBW287kkKI/fazTTDJ3E= github.com/aws/aws-sdk-go-v2/service/kms v1.41.3/go.mod h1:79gw7fH6dqzJz3a5qwDnQv5GDPs8b6eJIb9hJ+/c/YU= -github.com/aws/aws-sdk-go-v2/service/lambda v1.73.0 h1:5rog6aSAcNved2uO45dU+Xeag3UJKfhLJlQi9tjz7h4= -github.com/aws/aws-sdk-go-v2/service/lambda v1.73.0/go.mod h1:JE2aLHT2ZIj9Ep5mBJ9jWUnrce6twtmVsWIbuGFL4xg= +github.com/aws/aws-sdk-go-v2/service/lambda v1.89.1 h1:JxHLwNK5mIKsh2Q0APTSijdzkk5ccI4gyvYdar1JU/0= +github.com/aws/aws-sdk-go-v2/service/lambda v1.89.1/go.mod h1:7qoh/MlWG5QCnZwq9bvdXomEAkmumayXcjEjIemIV7U= github.com/aws/aws-sdk-go-v2/service/rds v1.99.2 h1:I0T37QJHzU1Ufv5gofYr/57Usw2Z7xi0I0tqFZlaLaM= github.com/aws/aws-sdk-go-v2/service/rds v1.99.2/go.mod h1:uTuAFKclKRNinQJVcLAyiqpTkF/QW07puSr8hs9XHkg= github.com/aws/aws-sdk-go-v2/service/route53 v1.53.1 h1:R3nSX1hguRy6MnknHiepSvqnnL8ansFwK2hidPesAYU= github.com/aws/aws-sdk-go-v2/service/route53 v1.53.1/go.mod h1:fmSiB4OAghn85lQgk7XN9l9bpFg5Bm1v3HuaXKytPEw= -github.com/aws/aws-sdk-go-v2/service/s3 v1.84.1 h1:RkHXU9jP0DptGy7qKI8CBGsUJruWz0v5IgwBa2DwWcU= -github.com/aws/aws-sdk-go-v2/service/s3 v1.84.1/go.mod h1:3xAOf7tdKF+qbb+XpU+EPhNXAdun3Lu1RcDrj8KC24I= +github.com/aws/aws-sdk-go-v2/service/s3 v1.99.1 h1:kU/eBN5+MWNo/LcbNa4hWDdN76hdcd7hocU5kvu7IsU= +github.com/aws/aws-sdk-go-v2/service/s3 v1.99.1/go.mod h1:Fw9aqhJicIVee1VytBBjH+l+5ov6/PhbtIK/u3rt/ls= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.8 h1:HD6R8K10gPbN9CNqRDOs42QombXlYeLOr4KkIxe2lQs= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.35.8/go.mod h1:x66GdH8qjYTr6Kb4ik38Ewl6moLsg8igbceNsmxVxeA= github.com/aws/aws-sdk-go-v2/service/sns v1.34.8 h1:8o7NvBkjmMaX1Cv4vztOx83aFDV6uiU8VM9pTVochng= @@ -84,8 +84,8 @@ github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.4 h1:OV/pxyXh+eMA0TExHEC4jyWd github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.4/go.mod h1:8Mm5VGYwtm+r305FfPSuc+aFkrypeylGYhFim6XEPoc= github.com/aws/aws-sdk-go-v2/service/sts v1.34.1 h1:aUrLQwJfZtwv3/ZNG2xRtEen+NqI3iesuacjP51Mv1s= github.com/aws/aws-sdk-go-v2/service/sts v1.34.1/go.mod h1:3wFBZKoWnX3r+Sm7in79i54fBmNfwhdNdQuscCw7QIk= -github.com/aws/smithy-go v1.22.4 h1:uqXzVZNuNexwc/xrh6Tb56u89WDlJY6HS+KC0S4QSjw= -github.com/aws/smithy-go v1.22.4/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= +github.com/aws/smithy-go v1.25.0 h1:Sz/XJ64rwuiKtB6j98nDIPyYrV1nVNJ4YU74gttcl5U= +github.com/aws/smithy-go v1.25.0/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= @@ -156,8 +156,8 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.7.5 h1:JHGfMnQY+IEtGM63d+NGMjoRpysB2JBwDr5fsngwmJs= -github.com/jackc/pgx/v5 v5.7.5/go.mod h1:aruU7o91Tc2q2cFp5h4uP3f6ztExVpyVv88Xl/8Vl8M= +github.com/jackc/pgx/v5 v5.9.2 h1:3ZhOzMWnR4yJ+RW1XImIPsD1aNSz4T4fyP7zlQb56hw= +github.com/jackc/pgx/v5 v5.9.2/go.mod h1:mal1tBGAFfLHvZzaYh77YS/eC6IX9OWbRV1QIIM0Jn4= github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo= github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jinzhu/copier v0.4.0 h1:w3ciUoD19shMCRargcpm0cm91ytaBhDvuRpz1ODO/U8= @@ -184,8 +184,8 @@ github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJ github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= -github.com/moby/spdystream v0.5.0 h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU= -github.com/moby/spdystream v0.5.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= +github.com/moby/spdystream v0.5.1 h1:9sNYeYZUcci9R6/w7KDaFWEWeV4LStVG78Mpyq/Zm/Y= +github.com/moby/spdystream v0.5.1/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -217,8 +217,8 @@ github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/tmccombs/hcl2json v0.6.7 h1:RYKTs4kd/gzRsEiv7J3M2WQ7TYRYZVc+0H0pZdERkxA= github.com/tmccombs/hcl2json v0.6.7/go.mod h1:lJgBOOGDpbhjvdG2dLaWsqB4KBzul2HytfDTS3H465o= github.com/ulikunitz/xz v0.5.15 h1:9DNdB5s+SgV3bQ2ApL10xRc35ck0DuIX/isZvIk+ubY= diff --git a/aws-observability-terraform/source-module/README.md b/aws-observability-terraform/source-module/README.md index afd32061..89dee086 100644 --- a/aws-observability-terraform/source-module/README.md +++ b/aws-observability-terraform/source-module/README.md @@ -87,7 +87,7 @@ | [collect\_elb\_logs](#input\_collect\_elb\_logs) | Create a Sumo Logic ALB Logs Source.
You have the following options:
true - to ingest load balancer logs into Sumo Logic. Creates a Sumo Logic Log Source that collects application load balancer logs from an existing bucket or a new bucket.
If true, please configure \"elb\_source\_details\" with configuration information including the bucket name and path expression to ingest load balancer logs.
false - you are already ingesting load balancer logs into Sumo Logic. | `bool` | `true` | no | | [elb\_log\_source\_url](#input\_elb\_log\_source\_url) | Required if you are already collecting ALB logs. Provide the existing Sumo Logic ALB Source API URL. The account, accountid, and region fields will be added to the Source. For information on how to determine the URL, see [View or Download Source JSON Configuration](https://help.sumologic.com/03Send-Data/Sources/03Use-JSON-to-Configure-Sources/Local-Configuration-File-Management/View-or-Download-Source-JSON-Configuration). | `string` | `""` | no | | [elb\_source\_details](#input\_elb\_source\_details) | Provide details for the Sumo Logic ALB source. If not provided, then defaults will be used.
To enable collection of application load balancer logs, set collect\_elb\_logs to true and provide configuration information for the bucket.
If create\_bucket is false, provide a name of an existing S3 bucket where you would like to store loadbalancer logs. If this is empty, a new bucket will be created in the region.
If create\_bucket is true, the script creates a bucket, the name of the bucket has to be unique; this is achieved internally by generating a random-id and then post-fixing it to the “aws-observability-” string.
path\_expression - This is required in case the above existing bucket is already configured to receive ALB access logs. If this is blank, Sumo Logic will store logs in the path expression: *elasticloadbalancing/AWSLogs/*/elasticloadbalancing/*/* |
object({
source_name = string
source_category = string
description = string
bucket_details = object({
create_bucket = bool
bucket_name = string
path_expression = string
force_destroy_bucket = bool
})
fields = map(string)
})
|
{
"bucket_details": {
"bucket_name": "aws-observability-random-id",
"create_bucket": true,
"force_destroy_bucket": true,
"path_expression": "*elasticloadbalancing/AWSLogs//elasticloadbalancing//*"
},
"description": "This source is created using Sumo Logic terraform AWS Observability module to collect AWS Application LoadBalancer logs.",
"fields": {},
"source_category": "aws/observability/alb/logs",
"source_name": "Elb Logs (Region)"
}
| no | -| [environment](#input\_environment) | Enter au, ca, ch, de, eu, fed, jp, kr, us1 or us2. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security | `string` | n/a | yes | +| [environment](#input\_environment) | Enter au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security | `string` | n/a | yes | | [existing\_iam\_details](#input\_existing\_iam\_details) | Provide an existing AWS IAM role arn value which provides access to AWS S3 Buckets, AWS CloudWatch Metrics API and Sumo Logic Inventory data.
If kept empty, a new IAM role will be created with the required permissions.
For more details on permissions, check the iam policy tmpl files at /source-module/templates folder. |
object({
create_iam_role = bool
iam_role_arn = string
})
|
{
"create_iam_role": true,
"iam_role_arn": ""
}
| no | | [sumologic\_collector\_details](#input\_sumologic\_collector\_details) | Provide details for the Sumo Logic collector. If not provided, then defaults will be used.
The Collector will be created if any new source will be created and \"sumologic\_existing\_collector\_id\" is empty. |
object({
collector_name = string
description = string
fields = map(string)
})
|
{
"collector_name": "AWS Observability (AWS Account Alias) (Account ID)",
"description": "This collector is created using Sumo Logic terraform AWS Observability module.",
"fields": {}
}
| no | | [sumologic\_existing\_collector\_details](#input\_sumologic\_existing\_collector\_details) | Provide an existing Sumo Logic Collector ID. For more details, visit https://help.sumologic.com/03Send-Data/Sources/03Use-JSON-to-Configure-Sources/Local-Configuration-File-Management/View-or-Download-Source-JSON-Configuration
If provided, all the provided sources will be created within the collector.
If kept empty, a new Collector will be created and all provided sources will be created within that collector. |
object({
create_collector = bool
collector_id = string
})
|
{
"collector_id": "",
"create_collector": true
}
| no | diff --git a/aws-observability-terraform/source-module/data.tf b/aws-observability-terraform/source-module/data.tf index 43fdfc3b..7e00e912 100644 --- a/aws-observability-terraform/source-module/data.tf +++ b/aws-observability-terraform/source-module/data.tf @@ -2,4 +2,6 @@ data "aws_region" "current" {} data "aws_caller_identity" "current" {} -data "sumologic_caller_identity" "current" {} \ No newline at end of file +data "sumologic_caller_identity" "current" {} + +data "aws_partition" "current" {} \ No newline at end of file diff --git a/aws-observability-terraform/source-module/local.tf b/aws-observability-terraform/source-module/local.tf index a590970c..5288026d 100644 --- a/aws-observability-terraform/source-module/local.tf +++ b/aws-observability-terraform/source-module/local.tf @@ -3,7 +3,15 @@ locals { aws_region = data.aws_region.current.id - sumo_account_id = "926226587429" + #sumo_account_id = "926226587429" + + # sumo aws account ids + sumo_account_ids = { + aws = "926226587429" # Commercial AWS account + aws-us-gov = "926226587429" # GovCloud account + aws-cn = "926226587429" # China account + aws-eusc = "052162193518" # EU Sovereign account + } # CloudTrail Source updated Details create_cloudtrail_source = var.collect_cloudtrail_logs && var.cloudtrail_source_url == "" diff --git a/aws-observability-terraform/source-module/main.tf b/aws-observability-terraform/source-module/main.tf index d384f6c1..75c5f02a 100644 --- a/aws-observability-terraform/source-module/main.tf +++ b/aws-observability-terraform/source-module/main.tf @@ -25,8 +25,10 @@ resource "time_sleep" "wait_for_minutes" { module "cloudtrail_module" { depends_on = [time_sleep.wait_for_minutes] for_each = toset(local.create_cloudtrail_source ? ["cloudtrail_module"] : []) - source = "SumoLogic/sumo-logic-integrations/sumologic//aws/cloudtrail" - version = "1.0.22" + #source = "SumoLogic/sumo-logic-integrations/sumologic//aws/cloudtrail" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//aws/cloudtrail?ref=fy27q1" + #version = "1.0.23" + create_collector = false create_trail = var.cloudtrail_source_details.bucket_details.create_bucket ? true : false @@ -46,7 +48,7 @@ module "cloudtrail_module" { } paused = false scan_interval = 60000 - sumo_account_id = local.sumo_account_id + sumo_account_id = local.sumo_account_ids[data.aws_partition.current.partition] cutoff_relative_time = "-1d" fields = local.cloudtrail_fields iam_details = { @@ -65,8 +67,10 @@ module "cloudtrail_module" { module "elb_module" { depends_on = [time_sleep.wait_for_minutes] for_each = toset(local.create_elb_source ? ["elb_module"] : []) - source = "SumoLogic/sumo-logic-integrations/sumologic//aws/elb" - version = "1.0.22" + #source = "SumoLogic/sumo-logic-integrations/sumologic//aws/elb" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//aws/elb?ref=fy27q1" + #version = "1.0.23" + create_collector = false sumologic_organization_id = var.sumologic_organization_id @@ -85,7 +89,7 @@ module "elb_module" { } paused = false scan_interval = 60000 - sumo_account_id = local.sumo_account_id + sumo_account_id = local.sumo_account_ids[data.aws_partition.current.partition] cutoff_relative_time = "-1d" fields = local.elb_fields iam_details = { @@ -99,7 +103,7 @@ module "elb_module" { } auto_enable_access_logs = var.auto_enable_access_logs - app_semantic_version = "1.0.18" + app_semantic_version = "1.0.19" auto_enable_access_logs_options = { filter = "'Type': 'application'|'type': 'application'" remove_on_delete_stack = true @@ -111,8 +115,10 @@ module "elb_module" { module "classic_lb_module" { depends_on = [time_sleep.wait_for_minutes] for_each = toset(local.create_classic_lb_source ? ["classic_lb_module"] : []) - source = "SumoLogic/sumo-logic-integrations/sumologic//aws/elasticloadbalancing" - version = "1.0.22" + #source = "SumoLogic/sumo-logic-integrations/sumologic//aws/elasticloadbalancing" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//aws/elasticloadbalancing?ref=fy27q1" + #version = "1.0.23" + create_collector = false sumologic_organization_id = var.sumologic_organization_id @@ -131,7 +137,7 @@ module "classic_lb_module" { } paused = false scan_interval = 60000 - sumo_account_id = local.sumo_account_id + sumo_account_id = local.sumo_account_ids[data.aws_partition.current.partition] cutoff_relative_time = "-1d" fields = local.classic_lb_fields iam_details = { @@ -144,7 +150,7 @@ module "classic_lb_module" { } } auto_enable_access_logs = var.auto_enable_classic_lb_access_logs - app_semantic_version = "1.0.18" + app_semantic_version = "1.0.19" auto_enable_access_logs_options = { bucket_prefix = local.auto_classic_lb_path_exp auto_enable_logging = "ELB" @@ -157,8 +163,9 @@ module "classic_lb_module" { module "cloudwatch_custom_metrics_source_module" { depends_on = [time_sleep.wait_for_minutes] for_each = toset(local.create_cw_metrics_source && length(local.custom_namespace) > 0 ? ["Custom"] : []) - source = "SumoLogic/sumo-logic-integrations/sumologic//aws/cloudwatchmetrics" - version = "1.0.22" + #source = "SumoLogic/sumo-logic-integrations/sumologic//aws/cloudwatchmetrics" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//aws/cloudwatchmetrics?ref=fy27q1" + #version = "1.0.23" create_collector = false sumologic_organization_id = var.sumologic_organization_id @@ -174,7 +181,7 @@ module "cloudwatch_custom_metrics_source_module" { tag_filters = [] paused = false scan_interval = 30000 - sumo_account_id = local.sumo_account_id + sumo_account_id = local.sumo_account_ids[data.aws_partition.current.partition] fields = local.metrics_fields iam_details = { create_iam_role = false @@ -187,8 +194,10 @@ module "cloudwatch_custom_metrics_source_module" { module "cloudwatch_metrics_source_module" { depends_on = [time_sleep.wait_for_minutes] for_each = local.create_cw_metrics_source && length(local.aws_namespace) > 0 ? toset(local.aws_namespace) : [] - source = "SumoLogic/sumo-logic-integrations/sumologic//aws/cloudwatchmetrics" - version = "1.0.22" + # source = "SumoLogic/sumo-logic-integrations/sumologic//aws/cloudwatchmetrics" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//aws/cloudwatchmetrics?ref=fy27q1" + #version = "1.0.23" + create_collector = false sumologic_organization_id = var.sumologic_organization_id @@ -204,7 +213,7 @@ module "cloudwatch_metrics_source_module" { tag_filters = [for tag_filter in var.cloudwatch_metrics_source_details.tag_filters : tag_filter if tag_filter.namespace == each.value] paused = false scan_interval = lookup(local.namespace_scan_interval, regex("^AWS/(\\w+)$", each.value)[0], "300000") - sumo_account_id = local.sumo_account_id + sumo_account_id = local.sumo_account_ids[data.aws_partition.current.partition] fields = local.metrics_fields iam_details = { create_iam_role = false @@ -217,8 +226,9 @@ module "cloudwatch_metrics_source_module" { module "kinesis_firehose_for_metrics_source_module" { depends_on = [time_sleep.wait_for_minutes] for_each = toset(local.create_kf_metrics_source ? ["kinesis_firehose_for_metrics_source_module"] : []) - source = "SumoLogic/sumo-logic-integrations/sumologic//aws/kinesisfirehoseformetrics" - version = "1.0.22" + # source = "SumoLogic/sumo-logic-integrations/sumologic//aws/kinesisfirehoseformetrics" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//aws/kinesisfirehoseformetrics?ref=fy27q1" + #version = "1.0.23" create_collector = false sumologic_organization_id = var.sumologic_organization_id @@ -231,7 +241,7 @@ module "kinesis_firehose_for_metrics_source_module" { collector_id = local.create_collector ? sumologic_collector.collector["collector"].id : var.sumologic_existing_collector_details.collector_id limit_to_namespaces = var.cloudwatch_metrics_source_details.limit_to_namespaces tag_filters = [for tag_filter in var.cloudwatch_metrics_source_details.tag_filters : tag_filter if contains(var.cloudwatch_metrics_source_details.limit_to_namespaces, tag_filter.namespace)] - sumo_account_id = local.sumo_account_id + sumo_account_id = local.sumo_account_ids[data.aws_partition.current.partition] fields = local.metrics_fields iam_details = { create_iam_role = false @@ -250,8 +260,10 @@ module "kinesis_firehose_for_metrics_source_module" { module "cloudwatch_logs_lambda_log_forwarder_module" { depends_on = [time_sleep.wait_for_minutes] for_each = toset(local.create_llf_logs_source ? ["cloudwatch_logs_lambda_log_forwarder_module"] : []) - source = "SumoLogic/sumo-logic-integrations/sumologic//aws/cloudwatchlogsforwarder" - version = "1.0.22" + # source = "SumoLogic/sumo-logic-integrations/sumologic//aws/cloudwatchlogsforwarder" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//aws/cloudwatchlogsforwarder?ref=fy27q1" + #version = "1.0.23" + create_collector = false @@ -282,8 +294,10 @@ module "cloudwatch_logs_lambda_log_forwarder_module" { module "kinesis_firehose_for_logs_module" { depends_on = [time_sleep.wait_for_minutes] for_each = toset(local.create_kf_logs_source ? ["kinesis_firehose_for_logs_module"] : []) - source = "SumoLogic/sumo-logic-integrations/sumologic//aws/kinesisfirehoseforlogs" - version = "1.0.22" + #source = "SumoLogic/sumo-logic-integrations/sumologic//aws/kinesisfirehoseforlogs" + source = "git::https://github.com/SumoLogic/terraform-sumologic-sumo-logic-integrations.git//aws/kinesisfirehoseforlogs?ref=fy27q1" + #version = "1.0.23" + create_collector = false diff --git a/aws-observability-terraform/source-module/main_iam_role.tf b/aws-observability-terraform/source-module/main_iam_role.tf index 651c076c..d1644b04 100644 --- a/aws-observability-terraform/source-module/main_iam_role.tf +++ b/aws-observability-terraform/source-module/main_iam_role.tf @@ -12,9 +12,10 @@ resource "aws_iam_role" "sumologic_iam_role" { path = "/" assume_role_policy = templatefile("${path.module}/templates/iam_assume_role_policy.tmpl", { - SUMO_LOGIC_ACCOUNT_ID = local.sumo_account_id, + SUMO_LOGIC_ACCOUNT_ID = local.sumo_account_ids[data.aws_partition.current.partition], ENVIRONMENT = data.sumologic_caller_identity.current.environment, SUMO_LOGIC_ORG_ID = var.sumologic_organization_id + AWS_PARTITION = data.aws_partition.current.partition }) tags = var.aws_resource_tags } @@ -26,6 +27,7 @@ resource "aws_iam_policy" "cloudtrail_policy" { policy = templatefile("${path.module}/templates/iam_s3_source_policy.tmpl", { BUCKET_NAME = local.create_cloudtrail_bucket ? local.common_bucket_name : var.cloudtrail_source_details.bucket_details.bucket_name + AWS_PARTITION = data.aws_partition.current.partition }) tags = var.aws_resource_tags } @@ -43,7 +45,8 @@ resource "aws_iam_policy" "elb_policy" { for_each = toset(local.create_elb_source && local.create_iam_role ? ["elb_policy"] : []) policy = templatefile("${path.module}/templates/iam_s3_source_policy.tmpl", { - BUCKET_NAME = local.create_elb_bucket ? local.common_bucket_name : var.elb_source_details.bucket_details.bucket_name + BUCKET_NAME = local.create_elb_bucket ? local.common_bucket_name : var.elb_source_details.bucket_details.bucket_name + AWS_PARTITION = data.aws_partition.current.partition }) tags = var.aws_resource_tags } @@ -53,7 +56,8 @@ resource "aws_iam_policy" "classic_lb_policy" { for_each = toset(local.create_classic_lb_source && local.create_iam_role ? ["classic_lb_policy"] : []) policy = templatefile("${path.module}/templates/iam_s3_source_policy.tmpl", { - BUCKET_NAME = local.create_classic_lb_bucket ? local.common_bucket_name : var.classic_lb_source_details.bucket_details.bucket_name + BUCKET_NAME = local.create_classic_lb_bucket ? local.common_bucket_name : var.classic_lb_source_details.bucket_details.bucket_name + AWS_PARTITION = data.aws_partition.current.partition }) tags = var.aws_resource_tags } diff --git a/aws-observability-terraform/source-module/main_s3_bucket.tf b/aws-observability-terraform/source-module/main_s3_bucket.tf index eb43067b..87de72f4 100644 --- a/aws-observability-terraform/source-module/main_s3_bucket.tf +++ b/aws-observability-terraform/source-module/main_s3_bucket.tf @@ -18,6 +18,7 @@ resource "aws_s3_bucket_policy" "dump_access_logs_to_s3" { policy = templatefile("${path.module}/templates/s3_bucket_policy.tmpl", { BUCKET_NAME = local.common_bucket_name ELB_ACCCOUNT_ID = local.region_to_elb_account_id[local.aws_region] + AWS_PARTITION = data.aws_partition.current.partition }) } @@ -38,6 +39,7 @@ resource "aws_sns_topic" "sns_topic" { AWS_REGION = local.aws_region, SNS_TOPIC_NAME = "SumoLogic-Aws-Observability-Module-${random_string.aws_random.id}", AWS_ACCOUNT = local.aws_account_id + AWS_PARTITION = data.aws_partition.current.partition }) tags = var.aws_resource_tags } diff --git a/aws-observability-terraform/source-module/templates/iam_assume_role_policy.tmpl b/aws-observability-terraform/source-module/templates/iam_assume_role_policy.tmpl index 6c45f2c3..257c447e 100644 --- a/aws-observability-terraform/source-module/templates/iam_assume_role_policy.tmpl +++ b/aws-observability-terraform/source-module/templates/iam_assume_role_policy.tmpl @@ -4,7 +4,7 @@ { "Action": "sts:AssumeRole", "Principal": { - "AWS": "arn:aws:iam::${SUMO_LOGIC_ACCOUNT_ID}:root" + "AWS": "arn:${AWS_PARTITION}:iam::${SUMO_LOGIC_ACCOUNT_ID}:root" }, "Effect": "Allow", "Condition": { diff --git a/aws-observability-terraform/source-module/templates/iam_s3_source_policy.tmpl b/aws-observability-terraform/source-module/templates/iam_s3_source_policy.tmpl index cd968b9b..f37d6bf3 100644 --- a/aws-observability-terraform/source-module/templates/iam_s3_source_policy.tmpl +++ b/aws-observability-terraform/source-module/templates/iam_s3_source_policy.tmpl @@ -10,8 +10,8 @@ "s3:ListBucket" ], "Resource": [ - "arn:aws:s3:::${BUCKET_NAME}/*", - "arn:aws:s3:::${BUCKET_NAME}" + "arn:${AWS_PARTITION}:s3:::${BUCKET_NAME}/*", + "arn:${AWS_PARTITION}:s3:::${BUCKET_NAME}" ] } ] diff --git a/aws-observability-terraform/source-module/templates/s3_bucket_policy.tmpl b/aws-observability-terraform/source-module/templates/s3_bucket_policy.tmpl index 6b852fc3..81879b9d 100644 --- a/aws-observability-terraform/source-module/templates/s3_bucket_policy.tmpl +++ b/aws-observability-terraform/source-module/templates/s3_bucket_policy.tmpl @@ -7,7 +7,7 @@ "Service": "cloudtrail.amazonaws.com" }, "Action": "s3:GetBucketAcl", - "Resource": "arn:aws:s3:::${BUCKET_NAME}" + "Resource": "arn:${AWS_PARTITION}:s3:::${BUCKET_NAME}" }, { "Sid": "AWSCloudTrailWrite", @@ -16,7 +16,7 @@ "Service": "cloudtrail.amazonaws.com" }, "Action": "s3:PutObject", - "Resource": "arn:aws:s3:::${BUCKET_NAME}/*", + "Resource": "arn:${AWS_PARTITION}:s3:::${BUCKET_NAME}/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" @@ -30,15 +30,15 @@ "Service": "cloudtrail.amazonaws.com" }, "Action": "s3:ListBucket", - "Resource": "arn:aws:s3:::${BUCKET_NAME}" + "Resource": "arn:${AWS_PARTITION}:s3:::${BUCKET_NAME}" }, { "Effect": "Allow", "Principal": { - "AWS": "arn:aws:iam::${ELB_ACCCOUNT_ID}:root" + "AWS": "arn:${AWS_PARTITION}:iam::${ELB_ACCCOUNT_ID}:root" }, "Action": "s3:PutObject", - "Resource": "arn:aws:s3:::${BUCKET_NAME}/*" + "Resource": "arn:${AWS_PARTITION}:s3:::${BUCKET_NAME}/*" }, { "Effect": "Allow", @@ -46,7 +46,7 @@ "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", - "Resource": "arn:aws:s3:::${BUCKET_NAME}/*", + "Resource": "arn:${AWS_PARTITION}:s3:::${BUCKET_NAME}/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" @@ -59,7 +59,7 @@ "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", - "Resource": "arn:aws:s3:::${BUCKET_NAME}" + "Resource": "arn:${AWS_PARTITION}:s3:::${BUCKET_NAME}" } ], "Version": "2008-10-17" diff --git a/aws-observability-terraform/source-module/templates/sns_topic_policy.tmpl b/aws-observability-terraform/source-module/templates/sns_topic_policy.tmpl index aba3d325..df147073 100644 --- a/aws-observability-terraform/source-module/templates/sns_topic_policy.tmpl +++ b/aws-observability-terraform/source-module/templates/sns_topic_policy.tmpl @@ -7,14 +7,14 @@ "aws:SourceAccount": "${AWS_ACCOUNT}" }, "ArnLike": { - "aws:SourceArn": "arn:aws:s3:::${BUCKET_NAME}" + "aws:SourceArn": "arn:${AWS_PARTITION}:s3:::${BUCKET_NAME}" } }, "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, - "Resource": "arn:aws:sns:${AWS_REGION}:${AWS_ACCOUNT}:${SNS_TOPIC_NAME}" + "Resource": "arn:${AWS_PARTITION}:sns:${AWS_REGION}:${AWS_ACCOUNT}:${SNS_TOPIC_NAME}" } ], "Version": "2008-10-17" diff --git a/aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.22.zip b/aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.22.zip deleted file mode 100644 index ee6fd5b3..00000000 Binary files a/aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.22.zip and /dev/null differ diff --git a/aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.23.zip b/aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.23.zip new file mode 100644 index 00000000..6ec5cd1a Binary files /dev/null and b/aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.23.zip differ diff --git a/aws-observability/apps/alb/alb_app.template.yaml b/aws-observability/apps/alb/alb_app.template.yaml index 1e263fe5..3c9cca3a 100755 --- a/aws-observability/apps/alb/alb_app.template.yaml +++ b/aws-observability/apps/alb/alb_app.template.yaml @@ -1,6 +1,6 @@ AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' -Description: "Version - v2.14.0: Template to setup the ALB app with AWS and Sumo Logic resources for AWS Observability Solution." +Description: "Version - v2.15.0: Template to setup the ALB app with AWS and Sumo Logic resources for AWS Observability Solution." Metadata: 'AWS::CloudFormation::Interface': @@ -291,10 +291,10 @@ Resources: Type: 'AWS::Serverless::Function' Properties: Handler: main.handler - Runtime: python3.13 + Runtime: python3.14 CodeUri: Bucket: !FindInMap [ RegionMap, !Ref 'AWS::Region', bucketname ] - Key: "sumologic-aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.22.zip" + Key: "sumologic-aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.23.zip" MemorySize: 128 Timeout: 900 Role: diff --git a/aws-observability/apps/apigateway/api_gateway_app.template.yaml b/aws-observability/apps/apigateway/api_gateway_app.template.yaml index 479b96e7..2e06ea61 100755 --- a/aws-observability/apps/apigateway/api_gateway_app.template.yaml +++ b/aws-observability/apps/apigateway/api_gateway_app.template.yaml @@ -1,6 +1,6 @@ AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' -Description: "Version - v2.14.0: Template to setup the API Gateway app with AWS and Sumo Logic resources for AWS Observability Solution." +Description: "Version - v2.15.0: Template to setup the API Gateway app with AWS and Sumo Logic resources for AWS Observability Solution." Metadata: 'AWS::CloudFormation::Interface': diff --git a/aws-observability/apps/autoenable/auto_enable.template.yaml b/aws-observability/apps/autoenable/auto_enable.template.yaml index 76caf852..f155ec8a 100644 --- a/aws-observability/apps/autoenable/auto_enable.template.yaml +++ b/aws-observability/apps/autoenable/auto_enable.template.yaml @@ -1,6 +1,6 @@ AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' -Description: "Version - v2.14.0: Template to setup Auto Enable ALB Access Logging and Lambda Auto Subscribe Log Groups for AWS Observability Solution." +Description: "Version - v2.15.0: Template to setup Auto Enable ALB Access Logging and Lambda Auto Subscribe Log Groups for AWS Observability Solution." Parameters: SumoLogicResourceRemoveOnDeleteStack: @@ -128,7 +128,7 @@ Resources: Properties: Location: ApplicationId: arn:aws:serverlessrepo:us-east-1:956882708938:applications/sumologic-s3-logging-auto-enable - SemanticVersion: 1.0.18 + SemanticVersion: 1.0.19 Parameters: BucketName: !Ref ALBS3LogsBucketName BucketPrefix: "elasticloadbalancing" @@ -143,7 +143,7 @@ Resources: Properties: Location: ApplicationId: arn:aws:serverlessrepo:us-east-1:956882708938:applications/sumologic-s3-logging-auto-enable - SemanticVersion: 1.0.18 + SemanticVersion: 1.0.19 Parameters: BucketName: !Ref ELBS3LogsBucketName BucketPrefix: !Ref ELBS3LogsBucketPrefix diff --git a/aws-observability/apps/cloudwatchmetrics/cloudwatchmetrics.template.yaml b/aws-observability/apps/cloudwatchmetrics/cloudwatchmetrics.template.yaml index eb694759..da9fc4ff 100644 --- a/aws-observability/apps/cloudwatchmetrics/cloudwatchmetrics.template.yaml +++ b/aws-observability/apps/cloudwatchmetrics/cloudwatchmetrics.template.yaml @@ -1,6 +1,6 @@ AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' -Description: "Version - v2.14.0: Template to Setup Sumo Logic CloudWatch Metric Source. The template setup CW Metrics Sources for Namespaces." +Description: "Version - v2.15.0: Template to Setup Sumo Logic CloudWatch Metric Source. The template setup CW Metrics Sources for Namespaces." Parameters: SumoLogicDeployment: diff --git a/aws-observability/apps/common/resources.template.yaml b/aws-observability/apps/common/resources.template.yaml index c33c4263..770693c7 100755 --- a/aws-observability/apps/common/resources.template.yaml +++ b/aws-observability/apps/common/resources.template.yaml @@ -1,6 +1,6 @@ AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' -Description: "Version - v2.14.0: Template to Setup Sumo Logic Sources and supporting AWS Resources for CloudTrail, ALB, Lambda CloudWatch Logs and CloudWatch Metrics." +Description: "Version - v2.15.0: Template to Setup Sumo Logic Sources and supporting AWS Resources for CloudTrail, ALB, Lambda CloudWatch Logs and CloudWatch Metrics." Parameters: SumoLogicDeployment: @@ -465,33 +465,33 @@ Resources: - s3:PutBucketPolicy Resource: - !Sub - - "arn:aws:s3:::${S3Bucket}" + - "arn:${AWS::Partition}:s3:::${S3Bucket}" - S3Bucket: !If [install_alb_logs_source, !If [ create_alb_bucket, !Ref CommonS3Bucket, !Ref ALBS3LogsBucketName ], ""] - !Sub - - "arn:aws:s3:::${S3Bucket}/*" + - "arn:${AWS::Partition}:s3:::${S3Bucket}/*" - S3Bucket: !If [install_alb_logs_source, !If [ create_alb_bucket, !Ref CommonS3Bucket, !Ref ALBS3LogsBucketName ], ""] - !Sub - - "arn:aws:s3:::${S3Bucket}" + - "arn:${AWS::Partition}:s3:::${S3Bucket}" - S3Bucket: !If [install_cloudtrail_logs_source, !If [ create_cloudtrail_bucket, !Ref CommonS3Bucket, !Ref CloudTrailLogsBucketName ], ""] - !Sub - - "arn:aws:s3:::${S3Bucket}/*" + - "arn:${AWS::Partition}:s3:::${S3Bucket}/*" - S3Bucket: !If [install_cloudtrail_logs_source, !If [ create_cloudtrail_bucket, !Ref CommonS3Bucket, !Ref CloudTrailLogsBucketName ], ""] - !Sub - - "arn:aws:s3:::${S3Bucket}" + - "arn:${AWS::Partition}:s3:::${S3Bucket}" - S3Bucket: !If [install_elb_logs_source, !If [ create_elb_bucket, !Ref CommonS3Bucket, !Ref ELBS3LogsBucketName ], ""] - !Sub - - "arn:aws:s3:::${S3Bucket}/*" + - "arn:${AWS::Partition}:s3:::${S3Bucket}/*" - S3Bucket: !If [install_elb_logs_source, !If [ create_elb_bucket, !Ref CommonS3Bucket, !Ref ELBS3LogsBucketName ], ""] LambdaHelper: Type: 'AWS::Serverless::Function' Properties: Handler: main.handler - Runtime: python3.13 + Runtime: python3.14 Description: "Lambda Function for deploying SumoLogic AWS Observability Solution." CodeUri: Bucket: !FindInMap [ RegionMap, !Ref 'AWS::Region', bucketname ] - Key: "sumologic-aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.22.zip" + Key: "sumologic-aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.23.zip" MemorySize: 128 Timeout: 900 Role: @@ -531,11 +531,11 @@ Resources: Type: 'AWS::Serverless::Function' Properties: Handler: main.handler - Runtime: python3.13 + Runtime: python3.14 Description: "Lambda Function for deploying SumoLogic AWS Observability Solution." CodeUri: Bucket: !FindInMap [ RegionMap, !Ref 'AWS::Region', bucketname ] - Key: "sumologic-aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.22.zip" + Key: "sumologic-aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.23.zip" MemorySize: 128 Timeout: 900 Role: @@ -628,14 +628,14 @@ Resources: Service: cloudtrail.amazonaws.com Action: s3:GetBucketAcl Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}" - Sid: AWSCloudTrailWrite Effect: Allow Principal: Service: cloudtrail.amazonaws.com Action: s3:PutObject Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}/*" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}/*" Condition: StringEquals: s3:x-amz-acl: bucket-owner-full-control @@ -645,32 +645,30 @@ Resources: Service: cloudtrail.amazonaws.com Action: s3:ListBucket Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}" - Sid: AWSAlbLogsPutObjects Effect: Allow Principal: - AWS: !Join - - "" - - - "arn:aws:iam::" - - !FindInMap [ Region2ELBAccountId, !Ref 'AWS::Region', AccountId ] - - ":root" + AWS: !Sub + - "arn:${AWS::Partition}:iam::${ELBAccount}:root" + - ELBAccount: !FindInMap [ Region2ELBAccountId, !Ref "AWS::Region", AccountId ] Action: s3:PutObject Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}/*" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}/*" - Sid: AWSAlbLogDeliveryAclCheck Effect: Allow Principal: Service: delivery.logs.amazonaws.com Action: s3:GetBucketAcl Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}" - Sid: AWSAlbLogDeliveryWrite Effect: Allow Principal: Service: delivery.logs.amazonaws.com Action: s3:PutObject Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}/*" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}/*" Condition: StringEquals: s3:x-amz-acl: bucket-owner-full-control @@ -688,10 +686,9 @@ Resources: StringEquals: aws:SourceAccount: !Ref "AWS::AccountId" ArnLike: - aws:SourceArn: !Join - - "" - - - "arn:aws:s3:::aws-observability-logs-" - - !Select + aws:SourceArn: !Sub + - "arn:${AWS::Partition}:s3:::aws-observability-logs-${StackSuffix}" + - StackSuffix: !Select - 0 - !Split - "-" @@ -749,10 +746,10 @@ Resources: - s3:ListBucket Resource: - !Sub - - "arn:aws:s3:::${S3Bucket}" + - "arn:${AWS::Partition}:s3:::${S3Bucket}" - S3Bucket: !If [ create_alb_bucket, !Ref CommonS3Bucket, !Ref ALBS3LogsBucketName ] - !Sub - - "arn:aws:s3:::${S3Bucket}/*" + - "arn:${AWS::Partition}:s3:::${S3Bucket}/*" - S3Bucket: !If [ create_alb_bucket, !Ref CommonS3Bucket, !Ref ALBS3LogsBucketName ] SumoLogicELBS3Policy: @@ -773,10 +770,10 @@ Resources: - s3:ListBucket Resource: - !Sub - - "arn:aws:s3:::${S3Bucket}" + - "arn:${AWS::Partition}:s3:::${S3Bucket}" - S3Bucket: !If [ create_elb_bucket, !Ref CommonS3Bucket, !Ref ELBS3LogsBucketName ] - !Sub - - "arn:aws:s3:::${S3Bucket}/*" + - "arn:${AWS::Partition}:s3:::${S3Bucket}/*" - S3Bucket: !If [ create_elb_bucket, !Ref CommonS3Bucket, !Ref ELBS3LogsBucketName ] SumoLogicCloudTrailS3Policy: @@ -797,10 +794,10 @@ Resources: - s3:ListBucket Resource: - !Sub - - "arn:aws:s3:::${S3Bucket}" + - "arn:${AWS::Partition}:s3:::${S3Bucket}" - S3Bucket: !If [ create_cloudtrail_bucket, !Ref CommonS3Bucket, !Ref CloudTrailLogsBucketName ] - !Sub - - "arn:aws:s3:::${S3Bucket}/*" + - "arn:${AWS::Partition}:s3:::${S3Bucket}/*" - S3Bucket: !If [ create_cloudtrail_bucket, !Ref CommonS3Bucket, !Ref CloudTrailLogsBucketName ] SumoLogicSourceRole: @@ -817,7 +814,7 @@ Resources: Statement: - Effect: Allow Principal: - AWS: !Sub "arn:aws:iam::${SumoLogicAccountID}:root" + AWS: !Sub "arn:${AWS::Partition}:iam::${SumoLogicAccountID}:root" Action: sts:AssumeRole Condition: StringEquals: @@ -1114,7 +1111,7 @@ Resources: Handler: index.lambda_handler MemorySize: 128 Role: !GetAtt "LambdaRole.Arn" - Runtime: python3.13 + Runtime: python3.14 Timeout: 60 Environment: Variables: @@ -1331,7 +1328,7 @@ Resources: StringEquals: aws:SourceAccount: !Ref "AWS::AccountId" ArnLike: - aws:SourceArn: !Sub "arn:aws:s3:::${ALBS3LogsBucketName}" + aws:SourceArn: !Sub "arn:${AWS::Partition}:s3:::${ALBS3LogsBucketName}" Effect: Allow Principal: "Service": "s3.amazonaws.com" @@ -1416,7 +1413,7 @@ Resources: StringEquals: aws:SourceAccount: !Ref "AWS::AccountId" ArnLike: - aws:SourceArn: !Sub "arn:aws:s3:::${ELBS3LogsBucketName}" + aws:SourceArn: !Sub "arn:${AWS::Partition}:s3:::${ELBS3LogsBucketName}" Effect: Allow Principal: "Service": "s3.amazonaws.com" @@ -1499,7 +1496,7 @@ Resources: StringEquals: aws:SourceAccount: !Ref "AWS::AccountId" ArnLike: - aws:SourceArn: !Sub "arn:aws:s3:::${CloudTrailLogsBucketName}" + aws:SourceArn: !Sub "arn:${AWS::Partition}:s3:::${CloudTrailLogsBucketName}" Effect: Allow Principal: "Service": "s3.amazonaws.com" diff --git a/aws-observability/apps/controltower/controltower.template.yaml b/aws-observability/apps/controltower/controltower.template.yaml index 7cb6087f..1586acd8 100644 --- a/aws-observability/apps/controltower/controltower.template.yaml +++ b/aws-observability/apps/controltower/controltower.template.yaml @@ -1,6 +1,6 @@ AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 -Description: "Version - v2.14.0: The Template should be deployed in Master account. This template setup the Lambda trigger for new account created using AWS Control Tower Account Factory process. The Lambda install the AWS Observability CF template on the regions of new AWS account using stack Sets." +Description: "Version - v2.15.0: The Template should be deployed in Master account. This template setup the Lambda trigger for new account created using AWS Control Tower Account Factory process. The Lambda install the AWS Observability CF template on the regions of new AWS account using stack Sets." Globals: Function: @@ -94,7 +94,7 @@ Resources: - Sid: Allow administration of the key Effect: Allow Principal: - AWS: !Sub arn:aws:iam::${AWS::AccountId}:root + AWS: !Sub "arn:${AWS::Partition}:iam::${AWS::AccountId}:root" Action: - kms:Create* - kms:Describe* @@ -168,7 +168,7 @@ Resources: - 'cloudformation:CreateStackInstances' - 'cloudformation:CreateStackSet' - 'cloudformation:UpdateStackInstances' - Resource: !Join [':',['arn:aws:cloudformation:*', !Ref 'AWS::AccountId', 'stackset/*:*']] + Resource: !Sub "arn:${AWS::Partition}:cloudformation:*:${AWS::AccountId}:stackset/*:*" - Effect: Allow Action: - 's3:GetObject' @@ -184,7 +184,7 @@ Resources: - Effect: Allow Action: - iam:PassRole - Resource: !Sub arn:${AWS::Partition}:iam::${AWS::AccountId}:role/service-role/AWSControlTowerStackSetRole + Resource: !Sub "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/service-role/AWSControlTowerStackSetRole" - PolicyName: Kms-Decrypt-Policy PolicyDocument: Version: '2012-10-17' @@ -198,7 +198,7 @@ Resources: - kms:Decrypt Resource: !GetAtt SumoLogicControlTowerKMSKey.Arn ManagedPolicyArns: - - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole + - !Sub "arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" TriggerCustomizationsOnLifeCycleEvent: Type: AWS::Lambda::Function @@ -213,7 +213,7 @@ Resources: from botocore.exceptions import ClientError name = 'SUMO-LOGIC-AWS-OBSERVABILITY' - templateURL = "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + templateURL = "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" ALL = ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND"] @@ -283,13 +283,13 @@ Resources: Handler: index.lambda_handler MemorySize: 128 Role: !GetAtt "LambdaRoleToCaptureEvents.Arn" - Runtime: python3.13 + Runtime: python3.14 Timeout: 60 Environment: Variables: Deployment: !Ref Section1aSumoLogicDeployment OrgId: !Ref Section1dSumoLogicOrganizationId - AdminRole: !Sub arn:${AWS::Partition}:iam::${AWS::AccountId}:role/service-role/AWSControlTowerStackSetRole + AdminRole: !Sub "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/service-role/AWSControlTowerStackSetRole" ExecutionRole: !FindInMap [AWSControlTower, ExecutionRole, Name] Regions: !Ref Section2aRegions Secret: !Ref SumoLogicControlTowerSecret diff --git a/aws-observability/apps/dynamodb/dynamodb_app.template.yaml b/aws-observability/apps/dynamodb/dynamodb_app.template.yaml index 47516e3a..c3202809 100755 --- a/aws-observability/apps/dynamodb/dynamodb_app.template.yaml +++ b/aws-observability/apps/dynamodb/dynamodb_app.template.yaml @@ -1,6 +1,6 @@ AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' -Description: "Version - v2.14.0: Template to setup the DynamoDB app with AWS and Sumo Logic resources for AWS Observability Solution." +Description: "Version - v2.15.0: Template to setup the DynamoDB app with AWS and Sumo Logic resources for AWS Observability Solution." Metadata: 'AWS::CloudFormation::Interface': diff --git a/aws-observability/apps/ec2metrics/ec2_metrics_app.template.yaml b/aws-observability/apps/ec2metrics/ec2_metrics_app.template.yaml index d4988b69..fd7cc713 100755 --- a/aws-observability/apps/ec2metrics/ec2_metrics_app.template.yaml +++ b/aws-observability/apps/ec2metrics/ec2_metrics_app.template.yaml @@ -1,6 +1,6 @@ AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' -Description: "Version - v2.14.0: Template to setup the EC2 Metrics app with AWS and Sumo Logic resources for AWS Observability Solution." +Description: "Version - v2.15.0: Template to setup the EC2 Metrics app with AWS and Sumo Logic resources for AWS Observability Solution." Metadata: AWS::CloudFormation::Interface: diff --git a/aws-observability/apps/ecs/ecs_app.template.yaml b/aws-observability/apps/ecs/ecs_app.template.yaml index 870235d5..0801725a 100755 --- a/aws-observability/apps/ecs/ecs_app.template.yaml +++ b/aws-observability/apps/ecs/ecs_app.template.yaml @@ -1,6 +1,6 @@ AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' -Description: "Version - v2.14.0: Template to setup the ECS app with AWS and Sumo Logic resources for AWS Observability Solution." +Description: "Version - v2.15.0: Template to setup the ECS app with AWS and Sumo Logic resources for AWS Observability Solution." Metadata: 'AWS::CloudFormation::Interface': diff --git a/aws-observability/apps/elasticache/elasticache_app.template.yaml b/aws-observability/apps/elasticache/elasticache_app.template.yaml index af368ca7..92969cf2 100755 --- a/aws-observability/apps/elasticache/elasticache_app.template.yaml +++ b/aws-observability/apps/elasticache/elasticache_app.template.yaml @@ -1,6 +1,6 @@ AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' -Description: "Version - v2.14.0: Template to setup the ElastiCache app with AWS and Sumo Logic resources for AWS Observability Solution." +Description: "Version - v2.15.0: Template to setup the ElastiCache app with AWS and Sumo Logic resources for AWS Observability Solution." Metadata: 'AWS::CloudFormation::Interface': diff --git a/aws-observability/apps/elb/elb_app.template.yaml b/aws-observability/apps/elb/elb_app.template.yaml index 0d2ec0d0..55e18a61 100755 --- a/aws-observability/apps/elb/elb_app.template.yaml +++ b/aws-observability/apps/elb/elb_app.template.yaml @@ -1,6 +1,6 @@ AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' -Description: "Version - v2.14.0: Template to setup the ELB classic app with AWS and Sumo Logic resources for AWS Observability Solution." +Description: "Version - v2.15.0: Template to setup the ELB classic app with AWS and Sumo Logic resources for AWS Observability Solution." Metadata: 'AWS::CloudFormation::Interface': @@ -288,10 +288,10 @@ Resources: Type: 'AWS::Serverless::Function' Properties: Handler: main.handler - Runtime: python3.13 + Runtime: python3.14 CodeUri: Bucket: !FindInMap [ RegionMap, !Ref 'AWS::Region', bucketname ] - Key: "sumologic-aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.22.zip" + Key: "sumologic-aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.23.zip" MemorySize: 128 Timeout: 900 Role: diff --git a/aws-observability/apps/hostmetricsfields/host_metrics_add_fields.template.yaml b/aws-observability/apps/hostmetricsfields/host_metrics_add_fields.template.yaml index 2de695b7..e0ece5f1 100644 --- a/aws-observability/apps/hostmetricsfields/host_metrics_add_fields.template.yaml +++ b/aws-observability/apps/hostmetricsfields/host_metrics_add_fields.template.yaml @@ -1,5 +1,5 @@ AWSTemplateFormatVersion: '2010-09-09' -Description: "Version - v2.14.0: Lambda Function to add fields to host metrics sources based on the available instances in all regions of the current AWS account." +Description: "Version - v2.15.0: Lambda Function to add fields to host metrics sources based on the available instances in all regions of the current AWS account." Metadata: 'AWS::CloudFormation::Interface': @@ -181,10 +181,10 @@ Resources: Type: AWS::Lambda::Function Properties: Handler: main.handler - Runtime: python3.13 + Runtime: python3.14 Code: S3Bucket: !FindInMap [RegionMap, !Ref 'AWS::Region', bucketname] - S3Key: "sumologic-aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.22.zip" + S3Key: "sumologic-aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.23.zip" MemorySize: 128 Timeout: 900 Role: !GetAtt LambdaRole.Arn diff --git a/aws-observability/apps/lambda/lambda_app.template.yaml b/aws-observability/apps/lambda/lambda_app.template.yaml index 11c89105..b90bc8ca 100755 --- a/aws-observability/apps/lambda/lambda_app.template.yaml +++ b/aws-observability/apps/lambda/lambda_app.template.yaml @@ -1,6 +1,6 @@ AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' -Description: "Version - v2.14.0: Template to setup the Lambda app with AWS and Sumo Logic resources for AWS Observability Solution." +Description: "Version - v2.15.0: Template to setup the Lambda app with AWS and Sumo Logic resources for AWS Observability Solution." Metadata: 'AWS::CloudFormation::Interface': diff --git a/aws-observability/apps/nlb/nlb_app.template.yaml b/aws-observability/apps/nlb/nlb_app.template.yaml index 31823989..fce368e5 100755 --- a/aws-observability/apps/nlb/nlb_app.template.yaml +++ b/aws-observability/apps/nlb/nlb_app.template.yaml @@ -1,6 +1,6 @@ AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' -Description: "Version - v2.14.0: Template to setup the NLB app with AWS and Sumo Logic resources for AWS Observability Solution." +Description: "Version - v2.15.0: Template to setup the NLB app with AWS and Sumo Logic resources for AWS Observability Solution." Metadata: 'AWS::CloudFormation::Interface': diff --git a/aws-observability/apps/permissionchecker/permissioncheck.nested.template.test.yaml b/aws-observability/apps/permissionchecker/permissioncheck.nested.template.test.yaml index da4996c5..4bdca213 100644 --- a/aws-observability/apps/permissionchecker/permissioncheck.nested.template.test.yaml +++ b/aws-observability/apps/permissionchecker/permissioncheck.nested.template.test.yaml @@ -1,5 +1,5 @@ AWSTemplateFormatVersion: '2010-09-09' -Description: "Version - v2.14.0: This CloudFormation template will check for the permission required to deploy the AWS Observability CF template. Based on various error received, please provide the specific permissions to Sumo Logic role or AWS IAM Role used to deploy the template." +Description: "Version - v2.15.0: This CloudFormation template will check for the permission required to deploy the AWS Observability CF template. Based on various error received, please provide the specific permissions to Sumo Logic role or AWS IAM Role used to deploy the template." Transform: 'AWS::Serverless-2016-10-31' Metadata: @@ -207,6 +207,16 @@ Mappings: cn-northwest-1: AccountId: "037604701340" + SumoAWSAccountIds: + aws: + AWSAccountId: "246946804217" + aws-us-gov: + AWSAccountId: "246946804217" + aws-cn: + AWSAccountId: "246946804217" + aws-eusc: + AWSAccountId: "246946804217" + Resources: ################# Create Lambda Role and Lambda Function to create Sumo Logic Custom Resources ################# @@ -258,7 +268,9 @@ Resources: Statement: - Effect: Allow Principal: - AWS: arn:aws:iam::246946804217:root + AWS: !Sub + - "arn:${AWS::Partition}:iam::${AWSAccountId}:root" + - AWSAccountId: !FindInMap [SumoAWSAccountIds, !Ref "AWS::Partition", AWSAccountId] Action: sts:AssumeRole Condition: StringEquals: @@ -285,10 +297,10 @@ Resources: Type: 'AWS::Serverless::Function' Properties: Handler: main.handler - Runtime: python3.13 + Runtime: python3.14 CodeUri: Bucket: !FindInMap [RegionMap, !Ref 'AWS::Region', bucketname] - Key: "sumologic-aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.22.zip" + Key: "sumologic-aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.23.zip" MemorySize: 128 Timeout: 900 Role: @@ -364,14 +376,14 @@ Resources: Service: cloudtrail.amazonaws.com Action: s3:GetBucketAcl Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}" - Sid: AWSCloudTrailWrite Effect: Allow Principal: Service: cloudtrail.amazonaws.com Action: s3:PutObject Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}/*" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}/*" Condition: StringEquals: s3:x-amz-acl: bucket-owner-full-control @@ -381,32 +393,30 @@ Resources: Service: cloudtrail.amazonaws.com Action: s3:ListBucket Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}" - Sid: AWSAlbLogsPutObjects Effect: Allow Principal: - AWS: !Join - - "" - - - "arn:aws:iam::" - - !FindInMap [Region2ELBAccountId, !Ref 'AWS::Region', AccountId] - - ":root" + AWS: !Sub + - "arn:${AWS::Partition}:iam::${ELBAccount}:root" + - ELBAccount: !FindInMap [ Region2ELBAccountId, !Ref "AWS::Region", AccountId ] Action: s3:PutObject Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}/*" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}/*" - Sid: AWSAlbLogDeliveryAclCheck Effect: Allow Principal: Service: delivery.logs.amazonaws.com Action: s3:GetBucketAcl Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}" - Sid: AWSAlbLogDeliveryWrite Effect: Allow Principal: Service: delivery.logs.amazonaws.com Action: s3:PutObject Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}/*" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}/*" Condition: StringEquals: s3:x-amz-acl: bucket-owner-full-control @@ -423,16 +433,15 @@ Resources: StringEquals: aws:SourceAccount: !Ref "AWS::AccountId" ArnLike: - aws:SourceArn: !Join - - "" - - - "arn:aws:s3:::aws-test-observability-logs-" - - !Select + aws:SourceArn: !Sub + - "arn:${AWS::Partition}:s3:::aws-test-observability-logs-${StackSuffix}" + - StackSuffix: !Select - 0 - !Split - "-" - !Select - 2 - - !Split ["/", !Ref "AWS::StackId"] + - !Split [ "/", !Ref "AWS::StackId" ] Effect: Allow Principal: "Service": "s3.amazonaws.com" @@ -455,7 +464,7 @@ Resources: Properties: Location: ApplicationId: arn:aws:serverlessrepo:us-east-1:956882708938:applications/sumologic-s3-logging-auto-enable - SemanticVersion: 1.0.18 + SemanticVersion: 1.0.19 Parameters: BucketName: !Ref CommonS3Bucket BucketPrefix: "elasticloadbalancing" diff --git a/aws-observability/apps/permissionchecker/permissioncheck.nested.template.yaml b/aws-observability/apps/permissionchecker/permissioncheck.nested.template.yaml index ccd33ca2..cfc5c0f5 100644 --- a/aws-observability/apps/permissionchecker/permissioncheck.nested.template.yaml +++ b/aws-observability/apps/permissionchecker/permissioncheck.nested.template.yaml @@ -1,5 +1,5 @@ AWSTemplateFormatVersion: '2010-09-09' -Description: "Version - v2.14.0: This CloudFormation template will check for the permission required to deploy the AWS Observability CF template. Based on various error received, please provide the specific permissions to Sumo Logic role or AWS IAM Role used to deploy the template." +Description: "Version - v2.15.0: This CloudFormation template will check for the permission required to deploy the AWS Observability CF template. Based on various error received, please provide the specific permissions to Sumo Logic role or AWS IAM Role used to deploy the template." Transform: 'AWS::Serverless-2016-10-31' Metadata: @@ -215,6 +215,16 @@ Mappings: cn-northwest-1: AccountId: "037604701340" + SumoAWSAccountIds: + aws: + AWSAccountId: "926226587429" + aws-us-gov: + AWSAccountId: "926226587429" + aws-cn: + AWSAccountId: "926226587429" + aws-eusc: + AWSAccountId: "052162193518" + Resources: ################# Create Lambda Role and Lambda Function to create Sumo Logic Custom Resources ################# @@ -266,7 +276,9 @@ Resources: Statement: - Effect: Allow Principal: - AWS: arn:aws:iam::926226587429:root + AWS: !Sub + - "arn:${AWS::Partition}:iam::${AWSAccountId}:root" + - AWSAccountId: !FindInMap [ SumoAWSAccountIds, !Ref "AWS::Partition", AWSAccountId ] Action: sts:AssumeRole Condition: StringEquals: @@ -293,10 +305,10 @@ Resources: Type: 'AWS::Serverless::Function' Properties: Handler: main.handler - Runtime: python3.13 + Runtime: python3.14 CodeUri: Bucket: !FindInMap [RegionMap, !Ref 'AWS::Region', bucketname] - Key: "sumologic-aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.22.zip" + Key: "sumologic-aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.23.zip" MemorySize: 128 Timeout: 900 Role: @@ -372,14 +384,14 @@ Resources: Service: cloudtrail.amazonaws.com Action: s3:GetBucketAcl Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}" - Sid: AWSCloudTrailWrite Effect: Allow Principal: Service: cloudtrail.amazonaws.com Action: s3:PutObject Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}/*" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}/*" Condition: StringEquals: s3:x-amz-acl: bucket-owner-full-control @@ -389,32 +401,30 @@ Resources: Service: cloudtrail.amazonaws.com Action: s3:ListBucket Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}" - Sid: AWSAlbLogsPutObjects Effect: Allow Principal: - AWS: !Join - - "" - - - "arn:aws:iam::" - - !FindInMap [Region2ELBAccountId, !Ref 'AWS::Region', AccountId] - - ":root" + AWS: !Sub + - "arn:${AWS::Partition}:iam::${ELBAccount}:root" + - ELBAccount: !FindInMap [ Region2ELBAccountId, !Ref "AWS::Region", AccountId ] Action: s3:PutObject Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}/*" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}/*" - Sid: AWSAlbLogDeliveryAclCheck Effect: Allow Principal: Service: delivery.logs.amazonaws.com Action: s3:GetBucketAcl Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}" - Sid: AWSAlbLogDeliveryWrite Effect: Allow Principal: Service: delivery.logs.amazonaws.com Action: s3:PutObject Resource: - - !Sub "arn:aws:s3:::${CommonS3Bucket}/*" + - !Sub "arn:${AWS::Partition}:s3:::${CommonS3Bucket}/*" Condition: StringEquals: s3:x-amz-acl: bucket-owner-full-control @@ -431,16 +441,15 @@ Resources: StringEquals: aws:SourceAccount: !Ref "AWS::AccountId" ArnLike: - aws:SourceArn: !Join - - "" - - - "arn:aws:s3:::aws-test-observability-logs-" - - !Select + aws:SourceArn: !Sub + - "arn:${AWS::Partition}:s3:::aws-test-observability-logs-${AccountSuffix}" + - AccountSuffix: !Select - 0 - !Split - "-" - !Select - 2 - - !Split ["/", !Ref "AWS::StackId"] + - !Split [ "/", !Ref "AWS::StackId" ] Effect: Allow Principal: "Service": "s3.amazonaws.com" @@ -463,7 +472,7 @@ Resources: Properties: Location: ApplicationId: arn:aws:serverlessrepo:us-east-1:956882708938:applications/sumologic-s3-logging-auto-enable - SemanticVersion: 1.0.18 + SemanticVersion: 1.0.19 Parameters: BucketName: !Ref CommonS3Bucket BucketPrefix: "elasticloadbalancing" diff --git a/aws-observability/apps/permissionchecker/permissioncheck.template.test.yaml b/aws-observability/apps/permissionchecker/permissioncheck.template.test.yaml index 70b96449..4becf68b 100644 --- a/aws-observability/apps/permissionchecker/permissioncheck.template.test.yaml +++ b/aws-observability/apps/permissionchecker/permissioncheck.template.test.yaml @@ -1,5 +1,5 @@ AWSTemplateFormatVersion: '2010-09-09' -Description: "Version - v2.14.0: Note: Before deploying this template, please select the appropriate region. This CloudFormation template will check for the permission required to deploy the AWS Observability CF template. Based on various error received, please provide the specific permissions to Sumo Logic role or AWS IAM Role used to deploy the template." +Description: "Version - v2.15.0: Note: Before deploying this template, please select the appropriate region. This CloudFormation template will check for the permission required to deploy the AWS Observability CF template. Based on various error received, please provide the specific permissions to Sumo Logic role or AWS IAM Role used to deploy the template." Transform: 'AWS::Serverless-2016-10-31' Metadata: @@ -51,7 +51,7 @@ Mappings: CommonData: NestedTemplate: BucketName: "sumologic-appdev-aws-sam-apps" - Version: "v2.14.0" + Version: "v2.15.0" Resources: @@ -133,7 +133,7 @@ Resources: - "cloudwatch:DeleteMetricStream" Resource: "*" ManagedPolicyArns: - - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole + - !Sub "arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" DeleteCFNLambda: Type: "AWS::Lambda::Function" @@ -207,7 +207,7 @@ Resources: stackArn: !Ref PermissionStack AwsRegion: !Ref AWS::Region Handler: "index.lambda_handler" - Runtime: "python3.13" + Runtime: "python3.14" Timeout: 900 MemorySize: 128 Role: !GetAtt "LambdaRole.Arn" diff --git a/aws-observability/apps/permissionchecker/permissioncheck.template.yaml b/aws-observability/apps/permissionchecker/permissioncheck.template.yaml index aa2f626f..0022950c 100644 --- a/aws-observability/apps/permissionchecker/permissioncheck.template.yaml +++ b/aws-observability/apps/permissionchecker/permissioncheck.template.yaml @@ -1,5 +1,5 @@ AWSTemplateFormatVersion: '2010-09-09' -Description: "Version - v2.14.0. Note: Before deploying this template, please select the appropriate region. This CloudFormation template will check for the permission required to deploy the AWS Observability CF template. Based on various error received, please provide the specific permissions to Sumo Logic role or AWS IAM Role used to deploy the template." +Description: "Version - v2.15.0. Note: Before deploying this template, please select the appropriate region. This CloudFormation template will check for the permission required to deploy the AWS Observability CF template. Based on various error received, please provide the specific permissions to Sumo Logic role or AWS IAM Role used to deploy the template." Transform: 'AWS::Serverless-2016-10-31' Metadata: @@ -59,7 +59,7 @@ Mappings: CommonData: NestedTemplate: BucketName: "sumologic-appdev-aws-sam-apps" - Version: "v2.14.0" + Version: "v2.15.0" Resources: @@ -141,7 +141,7 @@ Resources: - "cloudwatch:DeleteMetricStream" Resource: "*" ManagedPolicyArns: - - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole + - !Sub "arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" DeleteCFNLambda: Type: "AWS::Lambda::Function" @@ -215,7 +215,7 @@ Resources: stackArn: !Ref PermissionStack AwsRegion: !Ref AWS::Region Handler: "index.lambda_handler" - Runtime: "python3.13" + Runtime: "python3.14" Timeout: 900 MemorySize: 128 Role: !GetAtt "LambdaRole.Arn" diff --git a/aws-observability/apps/rds/rds_app.template.yaml b/aws-observability/apps/rds/rds_app.template.yaml index e7d909e7..f62e623c 100755 --- a/aws-observability/apps/rds/rds_app.template.yaml +++ b/aws-observability/apps/rds/rds_app.template.yaml @@ -1,6 +1,6 @@ AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' -Description: "Version - v2.14.0: Template to setup the RDS app with AWS and Sumo Logic resources for AWS Observability Solution." +Description: "Version - v2.15.0: Template to setup the RDS app with AWS and Sumo Logic resources for AWS Observability Solution." Metadata: 'AWS::CloudFormation::Interface': diff --git a/aws-observability/apps/sns/sns_app.template.yaml b/aws-observability/apps/sns/sns_app.template.yaml index f5508643..79029f51 100755 --- a/aws-observability/apps/sns/sns_app.template.yaml +++ b/aws-observability/apps/sns/sns_app.template.yaml @@ -1,6 +1,6 @@ AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' -Description: "Version - v2.14.0: Template to setup the SNS app with AWS and Sumo Logic resources for AWS Observability Solution." +Description: "Version - v2.15.0: Template to setup the SNS app with AWS and Sumo Logic resources for AWS Observability Solution." Metadata: 'AWS::CloudFormation::Interface': diff --git a/aws-observability/apps/sqs/sqs_app.template.yaml b/aws-observability/apps/sqs/sqs_app.template.yaml index 6e17b6a5..f4eba713 100755 --- a/aws-observability/apps/sqs/sqs_app.template.yaml +++ b/aws-observability/apps/sqs/sqs_app.template.yaml @@ -1,6 +1,6 @@ AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' -Description: "Version - v2.14.0: Template to setup the SQS app with AWS and Sumo Logic resources for AWS Observability Solution." +Description: "Version - v2.15.0: Template to setup the SQS app with AWS and Sumo Logic resources for AWS Observability Solution." Metadata: 'AWS::CloudFormation::Interface': diff --git a/aws-observability/json/Alerts-App.json b/aws-observability/json/Alerts-App.json index 09696255..831e8e8c 100644 --- a/aws-observability/json/Alerts-App.json +++ b/aws-observability/json/Alerts-App.json @@ -1284,7 +1284,7 @@ "queries": [ { "rowId": "A", - "query": "account=* region=* namespace=aws/sns \"\\\"eventsource\\\":\\\"sns.amazonaws.com\\\"\" errorCode \n| json \"userIdentity\", \"eventSource\", \"eventName\", \"awsRegion\", \"sourceIPAddress\", \"userAgent\", \"eventType\", \"recipientAccountId\", \"requestParameters\", \"responseElements\", \"requestID\", \"errorCode\", \"errorMessage\" as userIdentity, event_source, event_name, region, src_ip, user_agent, event_type, recipient_account_id, requestParameters, responseElements, request_id, error_code, error_message nodrop \n| where event_source = \"sns.amazonaws.com\" and !isblank(error_code) \n| json field=userIdentity \"accountId\", \"type\", \"arn\", \"userName\" as accountid, type, arn, username nodrop \n| parse field=arn \":assumed-role/*\" as user nodrop \n| parse field=arn \"arn:aws:iam::*:*\" as accountId, user nodrop \n| json field=requestParameters \"topicArn\", \"name\", \"resourceArn\", \"subscriptionArn\" as req_topic_arn, req_topic_name, resource_arn, subscription_arn nodrop \n| json field=responseElements \"topicArn\" as res_topic_arn nodrop \n| if (isBlank(req_topic_arn), res_topic_arn, req_topic_arn) as topic_arn \n| if (isBlank(topic_arn), resource_arn, topic_arn) as topic_arn \n| parse field=topic_arn \"arn:aws:sns:*:*:*\" as region_temp, accountid_temp, topic_arn_name_temp nodrop \n| parse field=subscription_arn \"arn:aws:sns:*:*:*:*\" as region_temp, accountid_temp, topic_arn_name_temp, arn_value_temp nodrop \n| if (isBlank(req_topic_name), topic_arn_name_temp, req_topic_name) as topicname \n| if (isBlank(accountid), recipient_account_id, accountid) as accountid \n| if (isEmpty(error_code), \"Success\", \"Failure\") as event_status \n| if (isEmpty(username), user, username) as user \n| count as event_count by event_name, error_code, error_message, region, src_ip, accountid, user, type, request_id, topicname, topic_arn, user_agent" + "query": "account=* region=* namespace=aws/sns \"\\\"eventsource\\\":\\\"sns.amazonaws.com\\\"\" errorCode \n| json \"userIdentity\", \"eventSource\", \"eventName\", \"awsRegion\", \"sourceIPAddress\", \"userAgent\", \"eventType\", \"recipientAccountId\", \"requestParameters\", \"responseElements\", \"requestID\", \"errorCode\", \"errorMessage\" as userIdentity, event_source, event_name, region, src_ip, user_agent, event_type, recipient_account_id, requestParameters, responseElements, request_id, error_code, error_message nodrop \n| where event_source = \"sns.amazonaws.com\" and !isblank(error_code) \n| json field=userIdentity \"accountId\", \"type\", \"arn\", \"userName\" as accountid, type, arn, username nodrop \n| parse field=arn \":assumed-role/*\" as user nodrop \n| parse field=arn \"arn:*:iam::*:*\" as arn_part, accountId, user nodrop \n| json field=requestParameters \"topicArn\", \"name\", \"resourceArn\", \"subscriptionArn\" as req_topic_arn, req_topic_name, resource_arn, subscription_arn nodrop \n| json field=responseElements \"topicArn\" as res_topic_arn nodrop \n| if (isBlank(req_topic_arn), res_topic_arn, req_topic_arn) as topic_arn \n| if (isBlank(topic_arn), resource_arn, topic_arn) as topic_arn \n| parse field=topic_arn \"arn:*:sns:*:*:*\" as arn_part, region_temp, accountid_temp, topic_arn_name_temp nodrop \n| parse field=subscription_arn \"arn:*:sns:*:*:*:*\" as arn_part, region_temp, accountid_temp, topic_arn_name_temp, arn_value_temp nodrop \n| if (isBlank(req_topic_name), topic_arn_name_temp, req_topic_name) as topicname \n| if (isBlank(accountid), recipient_account_id, accountid) as accountid \n| if (isEmpty(error_code), \"Success\", \"Failure\") as event_status \n| if (isEmpty(username), user, username) as user \n| count as event_count by event_name, error_code, error_message, region, src_ip, accountid, user, type, request_id, topicname, topic_arn, user_agent" } ], "triggers": [ @@ -1905,7 +1905,7 @@ "queries": [ { "rowId": "A", - "query": "account=* region=* namespace=aws/sns \"\\\"eventsource\\\":\\\"sns.amazonaws.com\\\"\" sourceIPAddress \n| json \"userIdentity\", \"eventSource\", \"eventName\", \"awsRegion\", \"sourceIPAddress\", \"userAgent\", \"eventType\", \"recipientAccountId\", \"requestParameters\", \"responseElements\", \"requestID\", \"errorCode\", \"errorMessage\" as userIdentity, event_source, event_name, region, src_ip, user_agent, event_type, recipient_account_id, requestParameters, responseElements, request_id, error_code, error_message nodrop \n| where event_source = \"sns.amazonaws.com\" \n| json field=userIdentity \"accountId\", \"type\", \"arn\", \"userName\" as accountid, user_type, arn, username nodrop \n| parse field=arn \":assumed-role/*\" as user nodrop \n| parse field=arn \"arn:aws:iam::*:*\" as accountid, user nodrop \n| json field=requestParameters \"topicArn\", \"name\", \"resourceArn\", \"subscriptionArn\" as req_topic_arn, req_topic_name, resource_arn, subscription_arn nodrop \n| json field=responseElements \"topicArn\" as res_topic_arn nodrop \n| if (isBlank(req_topic_arn), res_topic_arn, req_topic_arn) as topic_arn \n| if (isBlank(topic_arn), resource_arn, topic_arn) as topic_arn \n| parse field=topic_arn \"arn:aws:sns:*:*:*\" as region_temp, accountid_temp, topic_arn_name_temp nodrop \n| parse field=subscription_arn \"arn:aws:sns:*:*:*:*\" as region_temp, accountid_temp, topic_arn_name_temp, arn_value_temp nodrop \n| if (isBlank(req_topic_name), topic_arn_name_temp, req_topic_name) as topicname \n| if (isBlank(accountid), recipient_account_id, accountid) as accountid \n| if (isEmpty(error_code), \"Success\", \"Failure\") as event_status \n| if (isEmpty(username), user_type, username) as user_type \n| count as ip_count by src_ip, event_name, region, accountid,user_type \n| lookup type, actor, raw, threatlevel as malicious_confidence from sumo://threat/cs on threat=src_ip \n| where malicious_confidence = \"high\" \n| json field=raw \"labels[*].name\" as label_name nodrop\n| replace(label_name, \"\\\\/\",\"->\") as label_name \n| replace(label_name, \"\\\"\",\" \") as label_name \n| if (isEmpty(actor), \"Unassigned\", actor) as actor \n| sum(ip_count) as threat_count by src_ip, event_name, region, accountid, malicious_confidence, actor, label_name" + "query": "account=* region=* namespace=aws/sns \"\\\"eventsource\\\":\\\"sns.amazonaws.com\\\"\" sourceIPAddress \n| json \"userIdentity\", \"eventSource\", \"eventName\", \"awsRegion\", \"sourceIPAddress\", \"userAgent\", \"eventType\", \"recipientAccountId\", \"requestParameters\", \"responseElements\", \"requestID\", \"errorCode\", \"errorMessage\" as userIdentity, event_source, event_name, region, src_ip, user_agent, event_type, recipient_account_id, requestParameters, responseElements, request_id, error_code, error_message nodrop \n| where event_source = \"sns.amazonaws.com\" \n| json field=userIdentity \"accountId\", \"type\", \"arn\", \"userName\" as accountid, user_type, arn, username nodrop \n| parse field=arn \":assumed-role/*\" as user nodrop \n| parse field=arn \"arn:*:iam::*:*\" as arn_part, accountid, user nodrop \n| json field=requestParameters \"topicArn\", \"name\", \"resourceArn\", \"subscriptionArn\" as req_topic_arn, req_topic_name, resource_arn, subscription_arn nodrop \n| json field=responseElements \"topicArn\" as res_topic_arn nodrop \n| if (isBlank(req_topic_arn), res_topic_arn, req_topic_arn) as topic_arn \n| if (isBlank(topic_arn), resource_arn, topic_arn) as topic_arn \n| parse field=topic_arn \"arn:*:sns:*:*:*\" as arn_part, region_temp, accountid_temp, topic_arn_name_temp nodrop \n| parse field=subscription_arn \"arn:*:sns:*:*:*:*\" as arn_part, region_temp, accountid_temp, topic_arn_name_temp, arn_value_temp nodrop \n| if (isBlank(req_topic_name), topic_arn_name_temp, req_topic_name) as topicname \n| if (isBlank(accountid), recipient_account_id, accountid) as accountid \n| if (isEmpty(error_code), \"Success\", \"Failure\") as event_status \n| if (isEmpty(username), user_type, username) as user_type \n| count as ip_count by src_ip, event_name, region, accountid,user_type \n| lookup type, actor, raw, threatlevel as malicious_confidence from sumo://threat/cs on threat=src_ip \n| where malicious_confidence = \"high\" \n| json field=raw \"labels[*].name\" as label_name nodrop\n| replace(label_name, \"\\\\/\",\"->\") as label_name \n| replace(label_name, \"\\\"\",\" \") as label_name \n| if (isEmpty(actor), \"Unassigned\", actor) as actor \n| sum(ip_count) as threat_count by src_ip, event_name, region, accountid, malicious_confidence, actor, label_name" } ], "triggers": [ @@ -2702,7 +2702,7 @@ "queries": [ { "rowId": "A", - "query": "account=* region=* namespace=aws/elasticache \"\\\"eventSource\\\":\\\"elasticache.amazonaws.com\\\"\" errorCode errorMessage\n| json \"eventSource\", \"errorCode\", \"errorMessage\", \"userIdentity\", \"requestParameters\", \"responseElements\" as event_source, error_code, error_message, user_identity, requestParameters, responseElements nodrop\n| json field=requestParameters \"cacheClusterId\" as req_cacheClusterId nodrop\n| json field=responseElements \"cacheClusterId\" as res_cacheClusterId nodrop\n| json field=user_identity \"arn\", \"userName\" nodrop \n| parse field=arn \":assumed-role/*\" as user nodrop \n| parse field=arn \"arn:aws:iam::*:*\" as accountId, user nodrop\n| if (isEmpty(userName), user, userName) as user\n| if (isEmpty(req_cacheClusterId), res_cacheClusterId, req_cacheClusterId) as cacheclusterid\n| where event_source matches \"elasticache.amazonaws.com\" and !isEmpty(error_code) and !isEmpty(error_message) and !isEmpty(user)\n| count as event_count by _messageTime, account, region, event_source, error_code, error_message, user, cacheclusterid\n| formatDate(_messageTime, \"MM/dd/yyyy HH:mm:ss:SSS Z\") as message_date\n| fields message_date, account, region, event_source, error_code, error_message, user, cacheclusterid\n| fields -_messageTime" + "query": "account=* region=* namespace=aws/elasticache \"\\\"eventSource\\\":\\\"elasticache.amazonaws.com\\\"\" errorCode errorMessage\n| json \"eventSource\", \"errorCode\", \"errorMessage\", \"userIdentity\", \"requestParameters\", \"responseElements\" as event_source, error_code, error_message, user_identity, requestParameters, responseElements nodrop\n| json field=requestParameters \"cacheClusterId\" as req_cacheClusterId nodrop\n| json field=responseElements \"cacheClusterId\" as res_cacheClusterId nodrop\n| json field=user_identity \"arn\", \"userName\" nodrop \n| parse field=arn \":assumed-role/*\" as user nodrop \n| parse field=arn \"arn:*:iam::*:*\" as arn_part, accountId, user nodrop\n| if (isEmpty(userName), user, userName) as user\n| if (isEmpty(req_cacheClusterId), res_cacheClusterId, req_cacheClusterId) as cacheclusterid\n| where event_source matches \"elasticache.amazonaws.com\" and !isEmpty(error_code) and !isEmpty(error_message) and !isEmpty(user)\n| count as event_count by _messageTime, account, region, event_source, error_code, error_message, user, cacheclusterid\n| formatDate(_messageTime, \"MM/dd/yyyy HH:mm:ss:SSS Z\") as message_date\n| fields message_date, account, region, event_source, error_code, error_message, user, cacheclusterid\n| fields -_messageTime" } ], "triggers": [ diff --git a/aws-observability/scripts/AWSOAutoSetupScript/DeployAWSOPosix.sh b/aws-observability/scripts/AWSOAutoSetupScript/DeployAWSOPosix.sh index 3f9d2cb8..a65d29d6 100644 --- a/aws-observability/scripts/AWSOAutoSetupScript/DeployAWSOPosix.sh +++ b/aws-observability/scripts/AWSOAutoSetupScript/DeployAWSOPosix.sh @@ -51,7 +51,7 @@ then AWS_REGION=us-east-1; fi -masterTemplateURL="https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" +masterTemplateURL="https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" #identify sumo deployment associated with sumo accessId and accessKey export apiUrl="https://api.sumologic.com" diff --git a/aws-observability/scripts/AWSOAutoSetupScript/DeployAWSOPosixTest.sh b/aws-observability/scripts/AWSOAutoSetupScript/DeployAWSOPosixTest.sh index 38ad48ba..541f7051 100644 --- a/aws-observability/scripts/AWSOAutoSetupScript/DeployAWSOPosixTest.sh +++ b/aws-observability/scripts/AWSOAutoSetupScript/DeployAWSOPosixTest.sh @@ -51,7 +51,7 @@ then AWS_REGION=us-east-1; fi -masterTemplateURL="https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" +masterTemplateURL="https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" #identify sumo deployment associated with sumo accessId and accessKey export apiUrl="https://api.sumologic.com" diff --git a/aws-observability/scripts/AWSOAutoSetupScript/DeployAWSOWin.ps1 b/aws-observability/scripts/AWSOAutoSetupScript/DeployAWSOWin.ps1 index c3e2ba3b..2544ac2a 100644 --- a/aws-observability/scripts/AWSOAutoSetupScript/DeployAWSOWin.ps1 +++ b/aws-observability/scripts/AWSOAutoSetupScript/DeployAWSOWin.ps1 @@ -41,7 +41,7 @@ $now=Get-Date echo "AWS Observability Script initiated at : $now" #identify sumo deployment associated with sumo accessId and accessKey -$masterTemplateURL="https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" +$masterTemplateURL="https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" $apiUrl="https://api.sumologic.com" $deployment="us1" [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 diff --git a/aws-observability/scripts/AWSOAutoSetupScript/DeployAWSOWinTest.ps1 b/aws-observability/scripts/AWSOAutoSetupScript/DeployAWSOWinTest.ps1 index 2aac48b3..fe26c76f 100644 --- a/aws-observability/scripts/AWSOAutoSetupScript/DeployAWSOWinTest.ps1 +++ b/aws-observability/scripts/AWSOAutoSetupScript/DeployAWSOWinTest.ps1 @@ -41,7 +41,7 @@ $now=Get-Date echo "AWS Observability Script initiated at : $now" #identify sumo deployment associated with sumo accessId and accessKey -$masterTemplateURL="https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" +$masterTemplateURL="https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" $apiUrl="https://api.sumologic.com" $deployment="us1" [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 diff --git a/aws-observability/templates/sumologic_observability.master.template.yaml b/aws-observability/templates/sumologic_observability.master.template.yaml index a4c5dd46..1a9e7065 100644 --- a/aws-observability/templates/sumologic_observability.master.template.yaml +++ b/aws-observability/templates/sumologic_observability.master.template.yaml @@ -1,5 +1,5 @@ AWSTemplateFormatVersion: '2010-09-09' -Description: "Version - v2.14.0. Note: Before deploying this template, please select the appropriate region. This CloudFormation template will automate the setup of the AWS Observability Solution. For more information on each parameter, please see the AWS Observability Setup Guide: https://help.sumologic.com/Observability_Solution/AWS_Observability_Solution/01_Deploy_and_Use_AWS_Observability/05_Deploy_AWS_Observability" +Description: "Version - v2.15.0. Note: Before deploying this template, please select the appropriate region. This CloudFormation template will automate the setup of the AWS Observability Solution. For more information on each parameter, please see the AWS Observability Setup Guide: https://help.sumologic.com/Observability_Solution/AWS_Observability_Solution/01_Deploy_and_Use_AWS_Observability/05_Deploy_AWS_Observability" Metadata: 'AWS::CloudFormation::Interface': @@ -463,7 +463,7 @@ Mappings: CommonData: NestedTemplate: BucketName: "sumologic-appdev-aws-sam-apps" - Version: "v2.14.0" + Version: "v2.15.0" CollectorDetails: SumoLogicAccountID: 926226587429 CollectorNamePrefix: "aws-observability" @@ -550,7 +550,7 @@ Resources: Action: - lambda:InvokeFunction - lambda:DeleteFunction - Resource: !Sub 'arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:*TelemetryLambda*' + Resource: !Sub 'arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:*TelemetryLambda*' - PolicyName: BasicLambdaPolicies PolicyDocument: Version: '2012-10-17' @@ -576,7 +576,7 @@ Resources: DeletionPolicy: Retain Properties: Handler: lambda_function.lambda_handler - Runtime: python3.13 + Runtime: python3.14 Code: S3Bucket: !FindInMap [ RegionMap, !Ref 'AWS::Region', bucketname ] S3Key: "sumologic-aws-observability/apps/SumoLogicAWSObservabilityHelper/telemetryv1.1.0.zip" @@ -607,7 +607,7 @@ Resources: sumoOrgId: !Ref Section1dSumoLogicOrganizationId solutionName: 'AWSO' - solutionVersion: 'v2.14.0' + solutionVersion: 'v2.15.0' deploymentSource: 'cloudFormation' TelemetryEndpoint: "https://endpoint1.collection.us2.sumologic.com/receiver/v1/http/ZaVnC4dhaV1S68eao6UYB3LFtqQ7ur1xYlT1EHCfXdhvi6uPNc0aUXIpvq5i_aHewOp5xxxwnGZ5MmSWDR6qV5td4exMM4pZE4Tk6rqKvgextLx7I6IRpg==" scanInterval: 60 diff --git a/aws-observability/templates/sumologic_observability.mp.test.yaml b/aws-observability/templates/sumologic_observability.mp.test.yaml index 26066347..6d3150bc 100755 --- a/aws-observability/templates/sumologic_observability.mp.test.yaml +++ b/aws-observability/templates/sumologic_observability.mp.test.yaml @@ -1,5 +1,5 @@ AWSTemplateFormatVersion: '2010-09-09' -Description: "Version - v2.14.0. Note: Before deploying this template, please select the appropriate region. This CloudFormation template will automate the setup of the AWS Observability Solution. For more information on each parameter, please see the AWS Observability Setup Guide: https://help.sumologic.com/Observability_Solution/AWS_Observability_Solution/01_Deploy_and_Use_AWS_Observability/05_Deploy_AWS_Observability" +Description: "Version - v2.15.0. Note: Before deploying this template, please select the appropriate region. This CloudFormation template will automate the setup of the AWS Observability Solution. For more information on each parameter, please see the AWS Observability Setup Guide: https://help.sumologic.com/Observability_Solution/AWS_Observability_Solution/01_Deploy_and_Use_AWS_Observability/05_Deploy_AWS_Observability" Metadata: 'AWS::CloudFormation::Interface': @@ -488,7 +488,7 @@ Mappings: CommonData: NestedTemplate: BucketName: "sumologic-appdev-aws-sam-apps" - Version: "v2.14.0" + Version: "v2.15.0" CollectorDetails: SumoLogicAccountID: 246946804217 CollectorNamePrefix: "aws-observability" @@ -554,7 +554,7 @@ Resources: Description: "A function to retrieve secrets from a provided secrets arn." Role: !GetAtt LambdaExecutionRoleSecretsRetrieval.Arn Handler: "index.handler" - Runtime: "python3.13" + Runtime: "python3.14" Timeout: 30 Code: ZipFile: | diff --git a/aws-observability/templates/sumologic_observability.mp.yaml b/aws-observability/templates/sumologic_observability.mp.yaml index 094d56be..8c0cbfeb 100755 --- a/aws-observability/templates/sumologic_observability.mp.yaml +++ b/aws-observability/templates/sumologic_observability.mp.yaml @@ -1,5 +1,5 @@ AWSTemplateFormatVersion: '2010-09-09' -Description: "Version - v2.14.0. Note: Before deploying this template, please select the appropriate region. This CloudFormation template will automate the setup of the AWS Observability Solution. For more information on each parameter, please see the AWS Observability Setup Guide: https://help.sumologic.com/Observability_Solution/AWS_Observability_Solution/01_Deploy_and_Use_AWS_Observability/05_Deploy_AWS_Observability" +Description: "Version - v2.15.0. Note: Before deploying this template, please select the appropriate region. This CloudFormation template will automate the setup of the AWS Observability Solution. For more information on each parameter, please see the AWS Observability Setup Guide: https://help.sumologic.com/Observability_Solution/AWS_Observability_Solution/01_Deploy_and_Use_AWS_Observability/05_Deploy_AWS_Observability" Metadata: 'AWS::CloudFormation::Interface': @@ -486,7 +486,7 @@ Mappings: CommonData: NestedTemplate: BucketName: "sumologic-appdev-aws-sam-apps" - Version: "v2.14.0" + Version: "v2.15.0" CollectorDetails: SumoLogicAccountID: 926226587429 CollectorNamePrefix: "aws-observability" @@ -552,7 +552,7 @@ Resources: Description: "A function to retrieve secrets from a provided secrets arn." Role: !GetAtt LambdaExecutionRoleSecretsRetrieval.Arn Handler: "index.handler" - Runtime: "python3.13" + Runtime: "python3.14" Timeout: 30 Code: ZipFile: | diff --git a/aws-observability/templates/test/TestTemplate.yaml b/aws-observability/templates/test/TestTemplate.yaml index a8417c59..08caa977 100644 --- a/aws-observability/templates/test/TestTemplate.yaml +++ b/aws-observability/templates/test/TestTemplate.yaml @@ -263,9 +263,9 @@ Tests: AutoSubscribeLogGroups: 'Yes' AutoSubscribeLogGroupsOptions: 'Both' AutoSubscribeDestinationARNType: 'Kinesis' - AutoSubscribeDestinationARNValue: 'arn:aws:firehose:' + AutoSubscribeDestinationARNValue: 'arn::firehose:' AutoSubscribeLogGroupPattern: 'lambda' - AutoSubscribeRoleArn: "arn:aws:iam::" + AutoSubscribeRoleArn: "arn::iam::" AutoEnableOptions.AutoEnableS3LogsAlbAWSResources: BucketName: 'aws-observability-logs' AutoEnableResourceOptions: 'Both' @@ -275,9 +275,9 @@ Tests: AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources: UseExistingLogs: 'true' DestinationArnType: 'Kinesis' - DestinationArnValue: 'arn:aws:firehose:' + DestinationArnValue: 'arn::firehose:' LogGroupPattern: '\/aws\/(lambda|apigateway|rds)' - RoleArn: "arn:aws:iam::" + RoleArn: "arn::iam::" sumoEC2MetricsAppStack: Section2aInstallApp: 'Yes' sumoAlbMetricsAppStack: @@ -588,9 +588,9 @@ Tests: AutoSubscribeLogGroups: 'Yes' AutoSubscribeLogGroupsOptions: 'Both' AutoSubscribeDestinationARNType: 'Kinesis' - AutoSubscribeDestinationARNValue: 'arn:aws:firehose:' + AutoSubscribeDestinationARNValue: 'arn::firehose:' AutoSubscribeLogGroupPattern: 'lambda' - AutoSubscribeRoleArn: "arn:aws:iam::" + AutoSubscribeRoleArn: "arn::iam::" AutoEnableOptions.AutoEnableS3LogsAlbAWSResources: BucketName: 'aws-observability-logs' AutoEnableResourceOptions: 'Both' @@ -600,9 +600,9 @@ Tests: AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources: UseExistingLogs: 'true' DestinationArnType: 'Kinesis' - DestinationArnValue: 'arn:aws:firehose:' + DestinationArnValue: 'arn::firehose:' LogGroupPattern: 'lambda' - RoleArn: "arn:aws:iam::" + RoleArn: "arn::iam::" sumoEC2MetricsAppStack: Section2aInstallApp: 'Yes' sumoAlbMetricsAppStack: @@ -921,9 +921,9 @@ Tests: AutoSubscribeLogGroups: 'Yes' AutoSubscribeLogGroupsOptions: 'Both' AutoSubscribeDestinationARNType: 'Kinesis' - AutoSubscribeDestinationARNValue: 'arn:aws:firehose:' + AutoSubscribeDestinationARNValue: 'arn::firehose:' AutoSubscribeLogGroupPattern: 'lambda' - AutoSubscribeRoleArn: "arn:aws:iam::" + AutoSubscribeRoleArn: "arn::iam::" AutoEnableOptions.AutoEnableS3LogsAlbAWSResources: BucketName: 'aws-observability-logs' AutoEnableResourceOptions: 'Both' @@ -933,9 +933,9 @@ Tests: AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources: UseExistingLogs: 'true' DestinationArnType: 'Kinesis' - DestinationArnValue: 'arn:aws:firehose:' + DestinationArnValue: 'arn::firehose:' LogGroupPattern: 'lambda' - RoleArn: "arn:aws:iam::" + RoleArn: "arn::iam::" sumoEC2MetricsAppStack: Section2aInstallApp: 'Yes' sumoAlbMetricsAppStack: @@ -1370,7 +1370,7 @@ Tests: AutoSubscribeLogGroups: 'Yes' AutoSubscribeLogGroupsOptions: 'New' AutoSubscribeDestinationARNType: 'Lambda' - AutoSubscribeDestinationARNValue: 'arn:aws:lambda:' + AutoSubscribeDestinationARNValue: 'arn::lambda:' AutoSubscribeLogGroupPattern: 'lambda' AutoSubscribeRoleArn: "" AutoEnableOptions.AutoEnableS3LogsAlbAWSResources: @@ -1382,7 +1382,7 @@ Tests: AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources: UseExistingLogs: 'false' DestinationArnType: 'Lambda' - DestinationArnValue: 'arn:aws:lambda:' + DestinationArnValue: 'arn::lambda:' LogGroupPattern: 'lambda' RoleArn: "" sumoEC2MetricsAppStack: @@ -3092,15 +3092,15 @@ Tests: AutoSubscribeLogGroups: 'Yes' AutoSubscribeLogGroupsOptions: 'Both' AutoSubscribeDestinationARNType: 'Kinesis' - AutoSubscribeDestinationARNValue: 'arn:aws:firehose:' + AutoSubscribeDestinationARNValue: 'arn::firehose:' AutoSubscribeLogGroupPattern: 'lambda' - AutoSubscribeRoleArn: "arn:aws:iam::" + AutoSubscribeRoleArn: "arn::iam::" AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources: UseExistingLogs: 'true' DestinationArnType: 'Kinesis' - DestinationArnValue: 'arn:aws:firehose:' + DestinationArnValue: 'arn::firehose:' LogGroupPattern: 'lambda' - RoleArn: "arn:aws:iam::" + RoleArn: "arn::iam::" sumoEC2MetricsAppStack: Section2aInstallApp: 'No' sumoAlbMetricsAppStack: @@ -3417,9 +3417,9 @@ Tests: AutoSubscribeLogGroups: 'Yes' AutoSubscribeLogGroupsOptions: 'Both' AutoSubscribeDestinationARNType: 'Kinesis' - AutoSubscribeDestinationARNValue: 'arn:aws:firehose:' + AutoSubscribeDestinationARNValue: 'arn::firehose:' AutoSubscribeLogGroupPattern: 'lambda' - AutoSubscribeRoleArn: "arn:aws:iam::" + AutoSubscribeRoleArn: "arn::iam::" AutoEnableOptions.AutoEnableS3LogsAlbAWSResources: BucketName: 'aws-observability-logs' AutoEnableResourceOptions: 'Both' @@ -3429,9 +3429,9 @@ Tests: AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources: UseExistingLogs: 'true' DestinationArnType: 'Kinesis' - DestinationArnValue: 'arn:aws:firehose:' + DestinationArnValue: 'arn::firehose:' LogGroupPattern: 'lambda' - RoleArn: "arn:aws:iam::" + RoleArn: "arn::iam::" sumoEC2MetricsAppStack: Section2aInstallApp: 'Yes' sumoAlbMetricsAppStack: diff --git a/aws-observability/templates/test/requirements.txt b/aws-observability/templates/test/requirements.txt index e1280e76..c82871e9 100644 --- a/aws-observability/templates/test/requirements.txt +++ b/aws-observability/templates/test/requirements.txt @@ -1,5 +1,5 @@ # sumologic-cfn-tester -requests==2.32.5 +requests==2.33.0 cfn-lint==0.86.0 jsonschema>=3.2.0 cfn-flip==1.3.0 diff --git a/aws-observability/templates/test/setup-infra/create_sumo_cloudtrail_source.yaml b/aws-observability/templates/test/setup-infra/create_sumo_cloudtrail_source.yaml index ecc10b88..5b6681f1 100644 --- a/aws-observability/templates/test/setup-infra/create_sumo_cloudtrail_source.yaml +++ b/aws-observability/templates/test/setup-infra/create_sumo_cloudtrail_source.yaml @@ -5,7 +5,7 @@ Parameters: SumoLogicDeployment: Type: String Default: "" - Description: "Enter au, ca, ch, de, eu, fed, jp, kr, us1 or us2" + Description: "Enter au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2" SumoLogicAccessID: Type: String Description: "Sumo Logic Access ID. Used for Sumo Logic API calls." @@ -54,6 +54,8 @@ Mappings: apiendpoint: "https://api.de.sumologic.com/api/" eu: apiendpoint: "https://api.eu.sumologic.com/api/" + esc: + apiendpoint: "https://api.esc.sumologic.com/api/" fed: apiendpoint: "https://api.fed.sumologic.com/api/" jp: @@ -83,10 +85,10 @@ Resources: - s3:ListBucket Resource: - !Sub - - "arn:aws:s3:::${S3Bucket}" + - "arn:${AWS::Partition}:s3:::${S3Bucket}" - S3Bucket: !Ref CloudTrailLogsBucketName - !Sub - - "arn:aws:s3:::${S3Bucket}/*" + - "arn:${AWS::Partition}:s3:::${S3Bucket}/*" - S3Bucket: !Ref CloudTrailLogsBucketName CloudTrailSource: diff --git a/aws-observability/templates/test/setup-infra/create_sumo_cloudwatch_lb_source.yaml b/aws-observability/templates/test/setup-infra/create_sumo_cloudwatch_lb_source.yaml index a2e64c09..e0d3137d 100644 --- a/aws-observability/templates/test/setup-infra/create_sumo_cloudwatch_lb_source.yaml +++ b/aws-observability/templates/test/setup-infra/create_sumo_cloudwatch_lb_source.yaml @@ -5,7 +5,7 @@ Parameters: SumoLogicDeployment: Type: String Default: "" - Description: "Enter au, ca, ch, de, eu, fed, jp, kr, us1 or us2" + Description: "Enter au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2" SumoLogicAccessID: Type: String Description: "Sumo Logic Access ID. Used for Sumo Logic API calls." @@ -54,6 +54,8 @@ Mappings: apiendpoint: "https://api.de.sumologic.com/api/" eu: apiendpoint: "https://api.eu.sumologic.com/api/" + esc: + apiendpoint: "https://api.esc.sumologic.com/api/" fed: apiendpoint: "https://api.fed.sumologic.com/api/" jp: @@ -83,10 +85,10 @@ Resources: - s3:ListBucket Resource: - !Sub - - "arn:aws:s3:::${S3Bucket}" + - "arn:${AWS::Partition}:s3:::${S3Bucket}" - S3Bucket: !Ref LBLogsBucketName - !Sub - - "arn:aws:s3:::${S3Bucket}/*" + - "arn:${AWS::Partition}:s3:::${S3Bucket}/*" - S3Bucket: !Ref LBLogsBucketName ALBSource: Type: Custom::AWSSource diff --git a/aws-observability/templates/test/setup-infra/create_sumo_cloudwatch_log_source.yaml b/aws-observability/templates/test/setup-infra/create_sumo_cloudwatch_log_source.yaml index f8459fbf..af02f41e 100644 --- a/aws-observability/templates/test/setup-infra/create_sumo_cloudwatch_log_source.yaml +++ b/aws-observability/templates/test/setup-infra/create_sumo_cloudwatch_log_source.yaml @@ -5,7 +5,7 @@ Parameters: SumoLogicDeployment: Type: String Default: "" - Description: "Enter au, ca, ch, de, eu, fed, jp, kr, us1 or us2" + Description: "Enter au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2" SumoLogicAccessID: Type: String Description: "Sumo Logic Access ID. Used for Sumo Logic API calls." @@ -45,6 +45,8 @@ Mappings: apiendpoint: "https://api.de.sumologic.com/api/" eu: apiendpoint: "https://api.eu.sumologic.com/api/" + esc: + apiendpoint: "https://api.esc.sumologic.com/api/" fed: apiendpoint: "https://api.fed.sumologic.com/api/" jp: diff --git a/aws-observability/templates/test/setup-infra/create_sumo_collector.yaml b/aws-observability/templates/test/setup-infra/create_sumo_collector.yaml index 6bb2eb27..699a6d79 100644 --- a/aws-observability/templates/test/setup-infra/create_sumo_collector.yaml +++ b/aws-observability/templates/test/setup-infra/create_sumo_collector.yaml @@ -5,7 +5,7 @@ Parameters: SumoLogicDeployment: Type: String Default: "" - Description: "Enter au, ca, ch, de, eu, fed, jp, kr, us1 or us2" + Description: "Enter au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2" SumoLogicAccessID: Type: String Description: "Sumo Logic Access ID. Used for Sumo Logic API calls." diff --git a/aws-observability/templates/test/setup-infra/create_sumo_kinesis_firehose_metrics_source.yaml b/aws-observability/templates/test/setup-infra/create_sumo_kinesis_firehose_metrics_source.yaml index aa7072a2..dbf4ee43 100644 --- a/aws-observability/templates/test/setup-infra/create_sumo_kinesis_firehose_metrics_source.yaml +++ b/aws-observability/templates/test/setup-infra/create_sumo_kinesis_firehose_metrics_source.yaml @@ -5,7 +5,7 @@ Parameters: SumoLogicDeployment: Type: String Default: "" - Description: "Enter au, ca, ch, de, eu, fed, jp, kr, us1 or us2" + Description: "Enter au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2" SumoLogicAccessID: Type: String Description: "Sumo Logic Access ID. Used for Sumo Logic API calls." @@ -50,6 +50,8 @@ Mappings: apiendpoint: "https://api.de.sumologic.com/api/" eu: apiendpoint: "https://api.eu.sumologic.com/api/" + esc: + apiendpoint: "https://api.esc.sumologic.com/api/" fed: apiendpoint: "https://api.fed.sumologic.com/api/" jp: diff --git a/aws-observability/templates/test/setup-infra/create_sumo_lambda_hepler.yaml b/aws-observability/templates/test/setup-infra/create_sumo_lambda_hepler.yaml index fa8498ca..de7a5793 100644 --- a/aws-observability/templates/test/setup-infra/create_sumo_lambda_hepler.yaml +++ b/aws-observability/templates/test/setup-infra/create_sumo_lambda_hepler.yaml @@ -5,7 +5,7 @@ Parameters: SumoLogicDeployment: Type: String Default: "" - Description: "Enter au, ca, ch, de, eu, fed, jp, kr, us1 or us2" + Description: "Enter au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2" SumoLogicAccessID: Type: String Description: "Sumo Logic Access ID. Used for Sumo Logic API calls." @@ -117,11 +117,11 @@ Resources: Type: AWS::Lambda::Function Properties: Handler: main.handler - Runtime: python3.13 + Runtime: python3.14 Description: "Lambda Function for deploying SumoLogic AWS Observability Solution." Code: S3Bucket: !FindInMap [ RegionMap, !Ref 'AWS::Region', bucketname ] - S3Key: "sumologic-aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.22.zip" + S3Key: "sumologic-aws-observability/apps/SumoLogicAWSObservabilityHelper/SumoLogicAWSObservabilityHelperv2.0.23.zip" MemorySize: 128 Timeout: 900 Role: !GetAtt LambdaRole.Arn diff --git a/aws-observability/templates/test/setup-infra/create_sumo_role.yaml b/aws-observability/templates/test/setup-infra/create_sumo_role.yaml index e56fb846..9894d84b 100644 --- a/aws-observability/templates/test/setup-infra/create_sumo_role.yaml +++ b/aws-observability/templates/test/setup-infra/create_sumo_role.yaml @@ -5,7 +5,7 @@ Parameters: SumoLogicDeployment: Type: String Default: "" - Description: "Enter au, ca, ch, de, eu, fed, jp, kr, us1 or us2" + Description: "Enter au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2" SumoLogicOrganizationId: Description: "Appears on the Account Overview page that displays information about your Sumo Logic organization. Used for IAM Role in Sumo Logic AWS Sources. Visit https://help.sumologic.com/docs/get-started/account-settings-preferences/" Type: String @@ -30,7 +30,7 @@ Resources: Statement: - Effect: Allow Principal: - AWS: !Sub "arn:aws:iam::${SumoLogicAccountID}:root" + AWS: !Sub "arn:${AWS::Partition}:iam::${SumoLogicAccountID}:root" Action: sts:AssumeRole Condition: StringEquals: diff --git a/aws-observability/templates/test/testbundles/all_testsuites_bundle.yaml b/aws-observability/templates/test/testbundles/all_testsuites_bundle.yaml index 43e6d058..0313ce2a 100644 --- a/aws-observability/templates/test/testbundles/all_testsuites_bundle.yaml +++ b/aws-observability/templates/test/testbundles/all_testsuites_bundle.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: diff --git a/aws-observability/templates/test/testbundles/lb_bundle.yaml b/aws-observability/templates/test/testbundles/lb_bundle.yaml index e04c4c28..394220cc 100644 --- a/aws-observability/templates/test/testbundles/lb_bundle.yaml +++ b/aws-observability/templates/test/testbundles/lb_bundle.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: diff --git a/aws-observability/templates/test/testbundles/regression_bundle.yaml b/aws-observability/templates/test/testbundles/regression_bundle.yaml index abc88f1a..cab081db 100644 --- a/aws-observability/templates/test/testbundles/regression_bundle.yaml +++ b/aws-observability/templates/test/testbundles/regression_bundle.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: diff --git a/aws-observability/templates/test/testcases/infra/create_source_existing_bucket_existing_sources.yaml b/aws-observability/templates/test/testcases/infra/create_source_existing_bucket_existing_sources.yaml index 430b7704..536e920e 100644 --- a/aws-observability/templates/test/testcases/infra/create_source_existing_bucket_existing_sources.yaml +++ b/aws-observability/templates/test/testcases/infra/create_source_existing_bucket_existing_sources.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: @@ -236,15 +236,15 @@ TestCase: AutoSubscribeLogGroups: 'Yes' AutoSubscribeLogGroupsOptions: 'Both' AutoSubscribeDestinationARNType: 'Kinesis' - AutoSubscribeDestinationARNValue: 'arn:aws:firehose:' + AutoSubscribeDestinationARNValue: "arn::firehose:" AutoSubscribeLogGroupPattern: 'lambda' - AutoSubscribeRoleArn: "arn:aws:iam::" + AutoSubscribeRoleArn: "arn::iam::" AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources: UseExistingLogs: 'true' DestinationArnType: 'Kinesis' - DestinationArnValue: 'arn:aws:firehose:' + DestinationArnValue: "arn::firehose:" LogGroupPattern: 'lambda' - RoleArn: "arn:aws:iam::" + RoleArn: "arn::iam::" sumoEC2MetricsAppStack: Section2aInstallApp: 'No' sumoAlbMetricsAppStack: diff --git a/aws-observability/templates/test/testcases/infra/default_param_no_alias_and_csv.yaml b/aws-observability/templates/test/testcases/infra/default_param_no_alias_and_csv.yaml index de827edf..ea706c0d 100644 --- a/aws-observability/templates/test/testcases/infra/default_param_no_alias_and_csv.yaml +++ b/aws-observability/templates/test/testcases/infra/default_param_no_alias_and_csv.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: @@ -257,9 +257,9 @@ TestCase: AutoSubscribeLogGroups: 'Yes' AutoSubscribeLogGroupsOptions: 'Both' AutoSubscribeDestinationARNType: 'Kinesis' - AutoSubscribeDestinationARNValue: 'arn:aws:firehose:' + AutoSubscribeDestinationARNValue: "arn::firehose:" AutoSubscribeLogGroupPattern: 'lambda' - AutoSubscribeRoleArn: "arn:aws:iam::" + AutoSubscribeRoleArn: "arn::iam::" AutoEnableOptions.AutoEnableS3LogsAlbAWSResources: BucketName: 'aws-observability-logs' AutoEnableResourceOptions: 'Both' @@ -269,9 +269,9 @@ TestCase: AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources: UseExistingLogs: 'true' DestinationArnType: 'Kinesis' - DestinationArnValue: 'arn:aws:firehose:' + DestinationArnValue: "arn::firehose:" LogGroupPattern: '\/aws\/(lambda|apigateway|rds)' - RoleArn: "arn:aws:iam::" + RoleArn: "arn::iam::" sumoEC2MetricsAppStack: Section2aInstallApp: 'Yes' sumoAlbMetricsAppStack: diff --git a/aws-observability/templates/test/testcases/infra/default_param_no_cloudtrail_invalid_mapping_csv.yaml b/aws-observability/templates/test/testcases/infra/default_param_no_cloudtrail_invalid_mapping_csv.yaml index cc11ba40..40eda67e 100644 --- a/aws-observability/templates/test/testcases/infra/default_param_no_cloudtrail_invalid_mapping_csv.yaml +++ b/aws-observability/templates/test/testcases/infra/default_param_no_cloudtrail_invalid_mapping_csv.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: @@ -257,9 +257,9 @@ TestCase: AutoSubscribeLogGroups: 'Yes' AutoSubscribeLogGroupsOptions: 'Both' AutoSubscribeDestinationARNType: 'Kinesis' - AutoSubscribeDestinationARNValue: 'arn:aws:firehose:' + AutoSubscribeDestinationARNValue: "arn::firehose:" AutoSubscribeLogGroupPattern: 'lambda' - AutoSubscribeRoleArn: "arn:aws:iam::" + AutoSubscribeRoleArn: "arn::iam::" AutoEnableOptions.AutoEnableS3LogsAlbAWSResources: BucketName: 'aws-observability-logs' AutoEnableResourceOptions: 'Both' @@ -269,9 +269,9 @@ TestCase: AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources: UseExistingLogs: 'true' DestinationArnType: 'Kinesis' - DestinationArnValue: 'arn:aws:firehose:' + DestinationArnValue: "arn::firehose:" LogGroupPattern: 'lambda' - RoleArn: "arn:aws:iam::" + RoleArn: "arn::iam::" sumoEC2MetricsAppStack: Section2aInstallApp: 'Yes' sumoAlbMetricsAppStack: diff --git a/aws-observability/templates/test/testcases/infra/default_param_no_cloudtrail_valid_mapping_csv.yaml b/aws-observability/templates/test/testcases/infra/default_param_no_cloudtrail_valid_mapping_csv.yaml index 8b6b3e39..9c6908d7 100644 --- a/aws-observability/templates/test/testcases/infra/default_param_no_cloudtrail_valid_mapping_csv.yaml +++ b/aws-observability/templates/test/testcases/infra/default_param_no_cloudtrail_valid_mapping_csv.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: @@ -257,9 +257,9 @@ TestCase: AutoSubscribeLogGroups: 'Yes' AutoSubscribeLogGroupsOptions: 'Both' AutoSubscribeDestinationARNType: 'Kinesis' - AutoSubscribeDestinationARNValue: 'arn:aws:firehose:' + AutoSubscribeDestinationARNValue: "arn::firehose:" AutoSubscribeLogGroupPattern: 'lambda' - AutoSubscribeRoleArn: "arn:aws:iam::" + AutoSubscribeRoleArn: "arn::iam::" AutoEnableOptions.AutoEnableS3LogsAlbAWSResources: BucketName: 'aws-observability-logs' AutoEnableResourceOptions: 'Both' @@ -269,9 +269,9 @@ TestCase: AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources: UseExistingLogs: 'true' DestinationArnType: 'Kinesis' - DestinationArnValue: 'arn:aws:firehose:' + DestinationArnValue: "arn::firehose:" LogGroupPattern: 'lambda' - RoleArn: "arn:aws:iam::" + RoleArn: "arn::iam::" sumoEC2MetricsAppStack: Section2aInstallApp: 'Yes' sumoAlbMetricsAppStack: diff --git a/aws-observability/templates/test/testcases/infra/existing_cloudtrail_alb_source.yaml b/aws-observability/templates/test/testcases/infra/existing_cloudtrail_alb_source.yaml index af9e79a2..dd519100 100644 --- a/aws-observability/templates/test/testcases/infra/existing_cloudtrail_alb_source.yaml +++ b/aws-observability/templates/test/testcases/infra/existing_cloudtrail_alb_source.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: diff --git a/aws-observability/templates/test/testcases/infra/existing_cloudtrail_bucket.yaml b/aws-observability/templates/test/testcases/infra/existing_cloudtrail_bucket.yaml index dcddf167..d0a028ff 100644 --- a/aws-observability/templates/test/testcases/infra/existing_cloudtrail_bucket.yaml +++ b/aws-observability/templates/test/testcases/infra/existing_cloudtrail_bucket.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: diff --git a/aws-observability/templates/test/testcases/infra/existing_cloudtrail_elb_source.yaml b/aws-observability/templates/test/testcases/infra/existing_cloudtrail_elb_source.yaml index bd94e90d..58a3eb96 100644 --- a/aws-observability/templates/test/testcases/infra/existing_cloudtrail_elb_source.yaml +++ b/aws-observability/templates/test/testcases/infra/existing_cloudtrail_elb_source.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: diff --git a/aws-observability/templates/test/testcases/infra/no_cloudtrail.yaml b/aws-observability/templates/test/testcases/infra/no_cloudtrail.yaml index 0009a863..7bfd5e39 100644 --- a/aws-observability/templates/test/testcases/infra/no_cloudtrail.yaml +++ b/aws-observability/templates/test/testcases/infra/no_cloudtrail.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: @@ -198,7 +198,7 @@ TestCase: AutoSubscribeLogGroups: 'Yes' AutoSubscribeLogGroupsOptions: 'New' AutoSubscribeDestinationARNType: 'Lambda' - AutoSubscribeDestinationARNValue: 'arn:aws:lambda:' + AutoSubscribeDestinationARNValue: 'arn::lambda:' AutoSubscribeLogGroupPattern: 'lambda' AutoSubscribeRoleArn: "" AutoEnableOptions.AutoEnableS3LogsAlbAWSResources: @@ -210,7 +210,7 @@ TestCase: AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources: UseExistingLogs: 'false' DestinationArnType: 'Lambda' - DestinationArnValue: 'arn:aws:lambda:' + DestinationArnValue: 'arn::lambda:' LogGroupPattern: 'lambda' RoleArn: "" sumoEC2MetricsAppStack: diff --git a/aws-observability/templates/test/testcases/infra/nothing_to_install.yaml b/aws-observability/templates/test/testcases/infra/nothing_to_install.yaml index 9d32ff2c..f12a2f57 100644 --- a/aws-observability/templates/test/testcases/infra/nothing_to_install.yaml +++ b/aws-observability/templates/test/testcases/infra/nothing_to_install.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: diff --git a/aws-observability/templates/test/testcases/infra/only_cloudtrail_with_loggroup_tags.yaml b/aws-observability/templates/test/testcases/infra/only_cloudtrail_with_loggroup_tags.yaml index 708030ed..9c86c651 100644 --- a/aws-observability/templates/test/testcases/infra/only_cloudtrail_with_loggroup_tags.yaml +++ b/aws-observability/templates/test/testcases/infra/only_cloudtrail_with_loggroup_tags.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: diff --git a/aws-observability/templates/test/testcases/infra/tag_filters_for_cw_metric_source_with_custom_namespaces.yaml b/aws-observability/templates/test/testcases/infra/tag_filters_for_cw_metric_source_with_custom_namespaces.yaml index cb477f02..31179773 100644 --- a/aws-observability/templates/test/testcases/infra/tag_filters_for_cw_metric_source_with_custom_namespaces.yaml +++ b/aws-observability/templates/test/testcases/infra/tag_filters_for_cw_metric_source_with_custom_namespaces.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: diff --git a/aws-observability/templates/test/testcases/lb/auto_enable_check_elb.yaml b/aws-observability/templates/test/testcases/lb/auto_enable_check_elb.yaml index a45bcaf2..7b751b14 100644 --- a/aws-observability/templates/test/testcases/lb/auto_enable_check_elb.yaml +++ b/aws-observability/templates/test/testcases/lb/auto_enable_check_elb.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: @@ -261,9 +261,9 @@ TestCase: AutoSubscribeLogGroups: 'Yes' AutoSubscribeLogGroupsOptions: 'Both' AutoSubscribeDestinationARNType: 'Kinesis' - AutoSubscribeDestinationARNValue: 'arn:aws:firehose:' + AutoSubscribeDestinationARNValue: 'arn::firehose:' AutoSubscribeLogGroupPattern: 'lambda' - AutoSubscribeRoleArn: "arn:aws:iam::" + AutoSubscribeRoleArn: "arn::iam::" AutoEnableOptions.AutoEnableS3LogsAlbAWSResources: BucketName: 'aws-observability-logs' AutoEnableResourceOptions: 'Both' @@ -273,9 +273,9 @@ TestCase: AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources: UseExistingLogs: 'true' DestinationArnType: 'Kinesis' - DestinationArnValue: 'arn:aws:firehose:' + DestinationArnValue: 'arn::firehose:' LogGroupPattern: 'lambda' - RoleArn: "arn:aws:iam::" + RoleArn: "arn::iam::" sumoEC2MetricsAppStack: Section2aInstallApp: 'Yes' sumoAlbMetricsAppStack: diff --git a/aws-observability/templates/test/testcases/lb/existing_source_with_alb_bucket.yaml b/aws-observability/templates/test/testcases/lb/existing_source_with_alb_bucket.yaml index 729f27f9..81f5e39c 100644 --- a/aws-observability/templates/test/testcases/lb/existing_source_with_alb_bucket.yaml +++ b/aws-observability/templates/test/testcases/lb/existing_source_with_alb_bucket.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: diff --git a/aws-observability/templates/test/testcases/lb/existing_source_with_elb_bucket.yaml b/aws-observability/templates/test/testcases/lb/existing_source_with_elb_bucket.yaml index f081a913..c636ceaf 100644 --- a/aws-observability/templates/test/testcases/lb/existing_source_with_elb_bucket.yaml +++ b/aws-observability/templates/test/testcases/lb/existing_source_with_elb_bucket.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: diff --git a/aws-observability/templates/test/testcases/upgrade_update/update/v2_15/disabled_telemetry.yaml b/aws-observability/templates/test/testcases/upgrade_update/update/v2_15/disabled_telemetry.yaml new file mode 100644 index 00000000..f530cb5c --- /dev/null +++ b/aws-observability/templates/test/testcases/upgrade_update/update/v2_15/disabled_telemetry.yaml @@ -0,0 +1,239 @@ +--- +Global: + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" + StackName: AWSO + ParallelTestsRun: 1 + GlobalParameters: + Default: + Section1eSumoLogicResourceRemoveOnDeleteStack: 'true' + Update: + Section1fSumoLogicSendTelemetry: 'false' +TestCase: + TestName: disabledTelemetry + Regions: '${SUMO_REGIONS}' + Skip: false + PreRequisitesInfra: + - CFNTemplateURL: "test/setup-infra/create_s3_bucket.yaml" + ImpactedParametersPath: + BucketName: + - "parameters.Section5dALBS3LogsBucketName" + - "assertions[AssertType==ParameterCheck].Assert.CreateCommonResources.ALBS3LogsBucketName" + - "assertions[AssertType==ParameterCheck].Assert.AutoEnableOptions.ALBS3LogsBucketName" + - "assertions[AssertType==ParameterCheck].Assert['AutoEnableOptions#AutoEnableS3LogsAlbAWSResources'].BucketName" + - CFNTemplateURL: "test/setup-infra/create_sumo_lambda_hepler.yaml" + CFNParameters: + SumoLogicDeployment: '${SUMO_DEPLOYMENT}' + SumoLogicAccessID: '${SUMO_ACCESS_ID}' + SumoLogicAccessKey: '${SUMO_ACCESS_KEY}' + AccountAlias: "updatet1" + - CFNTemplateURL: "test/setup-infra/create_sumo_collector.yaml" + CFNParameters: + SumoLogicDeployment: '${SUMO_DEPLOYMENT}' + SumoLogicAccessID: '${SUMO_ACCESS_ID}' + SumoLogicAccessKey: '${SUMO_ACCESS_KEY}' + SumoLambdaHelperArn: '${SumoLambdaHelperArn}' + - CFNTemplateURL: "test/setup-infra/create_sumo_cloudwatch_log_source.yaml" + CFNParameters: + SumoLogicDeployment: '${SUMO_DEPLOYMENT}' + SumoLogicAccessID: '${SUMO_ACCESS_ID}' + SumoLogicAccessKey: '${SUMO_ACCESS_KEY}' + SumoLambdaHelperArn: '${SumoLambdaHelperArn}' + SumoCollectorID: '${SumoCollectorID}' + AccountAlias: '${AccountAlias}' + ImpactedParametersPath: + SumoCloudWatchLogAPIURL: + - "parameters.Section7bLambdaCloudWatchLogsSourceUrl" + - "assertions[AssertType==ParameterCheck].Assert.sumoLambdaMetricsAppStack.Section6aCloudWatchLogsAPIUrl" + Parameters: + Values: + Section1aSumoLogicDeployment: '${SUMO_DEPLOYMENT}' + Section1bSumoLogicAccessID: '${SUMO_ACCESS_ID}' + Section1cSumoLogicAccessKey: '${SUMO_ACCESS_KEY}' + Section1dSumoLogicOrganizationId: '${SUMO_ORG_ID}' + Section1fSumoLogicSendTelemetry: 'true' + Section2aAccountAlias: 'updatet1' + Section2bAccountAliasMappingS3URL: '' + Section3aInstallObservabilityApps: 'No' + Section4aCreateMetricsSourceOptions: 'None' + Section4cCloudWatchExistingSourceAPIUrl: '' + Section5aAutoEnableS3LogsALBResourcesOptions: 'Existing' + Section5bALBCreateLogSource: 'Yes' + Section5dALBS3LogsBucketName: 'cf-templates-qpf3unpuo1hw-ap-southeast-4' + Section5eALBS3BucketPathExpression: '*abc*' + Section6aCreateCloudTrailLogSource: 'Yes' + Section7aLambdaCreateCloudWatchLogsSourceOptions: 'None' + Section7bLambdaCloudWatchLogsSourceUrl: 'https://api.sumologic.com/api/v1/collectors/261725249/sources/1511499202' + Section9bELBCreateLogSource: 'No' + UpdateParameters: + Values: + Section1fSumoLogicSendTelemetry: 'false' + Assertions: + - AssertType: ResourceExistence + Assert: + Resources: + - CreateCommonResources + - AutoEnableOptions + - sumoEC2MetricsAppStack + - sumoAlbMetricsAppStack + - sumoElbMetricsAppStack + - sumoDynamoDBMetricsAppStack + - sumoRdsMetricsAppStack + - sumoApiGatewayMetricsAppStack + - sumoSNSAppStack + - sumoSQSAppStack + - sumoLambdaMetricsAppStack + - sumoECSMetricsAppStack + - sumoElasticCacheMetricsAppStack + - CreateCommonResources.AddAccountField + - CreateCommonResources.AddRegionField + - CreateCommonResources.AddNamespaceField + - CreateCommonResources.AddAccountIdField + - CreateCommonResources.SumoLogicALBS3Policy + - CreateCommonResources.SumoLogicCloudTrailS3Policy + - CreateCommonResources.LambdaRole + - CreateCommonResources.LambdaHelper + - CreateCommonResources.AccountCheck + - CreateCommonResources.CommonBucketSNSTopic + - CreateCommonResources.CommonS3Bucket + - CreateCommonResources.CommonBucketPolicy + - CreateCommonResources.CommonSNSpolicy + - CreateCommonResources.CommonCloudTrail + - CreateCommonResources.CreateSumoLogicAWSExplorerView + - CreateCommonResources.SumoLogicSourceRole + - CreateCommonResources.SumoLogicHostedCollector + - CreateCommonResources.LambdaToDecideCWMetricsSources + - CreateCommonResources.Primerinvoke + - CreateCommonResources.ALBSource + - CreateCommonResources.ALBSNSTopic + - CreateCommonResources.ALBSNSpolicy + - CreateCommonResources.ALBSNSSubscription + - CreateCommonResources.CloudTrailSource + - CreateCommonResources.CloudTrailSNSSubscription + - AutoEnableOptions.AutoEnableS3LogsAlbAWSResources + - AutoEnableOptions.AutoEnableS3LogsAlbAWSResources.EnableExisitngAWSResourcesLambda + - AutoEnableOptions.AutoEnableS3LogsAlbAWSResources.ExistingAWSResources + - AutoEnableOptions.AutoEnableS3LogsAlbAWSResources.SumoLambdaRole + - sumoRdsMetricsAppStack.ClusterMetricRule + - sumoRdsMetricsAppStack.InstanceMetricRule + - sumoLambdaMetricsAppStack.SumoHTTPUpdateSource + - sumoLambdaMetricsAppStack.LambdaFieldExtractionRule + - sumoAlbMetricsAppStack.AlbLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.CloudTrailLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.AccessLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.MetricRule + - sumoSNSAppStack.FieldExtractionRule + - sumoSQSAppStack.FieldExtractionRule + - sumoDynamoDBMetricsAppStack.FieldExtractionRule + - sumoEC2MetricsAppStack.FieldExtractionRule + - sumoLambdaMetricsAppStack.LambdaCloudWatchLogsFieldExtractionRule + - sumoRdsMetricsAppStack.FieldExtractionRule + - sumoECSMetricsAppStack.FieldExtractionRule + - sumoElasticCacheMetricsAppStack.FieldExtractionRule + - sumoNlbMetricsAppStack + - sumoNlbMetricsAppStack.MetricRule + - CreateCommonResources.AccountAliasValue + - sumoAlbMetricsAppStack.AccountAliasValue + - sumoAlbMetricsAppStack.LambdaHelper + - sumoAlbMetricsAppStack.LambdaRole + - sumoElbMetricsAppStack.AccountAliasValue + - sumoElbMetricsAppStack.LambdaHelper + - sumoElbMetricsAppStack.LambdaRole + - sumoLambdaMetricsAppStack.AccountAliasValue + - sumoLambdaMetricsAppStack.GenericCloudWatchLogsFieldExtractionRule + - CreateCommonResources.LambdaHelperAlias + - CreateCommonResources.LambdaRoleAlias + - sumoAlbMetricsAppStack.AlbCloudTrailLogsFieldExtractionRule + - AssertType: OutputsCheck + Assert: + Outputs: + - CreateCommonResources.LambdaHelperARN + - CreateCommonResources.EnterpriseCheck + - CreateCommonResources.PaidAccountCheck + - CreateCommonResources.Namespaces + - CreateCommonResources.LambdaRoleARN + - CreateCommonResources.BucketName + - AutoEnableOptions.AutoEnableS3LogsAlbAWSResources.EnableExisitngAWSResourcesLambda + - sumoLambdaMetricsAppStack.ExistingCloudWatchLogSourceName + - CreateCommonResources.CollectorName + - CreateCommonResources.AccountAlias + - AssertType: ParameterCheck + Assert: + CreateCommonResources: + AccountAlias: "updatet1" + AccountAliasMappingS3URL: "" + CreateMetaDataSource: 'No' + MetaDataSourceName: "" + MetaDataSourceCategory: "" + CreateCloudWatchMetricsSource: 'No' + CloudWatchMetricsSourceName: '' + CloudWatchMetricsNameSpaces: "AWS/ApplicationELB, AWS/ApiGateway, AWS/DynamoDB, AWS/Lambda, AWS/RDS, AWS/ECS, AWS/ElastiCache, AWS/ELB, AWS/NetworkELB" + ScanInterval: "30000" + CloudWatchMetricSourceCategory: "" + CreateALBLogSource: 'Yes' + CreateALBS3Bucket: 'No' + ALBS3LogsBucketName: "cf-templates-qpf3unpuo1hw-ap-southeast-4" + ALBS3BucketPathExpression: '/elasticloadbalancing//*' + ALBLogsSourceName: "alb-logs-" + ALBLogsSourceCategory: "aws/observability/alb/logs" + CreateCloudTrailLogSource: 'Yes' + CreateCloudTrailBucket: 'Yes' + CloudTrailLogsBucketName: "" + CloudTrailBucketPathExpression: '/CloudTrail//*' + CloudTrailLogsSourceName: "cloudtrail-logs-" + CloudTrailLogsSourceCategory: "aws/observability/cloudtrail/logs" + CreateCloudWatchLogSource: 'No' + CloudWatchLogsSourceName: "cloudwatch-logs-" + CloudWatchLogsSourceCategory: "aws/observability/cloudwatch/logs" + CreateKinesisFirehoseLogSource: 'No' + KinesisFirehoseLogsSourceName: 'kinesis-firehose-cloudwatch-logs-' + KinesisFirehoseLogsSourceCategory: 'aws/observability/cloudwatch/logs' + CreateKinesisFirehoseMetricsSource: 'No' + KinesisFirehoseMetricsSourceName: 'cloudwatch-metrics-' + KinesisFirehoseMetricSourceCategory: 'aws/observability/cloudwatch/metrics' + AutoEnableOptions: + ALBAutoEnableS3Logs: 'Yes' + ALBS3LogsBucketName: 'cf-templates-qpf3unpuo1hw-ap-southeast-4' + AutoSubscribeLogGroups: 'No' + AutoEnableOptions.AutoEnableS3LogsAlbAWSResources: + BucketName: 'cf-templates-qpf3unpuo1hw-ap-southeast-4' + AutoEnableResourceOptions: 'Existing' + sumoEC2MetricsAppStack: + Section2aInstallApp: 'No' + sumoAlbMetricsAppStack: + Section2aAccountAlias: 'updatet1' + Section3aInstallApp: 'No' + Section4aCloudWatchExistingSourceAPIUrl: '' + Section5aALBLogsAPIUrl: '' + Section5bALBLogsSourceName: '*alb-logs*' + sumoDynamoDBMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoRdsMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoApiGatewayMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoLambdaMetricsAppStack: + Section2aAccountAlias: 'updatet1' + Section3aInstallApp: 'No' + Section4aCloudWatchExistingSourceAPIUrl: '' + Section5aCloudTrailLogsAPIUrl: '' + Section5bCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section6aCloudWatchLogsAPIUrl: 'https://api.sumologic.com/api/v1/collectors/261725249/sources/1511499202' + Section6bCloudWatchLogsSourceName: '' + sumoECSMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoElasticCacheMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoNlbMetricsAppStack: + Section2aInstallApp: 'No' + Section3aNLBLogsSourceName: '' + Section3bNLBSourceUpdated: 'No' \ No newline at end of file diff --git a/aws-observability/templates/test/testcases/upgrade_update/update/v2_15/existing_cloudtrail_bucket.yaml b/aws-observability/templates/test/testcases/upgrade_update/update/v2_15/existing_cloudtrail_bucket.yaml new file mode 100644 index 00000000..7347dd13 --- /dev/null +++ b/aws-observability/templates/test/testcases/upgrade_update/update/v2_15/existing_cloudtrail_bucket.yaml @@ -0,0 +1,227 @@ +--- +Global: + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" + StackName: AWSO + ParallelTestsRun: 1 + GlobalParameters: + Default: + Section1eSumoLogicResourceRemoveOnDeleteStack: 'true' + Section2aAccountAlias: 'infrat9' + Update: + Section10aAppInstallLocation: "Admin Recommended Folder" + Section10bShare: 'True' +TestCase: + TestName: existingCloudTrailBucket + Regions: '${SUMO_REGIONS}' + Skip: false + PreRequisitesInfra: + - CFNTemplateURL: "test/setup-infra/create_s3_bucket.yaml" + ImpactedParametersPath: + BucketName: + - "parameters.Section6cCloudTrailLogsBucketName" + - "assertions[AssertType==ParameterCheck].Assert.CreateCommonResources.CloudTrailLogsBucketName" + Parameters: + Values: + Section1aSumoLogicDeployment: '${SUMO_DEPLOYMENT}' + Section1bSumoLogicAccessID: '${SUMO_ACCESS_ID}' + Section1cSumoLogicAccessKey: '${SUMO_ACCESS_KEY}' + Section1dSumoLogicOrganizationId: '${SUMO_ORG_ID}' + Section2aAccountAlias: 'infrat9' + Section2bAccountAliasMappingS3URL: '' + Section3aInstallObservabilityApps: 'No' + Section4aCreateMetricsSourceOptions: 'CloudWatch Metrics Source' + Section5aAutoEnableS3LogsALBResourcesOptions: 'None' + Section5bALBCreateLogSource: 'Yes' + Section6aCreateCloudTrailLogSource: 'Yes' + Section6cCloudTrailLogsBucketName: 'cf-templates-1qpf3unpuo1hw-' + Section6dCloudTrailBucketPathExpression: '*abc*' + Section7aLambdaCreateCloudWatchLogsSourceOptions: 'None' + Section4bMetricsNameSpaces: 'AWS/ApiGateway, AWS/DynamoDB, AWS/ElastiCache, AWS/EC2' + Section9aAutoEnableS3LogsELBResourcesOptions: 'None' + Section9bELBCreateLogSource: 'Yes' + Section10aAppInstallLocation: "Admin Recommended Folder" + Section10bShare: 'False' + UpdateParameters: + Values: + Section10aAppInstallLocation: "Admin Recommended Folder" + Section10bShare: 'True' + Assertions: + - AssertType: ResourceExistence + Assert: + Resources: + - LambdaRole + - LambdaPermission + - PrimerInvoke + - TelemetryLambda + - CreateCommonResources + - sumoEC2MetricsAppStack + - sumoAlbMetricsAppStack + - sumoElbMetricsAppStack + - sumoDynamoDBMetricsAppStack + - sumoRdsMetricsAppStack + - sumoApiGatewayMetricsAppStack + - sumoSNSAppStack + - sumoSQSAppStack + - sumoLambdaMetricsAppStack + - sumoECSMetricsAppStack + - sumoElasticCacheMetricsAppStack + - CreateCommonResources.AddAccountField + - CreateCommonResources.AddRegionField + - CreateCommonResources.AddNamespaceField + - CreateCommonResources.AddAccountIdField + - CreateCommonResources.SumoLogicALBS3Policy + - CreateCommonResources.SumoLogicELBS3Policy + - CreateCommonResources.SumoLogicCloudTrailS3Policy + - CreateCommonResources.LambdaRole + - CreateCommonResources.LambdaHelper + - CreateCommonResources.AccountCheck + - CreateCommonResources.CommonBucketSNSTopic + - CreateCommonResources.CommonS3Bucket + - CreateCommonResources.CommonBucketPolicy + - CreateCommonResources.CommonSNSpolicy + - CreateCommonResources.CreateSumoLogicAWSExplorerView + - CreateCommonResources.SumoLogicSourceRole + - CreateCommonResources.SumoLogicHostedCollector + - CreateCommonResources.LambdaToDecideCWMetricsSources + - CreateCommonResources.Primerinvoke + - CreateCommonResources.CloudWatchMetricsFirstStack + - CreateCommonResources.CloudWatchMetricsSecondStack + - CreateCommonResources.CloudWatchMetricsThirdStack + - CreateCommonResources.CloudWatchMetricsFirstStack.SecondCloudwatchMetricsSource + - CreateCommonResources.CloudWatchMetricsFirstStack.ThirdCloudwatchMetricsSource + - CreateCommonResources.CloudWatchMetricsSecondStack.SecondCloudwatchMetricsSource + - CreateCommonResources.CloudWatchMetricsSecondStack.FifthCloudwatchMetricsSource + - CreateCommonResources.ALBSource + - CreateCommonResources.ALBSNSSubscription + - CreateCommonResources.ELBSource + - CreateCommonResources.ELBSNSSubscription + - CreateCommonResources.CloudTrailSource + - CreateCommonResources.CloudTrailSNSTopic + - CreateCommonResources.CloudTrailSNSpolicy + - CreateCommonResources.CloudTrailSNSSubscription + - sumoRdsMetricsAppStack.ClusterMetricRule + - sumoRdsMetricsAppStack.InstanceMetricRule + - sumoLambdaMetricsAppStack.LambdaFieldExtractionRule + - sumoAlbMetricsAppStack.AlbLogsFieldExtractionRule + - sumoElbMetricsAppStack.ElbLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.CloudTrailLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.AccessLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.MetricRule + - sumoSNSAppStack.FieldExtractionRule + - sumoSQSAppStack.FieldExtractionRule + - sumoDynamoDBMetricsAppStack.FieldExtractionRule + - sumoRdsMetricsAppStack.FieldExtractionRule + - sumoECSMetricsAppStack.FieldExtractionRule + - sumoElasticCacheMetricsAppStack.FieldExtractionRule + - sumoEC2MetricsAppStack.FieldExtractionRule + - sumoNlbMetricsAppStack + - sumoNlbMetricsAppStack.MetricRule + - CreateCommonResources.AccountAliasValue + - sumoAlbMetricsAppStack.AccountAliasValue + - sumoAlbMetricsAppStack.LambdaHelper + - sumoAlbMetricsAppStack.LambdaRole + - sumoElbMetricsAppStack.AccountAliasValue + - sumoElbMetricsAppStack.LambdaHelper + - sumoElbMetricsAppStack.LambdaRole + - sumoLambdaMetricsAppStack.AccountAliasValue + - CreateCommonResources.LambdaHelperAlias + - CreateCommonResources.LambdaRoleAlias + - sumoAlbMetricsAppStack.AlbCloudTrailLogsFieldExtractionRule + - sumoElbMetricsAppStack.ClbCloudTrailLogsFieldExtractionRule + - AssertType: OutputsCheck + Assert: + Outputs: + - CreateCommonResources.LambdaHelperARN + - CreateCommonResources.EnterpriseCheck + - CreateCommonResources.PaidAccountCheck + - CreateCommonResources.Namespaces + - CreateCommonResources.LambdaRoleARN + - CreateCommonResources.BucketName + - CreateCommonResources.CollectorName + - CreateCommonResources.AccountAlias + - AssertType: ParameterCheck + Assert: + CreateCommonResources: + AccountAlias: "infrat9" + AccountAliasMappingS3URL: "" + CreateMetaDataSource: 'No' + MetaDataSourceName: "" + MetaDataSourceCategory: "" + CreateCloudWatchMetricsSource: 'Yes' + CloudWatchMetricsSourceName: 'cloudwatch-metrics-' + CloudWatchMetricsNameSpaces: "AWS/ApiGateway, AWS/DynamoDB, AWS/ElastiCache" + ScanInterval: "30000" + CloudWatchMetricSourceCategory: "aws/observability/cloudwatch/metrics" + CreateALBLogSource: 'Yes' + CreateALBS3Bucket: 'Yes' + ALBS3LogsBucketName: "" + ALBS3BucketPathExpression: '*AWSLogs/*/elasticloadbalancing/*' + ALBLogsSourceName: "alb-logs-" + ALBLogsSourceCategory: "aws/observability/alb/logs" + CreateELBLogSource: 'Yes' + CreateELBS3Bucket: 'Yes' + ELBS3LogsBucketName: "" + ELBS3BucketPathExpression: 'classicloadbalancing/AWSLogs/' + ELBLogsSourceName: "classic-lb-logs-" + ELBLogsSourceCategory: "aws/observability/clb/logs" + CreateCloudTrailLogSource: 'Yes' + CreateCloudTrailBucket: 'No' + CloudTrailLogsBucketName: "cf-templates-1qpf3unpuo1hw-" + CloudTrailBucketPathExpression: '*abc*' + CloudTrailLogsSourceName: "cloudtrail-logs-" + CloudTrailLogsSourceCategory: "aws/observability/cloudtrail/logs" + CreateCloudWatchLogSource: 'No' + CloudWatchLogsSourceName: "cloudwatch-logs-" + CloudWatchLogsSourceCategory: "aws/observability/cloudwatch/logs" + CreateKinesisFirehoseLogSource: 'No' + KinesisFirehoseLogsSourceName: 'kinesis-firehose-cloudwatch-logs-' + KinesisFirehoseLogsSourceCategory: 'aws/observability/cloudwatch/logs' + CreateKinesisFirehoseMetricsSource: 'No' + KinesisFirehoseMetricsSourceName: 'cloudwatch-metrics-' + KinesisFirehoseMetricSourceCategory: 'aws/observability/cloudwatch/metrics' + sumoEC2MetricsAppStack: + Section2aInstallApp: 'No' + sumoAlbMetricsAppStack: + Section2aAccountAlias: 'infrat9' + Section3aInstallApp: 'No' + Section4aCloudWatchExistingSourceAPIUrl: '' + Section5aALBLogsAPIUrl: '' + Section5bALBLogsSourceName: '*alb-logs*' + sumoElbMetricsAppStack: + Section2aAccountAlias: 'infrat9' + Section3aInstallApp: 'No' + Section4aCloudWatchExistingSourceAPIUrl: '' + Section5aELBLogsAPIUrl: '' + Section5bELBLogsSourceName: '*elb-logs*' + sumoDynamoDBMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoRdsMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoApiGatewayMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoLambdaMetricsAppStack: + Section2aAccountAlias: 'infrat9' + Section3aInstallApp: 'No' + Section4aCloudWatchExistingSourceAPIUrl: '' + Section5aCloudTrailLogsAPIUrl: '' + Section5bCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section6aCloudWatchLogsAPIUrl: '' + Section6bCloudWatchLogsSourceName: '' + sumoECSMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoElasticCacheMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoNlbMetricsAppStack: + Section2aInstallApp: 'No' + Section3aNLBLogsSourceName: '' + Section3bNLBSourceUpdated: 'No' \ No newline at end of file diff --git a/aws-observability/templates/test/testcases/upgrade_update/upgrade/v2_15/v2_12_create_source_existing_bucket_existing_sources.yaml b/aws-observability/templates/test/testcases/upgrade_update/upgrade/v2_15/v2_12_create_source_existing_bucket_existing_sources.yaml new file mode 100644 index 00000000..27e08071 --- /dev/null +++ b/aws-observability/templates/test/testcases/upgrade_update/upgrade/v2_15/v2_12_create_source_existing_bucket_existing_sources.yaml @@ -0,0 +1,295 @@ +--- +Global: + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.11.0/sumologic_observability.master.template.yaml" + StackName: AWSO + ParallelTestsRun: 1 + GlobalParameters: + Default: + Section1eSumoLogicResourceRemoveOnDeleteStack: 'true' + Section2aAccountAlias: 'upgradev210to211' +TestCase: + TestName: v2_12ToV2_15CreateSourceExistingBucketExistingSources + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.12.0/sumologic_observability.master.template.yaml" + UpgradeTemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" + Regions: '${SUMO_REGIONS}' + Skip: false + PreRequisitesInfra: + - CFNTemplateURL: "test/setup-infra/create_s3_bucket.yaml" + ImpactedParametersPath: + BucketName: + - "parameters.Section5dALBS3LogsBucketName" + - "parameters.Section6cCloudTrailLogsBucketName" + - "parameters.Section9dELBS3LogsBucketName" + Parameters: + Values: + Section1aSumoLogicDeployment: '${SUMO_DEPLOYMENT}' + Section1bSumoLogicAccessID: '${SUMO_ACCESS_ID}' + Section1cSumoLogicAccessKey: '${SUMO_ACCESS_KEY}' + Section1dSumoLogicOrganizationId: '${SUMO_ORG_ID}' + Section2aAccountAlias: 'upgradev210to211' + Section2bAccountAliasMappingS3URL: '' + Section3aInstallObservabilityApps: 'No' + Section4aCreateMetricsSourceOptions: 'CloudWatch Metrics Source' + Section4bMetricsNameSpaces: 'AWS/ApiGateway, AWS/DynamoDB, AWS/ElastiCache, AWS/SNS, AWS/SQS' + Section4cCloudWatchExistingSourceAPIUrl: 'https://api.us2.sumologic.com/api/v1/collectors/350831942/sources/2763251087' + Section5aAutoEnableS3LogsALBResourcesOptions: 'None' + Section5bALBCreateLogSource: 'Yes' + Section5cALBLogsSourceUrl: 'https://api.us2.sumologic.com/api/v1/collectors/350831942/sources/2763251087' + Section5dALBS3LogsBucketName: 'newapigateway' + Section5eALBS3BucketPathExpression: '*abc*' + Section6aCreateCloudTrailLogSource: 'Yes' + Section6bCloudTrailLogsSourceUrl: 'https://api.us2.sumologic.com/api/v1/collectors/350831942/sources/2763251087' + Section6cCloudTrailLogsBucketName: 'newapigateway' + Section6dCloudTrailBucketPathExpression: '*abc*' + Section7aLambdaCreateCloudWatchLogsSourceOptions: 'Both (Switch from Lambda Log Forwarder to Kinesis Firehose Log Source)' + Section7bLambdaCloudWatchLogsSourceUrl: "https://api.us2.sumologic.com/api/v1/collectors/350831942/sources/2763257213" + Section7cAutoSubscribeLogGroupsOptions: "Both" + Section9aAutoEnableS3LogsELBResourcesOptions: 'None' + Section9bELBCreateLogSource: 'Yes' + Section9cELBLogsSourceUrl: 'https://api.us2.sumologic.com/api/v1/collectors/350831942/sources/2763251087' + Section9dELBS3LogsBucketName: 'akhilblogs-' + Section9eELBS3BucketPathExpression: '*abc*' + Assertions: + - AssertType: ResourceExistence + Assert: + Resources: + - LambdaRole + - LambdaPermission + - PrimerInvoke + - TelemetryLambda + - CreateCommonResources + - sumoEC2MetricsAppStack + - sumoAlbMetricsAppStack + - sumoElbMetricsAppStack + - sumoDynamoDBMetricsAppStack + - sumoRdsMetricsAppStack + - sumoApiGatewayMetricsAppStack + - sumoSNSAppStack + - sumoSQSAppStack + - sumoLambdaMetricsAppStack + - sumoECSMetricsAppStack + - sumoElasticCacheMetricsAppStack + - CreateCommonResources.AddAccountField + - CreateCommonResources.AddRegionField + - CreateCommonResources.AddNamespaceField + - CreateCommonResources.AddAccountIdField + - CreateCommonResources.SumoLogicALBS3Policy + - CreateCommonResources.SumoLogicELBS3Policy + - CreateCommonResources.SumoLogicCloudTrailS3Policy + - CreateCommonResources.LambdaRole + - CreateCommonResources.LambdaHelper + - CreateCommonResources.AccountCheck + - CreateCommonResources.CreateSumoLogicAWSExplorerView + - CreateCommonResources.SumoLogicSourceRole + - CreateCommonResources.SumoLogicHostedCollector + - CreateCommonResources.LambdaToDecideCWMetricsSources + - CreateCommonResources.Primerinvoke + - CreateCommonResources.CloudWatchMetricsFirstStack + - CreateCommonResources.CloudWatchMetricsSecondStack + - CreateCommonResources.CloudWatchMetricsThirdStack.FirstCloudwatchMetricsSource + - CreateCommonResources.CloudWatchMetricsFirstStack.SecondCloudwatchMetricsSource + - CreateCommonResources.CloudWatchMetricsFirstStack.ThirdCloudwatchMetricsSource + - CreateCommonResources.CloudWatchMetricsSecondStack.SecondCloudwatchMetricsSource + - CreateCommonResources.CloudWatchMetricsThirdStack + - CreateCommonResources.CloudWatchMetricsThirdStack.SecondCloudwatchMetricsSource + - CreateCommonResources.ALBSource + - CreateCommonResources.ALBSNSTopic + - CreateCommonResources.ALBSNSpolicy + - CreateCommonResources.ALBSNSSubscription + - CreateCommonResources.ELBSource + - CreateCommonResources.ELBSNSTopic + - CreateCommonResources.ELBSNSpolicy + - CreateCommonResources.ELBSNSSubscription + - CreateCommonResources.CloudTrailSource + - CreateCommonResources.CloudTrailSNSTopic + - CreateCommonResources.CloudTrailSNSpolicy + - CreateCommonResources.CloudTrailSNSSubscription + - sumoRdsMetricsAppStack.ClusterMetricRule + - sumoRdsMetricsAppStack.InstanceMetricRule + - sumoLambdaMetricsAppStack.LambdaFieldExtractionRule + - sumoAlbMetricsAppStack.AlbLogsFieldExtractionRule + - sumoElbMetricsAppStack.ElbLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.CloudTrailLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.AccessLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.MetricRule + - sumoSNSAppStack.FieldExtractionRule + - sumoSQSAppStack.FieldExtractionRule + - sumoDynamoDBMetricsAppStack.FieldExtractionRule + - sumoLambdaMetricsAppStack.LambdaCloudWatchLogsFieldExtractionRule + - sumoLambdaMetricsAppStack.GenericCloudWatchLogsFieldExtractionRule + - sumoRdsMetricsAppStack.FieldExtractionRule + - sumoECSMetricsAppStack.FieldExtractionRule + - sumoElasticCacheMetricsAppStack.FieldExtractionRule + - sumoEC2MetricsAppStack.FieldExtractionRule + - sumoNlbMetricsAppStack + - sumoNlbMetricsAppStack.MetricRule + - CreateCommonResources.KinesisFirehoseLogsStack + - CreateCommonResources.KinesisFirehoseLogsSource + - CreateCommonResources.KinesisFirehoseLogsStack.AttachBucketPolicyToFirehoseLogsRole + - CreateCommonResources.KinesisFirehoseLogsStack.FailedDataBucket + - CreateCommonResources.KinesisFirehoseLogsStack.FirehoseLogsRole + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsDeliveryStream + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsFirehoseRolePolicy + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsLogGroup + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsLogStream + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsLogStreamS3 + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsRole + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsRolePolicy + - CreateCommonResources.KinesisFirehoseLogsStack.SubscriptionFilter + - AutoEnableOptions + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.InvokeLambdaConnector + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupExistingLambdaConnector + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupExistingLambdaConnectorRole + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupLambdaConnector + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupLambdaConnectorLambdaTrigger + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupLambdaConnectorLambdaTriggerPermission + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupLambdaConnectorRole + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.sumoIAMPassRolePolicy + - CreateCommonResources.CloudWatchEventFunction + - CreateCommonResources.CloudWatchHTTPSource + - CreateCommonResources.CloudWatchEventFunction.SumoCWDeadLetterQueue + - CreateCommonResources.CloudWatchEventFunction.SumoCWEmailSNSTopic + - CreateCommonResources.CloudWatchEventFunction.SumoCWEventsInvokeLambdaPermission + - CreateCommonResources.CloudWatchEventFunction.SumoCWLambdaExecutionRole + - CreateCommonResources.CloudWatchEventFunction.SumoCWLambdaPermission + - CreateCommonResources.CloudWatchEventFunction.SumoCWLogGroup + - CreateCommonResources.CloudWatchEventFunction.SumoCWLogSubsriptionFilter + - CreateCommonResources.CloudWatchEventFunction.SumoCWLogsLambda + - CreateCommonResources.CloudWatchEventFunction.SumoCWProcessDLQLambda + - CreateCommonResources.CloudWatchEventFunction.SumoCWProcessDLQScheduleRule + - CreateCommonResources.CloudWatchEventFunction.SumoCWSpilloverAlarm + - CreateCommonResources.AccountAliasValue + - sumoAlbMetricsAppStack.AccountAliasValue + - sumoAlbMetricsAppStack.LambdaHelper + - sumoAlbMetricsAppStack.LambdaRole + - sumoElbMetricsAppStack.AccountAliasValue + - sumoElbMetricsAppStack.LambdaHelper + - sumoElbMetricsAppStack.LambdaRole + - sumoLambdaMetricsAppStack.AccountAliasValue + - CreateCommonResources.LambdaHelperAlias + - CreateCommonResources.LambdaRoleAlias + - sumoAlbMetricsAppStack.AlbCloudTrailLogsFieldExtractionRule + - sumoElbMetricsAppStack.ClbCloudTrailLogsFieldExtractionRule + - AssertType: OutputsCheck + Assert: + Outputs: + - CreateCommonResources.LambdaHelperARN + - CreateCommonResources.EnterpriseCheck + - CreateCommonResources.PaidAccountCheck + - CreateCommonResources.Namespaces + - CreateCommonResources.LambdaRoleARN + - CreateCommonResources.KinesisLogsDeliveryStreamARN + - CreateCommonResources.KinesisLogsRoleARN + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsLogGroupARN + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsDeliveryStreamARN + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsRoleARN + - CreateCommonResources.KinesisFirehoseLogsStack.FailedDataBucketArn + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupLambdaConnector + - CreateCommonResources.CloudWatchLambdaARN + - CreateCommonResources.CloudWatchEventFunction.SumoCWLogsLambdaArn + - CreateCommonResources.CollectorName + - CreateCommonResources.AccountAlias + - AssertType: ParameterCheck + Assert: + CreateCommonResources: + AccountAlias: "upgradev210to211" + AccountAliasMappingS3URL: "" + CreateMetaDataSource: 'No' + MetaDataSourceName: "" + MetaDataSourceCategory: "" + CreateCloudWatchMetricsSource: 'Yes' + CloudWatchMetricsSourceName: 'cloudwatch-metrics-' + CloudWatchMetricsNameSpaces: "AWS/ApiGateway, AWS/DynamoDB, AWS/ElastiCache, AWS/SNS, AWS/SQS" + ScanInterval: "30000" + CloudWatchMetricSourceCategory: "aws/observability/cloudwatch/metrics" + CreateALBLogSource: 'Yes' + CreateALBS3Bucket: 'No' + ALBS3LogsBucketName: "" + ALBS3BucketPathExpression: '' + ALBLogsSourceName: "alb-logs-" + ALBLogsSourceCategory: "aws/observability/alb/logs" + CreateELBLogSource: 'Yes' + CreateELBS3Bucket: 'No' + ELBS3LogsBucketName: "" + ELBS3BucketPathExpression: '' + ELBLogsSourceName: "classic-lb-logs-" + ELBLogsSourceCategory: "aws/observability/clb/logs" + CreateCloudTrailLogSource: 'Yes' + CreateCloudTrailBucket: 'No' + CloudTrailLogsBucketName: "" + CloudTrailBucketPathExpression: '' + CloudTrailLogsSourceName: "cloudtrail-logs-" + CloudTrailLogsSourceCategory: "aws/observability/cloudtrail/logs" + CreateCloudWatchLogSource: 'Yes' + CloudWatchLogsSourceName: "cloudwatch-logs-" + CloudWatchLogsSourceCategory: "aws/observability/cloudwatch/logs" + CreateKinesisFirehoseLogSource: 'Yes' + KinesisFirehoseLogsSourceName: 'kinesis-firehose-cloudwatch-logs-' + KinesisFirehoseLogsSourceCategory: 'aws/observability/cloudwatch/logs' + CreateKinesisFirehoseMetricsSource: 'No' + KinesisFirehoseMetricsSourceName: 'cloudwatch-metrics-' + KinesisFirehoseMetricSourceCategory: 'aws/observability/cloudwatch/metrics' + CreateCommonResources.KinesisFirehoseLogsStack: + Section2aCreateS3Bucket: 'Yes' + AutoEnableOptions: + ALBAutoEnableS3Logs: 'No' + ELBAutoEnableS3Logs: 'No' + AutoSubscribeLogGroups: 'Yes' + AutoSubscribeLogGroupsOptions: 'Both' + AutoSubscribeDestinationARNType: 'Kinesis' + AutoSubscribeDestinationARNValue: 'arn::firehose:' + AutoSubscribeLogGroupPattern: 'lambda' + AutoSubscribeRoleArn: "arn::iam::" + AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources: + UseExistingLogs: 'true' + DestinationArnType: 'Kinesis' + DestinationArnValue: 'arn::firehose:' + LogGroupPattern: 'lambda' + RoleArn: "arn::iam::" + sumoEC2MetricsAppStack: + Section2aInstallApp: 'No' + sumoAlbMetricsAppStack: + Section2aAccountAlias: 'upgradev210to211' + Section3aInstallApp: 'No' + Section4aCloudWatchExistingSourceAPIUrl: '' + Section5aALBLogsAPIUrl: '' + Section5bALBLogsSourceName: '*alb-logs*' + sumoElbMetricsAppStack: + Section2aAccountAlias: 'upgradev210to211' + Section3aInstallApp: 'No' + Section4aCloudWatchExistingSourceAPIUrl: '' + Section5aELBLogsAPIUrl: '' + Section5bELBLogsSourceName: '*elb-logs*' + sumoDynamoDBMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoRdsMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoApiGatewayMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoLambdaMetricsAppStack: + Section2aAccountAlias: 'upgradev210to211' + Section3aInstallApp: 'No' + Section4aCloudWatchExistingSourceAPIUrl: '' + Section5aCloudTrailLogsAPIUrl: '' + Section5bCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section6aCloudWatchLogsAPIUrl: '' + Section6bCloudWatchLogsSourceName: '*cloudwatch-logs*' + sumoECSMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoElasticCacheMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoNlbMetricsAppStack: + Section2aInstallApp: 'No' + Section3aNLBLogsSourceName: '' + Section3bNLBSourceUpdated: 'No' \ No newline at end of file diff --git a/aws-observability/templates/test/testcases/upgrade_update/upgrade/v2_15/v2_13_create_source_existing_bucket_existing_sources.yaml b/aws-observability/templates/test/testcases/upgrade_update/upgrade/v2_15/v2_13_create_source_existing_bucket_existing_sources.yaml new file mode 100644 index 00000000..5de91c8c --- /dev/null +++ b/aws-observability/templates/test/testcases/upgrade_update/upgrade/v2_15/v2_13_create_source_existing_bucket_existing_sources.yaml @@ -0,0 +1,295 @@ +--- +Global: + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.11.0/sumologic_observability.master.template.yaml" + StackName: AWSO + ParallelTestsRun: 1 + GlobalParameters: + Default: + Section1eSumoLogicResourceRemoveOnDeleteStack: 'true' + Section2aAccountAlias: 'upgradev210to211' +TestCase: + TestName: v2_13ToV2_15CreateSourceExistingBucketExistingSources + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.13.0/sumologic_observability.master.template.yaml" + UpgradeTemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" + Regions: '${SUMO_REGIONS}' + Skip: false + PreRequisitesInfra: + - CFNTemplateURL: "test/setup-infra/create_s3_bucket.yaml" + ImpactedParametersPath: + BucketName: + - "parameters.Section5dALBS3LogsBucketName" + - "parameters.Section6cCloudTrailLogsBucketName" + - "parameters.Section9dELBS3LogsBucketName" + Parameters: + Values: + Section1aSumoLogicDeployment: '${SUMO_DEPLOYMENT}' + Section1bSumoLogicAccessID: '${SUMO_ACCESS_ID}' + Section1cSumoLogicAccessKey: '${SUMO_ACCESS_KEY}' + Section1dSumoLogicOrganizationId: '${SUMO_ORG_ID}' + Section2aAccountAlias: 'upgradev210to211' + Section2bAccountAliasMappingS3URL: '' + Section3aInstallObservabilityApps: 'No' + Section4aCreateMetricsSourceOptions: 'CloudWatch Metrics Source' + Section4bMetricsNameSpaces: 'AWS/ApiGateway, AWS/DynamoDB, AWS/ElastiCache, AWS/SNS, AWS/SQS' + Section4cCloudWatchExistingSourceAPIUrl: 'https://api.us2.sumologic.com/api/v1/collectors/350831942/sources/2763251087' + Section5aAutoEnableS3LogsALBResourcesOptions: 'None' + Section5bALBCreateLogSource: 'Yes' + Section5cALBLogsSourceUrl: 'https://api.us2.sumologic.com/api/v1/collectors/350831942/sources/2763251087' + Section5dALBS3LogsBucketName: 'newapigateway' + Section5eALBS3BucketPathExpression: '*abc*' + Section6aCreateCloudTrailLogSource: 'Yes' + Section6bCloudTrailLogsSourceUrl: 'https://api.us2.sumologic.com/api/v1/collectors/350831942/sources/2763251087' + Section6cCloudTrailLogsBucketName: 'newapigateway' + Section6dCloudTrailBucketPathExpression: '*abc*' + Section7aLambdaCreateCloudWatchLogsSourceOptions: 'Both (Switch from Lambda Log Forwarder to Kinesis Firehose Log Source)' + Section7bLambdaCloudWatchLogsSourceUrl: "https://api.us2.sumologic.com/api/v1/collectors/350831942/sources/2763257213" + Section7cAutoSubscribeLogGroupsOptions: "Both" + Section9aAutoEnableS3LogsELBResourcesOptions: 'None' + Section9bELBCreateLogSource: 'Yes' + Section9cELBLogsSourceUrl: 'https://api.us2.sumologic.com/api/v1/collectors/350831942/sources/2763251087' + Section9dELBS3LogsBucketName: 'akhilblogs-' + Section9eELBS3BucketPathExpression: '*abc*' + Assertions: + - AssertType: ResourceExistence + Assert: + Resources: + - LambdaRole + - LambdaPermission + - PrimerInvoke + - TelemetryLambda + - CreateCommonResources + - sumoEC2MetricsAppStack + - sumoAlbMetricsAppStack + - sumoElbMetricsAppStack + - sumoDynamoDBMetricsAppStack + - sumoRdsMetricsAppStack + - sumoApiGatewayMetricsAppStack + - sumoSNSAppStack + - sumoSQSAppStack + - sumoLambdaMetricsAppStack + - sumoECSMetricsAppStack + - sumoElasticCacheMetricsAppStack + - CreateCommonResources.AddAccountField + - CreateCommonResources.AddRegionField + - CreateCommonResources.AddNamespaceField + - CreateCommonResources.AddAccountIdField + - CreateCommonResources.SumoLogicALBS3Policy + - CreateCommonResources.SumoLogicELBS3Policy + - CreateCommonResources.SumoLogicCloudTrailS3Policy + - CreateCommonResources.LambdaRole + - CreateCommonResources.LambdaHelper + - CreateCommonResources.AccountCheck + - CreateCommonResources.CreateSumoLogicAWSExplorerView + - CreateCommonResources.SumoLogicSourceRole + - CreateCommonResources.SumoLogicHostedCollector + - CreateCommonResources.LambdaToDecideCWMetricsSources + - CreateCommonResources.Primerinvoke + - CreateCommonResources.CloudWatchMetricsFirstStack + - CreateCommonResources.CloudWatchMetricsSecondStack + - CreateCommonResources.CloudWatchMetricsThirdStack.FirstCloudwatchMetricsSource + - CreateCommonResources.CloudWatchMetricsFirstStack.SecondCloudwatchMetricsSource + - CreateCommonResources.CloudWatchMetricsFirstStack.ThirdCloudwatchMetricsSource + - CreateCommonResources.CloudWatchMetricsSecondStack.SecondCloudwatchMetricsSource + - CreateCommonResources.CloudWatchMetricsThirdStack + - CreateCommonResources.CloudWatchMetricsThirdStack.SecondCloudwatchMetricsSource + - CreateCommonResources.ALBSource + - CreateCommonResources.ALBSNSTopic + - CreateCommonResources.ALBSNSpolicy + - CreateCommonResources.ALBSNSSubscription + - CreateCommonResources.ELBSource + - CreateCommonResources.ELBSNSTopic + - CreateCommonResources.ELBSNSpolicy + - CreateCommonResources.ELBSNSSubscription + - CreateCommonResources.CloudTrailSource + - CreateCommonResources.CloudTrailSNSTopic + - CreateCommonResources.CloudTrailSNSpolicy + - CreateCommonResources.CloudTrailSNSSubscription + - sumoRdsMetricsAppStack.ClusterMetricRule + - sumoRdsMetricsAppStack.InstanceMetricRule + - sumoLambdaMetricsAppStack.LambdaFieldExtractionRule + - sumoAlbMetricsAppStack.AlbLogsFieldExtractionRule + - sumoElbMetricsAppStack.ElbLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.CloudTrailLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.AccessLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.MetricRule + - sumoSNSAppStack.FieldExtractionRule + - sumoSQSAppStack.FieldExtractionRule + - sumoDynamoDBMetricsAppStack.FieldExtractionRule + - sumoLambdaMetricsAppStack.LambdaCloudWatchLogsFieldExtractionRule + - sumoLambdaMetricsAppStack.GenericCloudWatchLogsFieldExtractionRule + - sumoRdsMetricsAppStack.FieldExtractionRule + - sumoECSMetricsAppStack.FieldExtractionRule + - sumoElasticCacheMetricsAppStack.FieldExtractionRule + - sumoEC2MetricsAppStack.FieldExtractionRule + - sumoNlbMetricsAppStack + - sumoNlbMetricsAppStack.MetricRule + - CreateCommonResources.KinesisFirehoseLogsStack + - CreateCommonResources.KinesisFirehoseLogsSource + - CreateCommonResources.KinesisFirehoseLogsStack.AttachBucketPolicyToFirehoseLogsRole + - CreateCommonResources.KinesisFirehoseLogsStack.FailedDataBucket + - CreateCommonResources.KinesisFirehoseLogsStack.FirehoseLogsRole + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsDeliveryStream + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsFirehoseRolePolicy + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsLogGroup + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsLogStream + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsLogStreamS3 + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsRole + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsRolePolicy + - CreateCommonResources.KinesisFirehoseLogsStack.SubscriptionFilter + - AutoEnableOptions + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.InvokeLambdaConnector + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupExistingLambdaConnector + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupExistingLambdaConnectorRole + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupLambdaConnector + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupLambdaConnectorLambdaTrigger + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupLambdaConnectorLambdaTriggerPermission + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupLambdaConnectorRole + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.sumoIAMPassRolePolicy + - CreateCommonResources.CloudWatchEventFunction + - CreateCommonResources.CloudWatchHTTPSource + - CreateCommonResources.CloudWatchEventFunction.SumoCWDeadLetterQueue + - CreateCommonResources.CloudWatchEventFunction.SumoCWEmailSNSTopic + - CreateCommonResources.CloudWatchEventFunction.SumoCWEventsInvokeLambdaPermission + - CreateCommonResources.CloudWatchEventFunction.SumoCWLambdaExecutionRole + - CreateCommonResources.CloudWatchEventFunction.SumoCWLambdaPermission + - CreateCommonResources.CloudWatchEventFunction.SumoCWLogGroup + - CreateCommonResources.CloudWatchEventFunction.SumoCWLogSubsriptionFilter + - CreateCommonResources.CloudWatchEventFunction.SumoCWLogsLambda + - CreateCommonResources.CloudWatchEventFunction.SumoCWProcessDLQLambda + - CreateCommonResources.CloudWatchEventFunction.SumoCWProcessDLQScheduleRule + - CreateCommonResources.CloudWatchEventFunction.SumoCWSpilloverAlarm + - CreateCommonResources.AccountAliasValue + - sumoAlbMetricsAppStack.AccountAliasValue + - sumoAlbMetricsAppStack.LambdaHelper + - sumoAlbMetricsAppStack.LambdaRole + - sumoElbMetricsAppStack.AccountAliasValue + - sumoElbMetricsAppStack.LambdaHelper + - sumoElbMetricsAppStack.LambdaRole + - sumoLambdaMetricsAppStack.AccountAliasValue + - CreateCommonResources.LambdaHelperAlias + - CreateCommonResources.LambdaRoleAlias + - sumoAlbMetricsAppStack.AlbCloudTrailLogsFieldExtractionRule + - sumoElbMetricsAppStack.ClbCloudTrailLogsFieldExtractionRule + - AssertType: OutputsCheck + Assert: + Outputs: + - CreateCommonResources.LambdaHelperARN + - CreateCommonResources.EnterpriseCheck + - CreateCommonResources.PaidAccountCheck + - CreateCommonResources.Namespaces + - CreateCommonResources.LambdaRoleARN + - CreateCommonResources.KinesisLogsDeliveryStreamARN + - CreateCommonResources.KinesisLogsRoleARN + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsLogGroupARN + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsDeliveryStreamARN + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsRoleARN + - CreateCommonResources.KinesisFirehoseLogsStack.FailedDataBucketArn + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupLambdaConnector + - CreateCommonResources.CloudWatchLambdaARN + - CreateCommonResources.CloudWatchEventFunction.SumoCWLogsLambdaArn + - CreateCommonResources.CollectorName + - CreateCommonResources.AccountAlias + - AssertType: ParameterCheck + Assert: + CreateCommonResources: + AccountAlias: "upgradev210to211" + AccountAliasMappingS3URL: "" + CreateMetaDataSource: 'No' + MetaDataSourceName: "" + MetaDataSourceCategory: "" + CreateCloudWatchMetricsSource: 'Yes' + CloudWatchMetricsSourceName: 'cloudwatch-metrics-' + CloudWatchMetricsNameSpaces: "AWS/ApiGateway, AWS/DynamoDB, AWS/ElastiCache, AWS/SNS, AWS/SQS" + ScanInterval: "30000" + CloudWatchMetricSourceCategory: "aws/observability/cloudwatch/metrics" + CreateALBLogSource: 'Yes' + CreateALBS3Bucket: 'No' + ALBS3LogsBucketName: "" + ALBS3BucketPathExpression: '' + ALBLogsSourceName: "alb-logs-" + ALBLogsSourceCategory: "aws/observability/alb/logs" + CreateELBLogSource: 'Yes' + CreateELBS3Bucket: 'No' + ELBS3LogsBucketName: "" + ELBS3BucketPathExpression: '' + ELBLogsSourceName: "classic-lb-logs-" + ELBLogsSourceCategory: "aws/observability/clb/logs" + CreateCloudTrailLogSource: 'Yes' + CreateCloudTrailBucket: 'No' + CloudTrailLogsBucketName: "" + CloudTrailBucketPathExpression: '' + CloudTrailLogsSourceName: "cloudtrail-logs-" + CloudTrailLogsSourceCategory: "aws/observability/cloudtrail/logs" + CreateCloudWatchLogSource: 'Yes' + CloudWatchLogsSourceName: "cloudwatch-logs-" + CloudWatchLogsSourceCategory: "aws/observability/cloudwatch/logs" + CreateKinesisFirehoseLogSource: 'Yes' + KinesisFirehoseLogsSourceName: 'kinesis-firehose-cloudwatch-logs-' + KinesisFirehoseLogsSourceCategory: 'aws/observability/cloudwatch/logs' + CreateKinesisFirehoseMetricsSource: 'No' + KinesisFirehoseMetricsSourceName: 'cloudwatch-metrics-' + KinesisFirehoseMetricSourceCategory: 'aws/observability/cloudwatch/metrics' + CreateCommonResources.KinesisFirehoseLogsStack: + Section2aCreateS3Bucket: 'Yes' + AutoEnableOptions: + ALBAutoEnableS3Logs: 'No' + ELBAutoEnableS3Logs: 'No' + AutoSubscribeLogGroups: 'Yes' + AutoSubscribeLogGroupsOptions: 'Both' + AutoSubscribeDestinationARNType: 'Kinesis' + AutoSubscribeDestinationARNValue: 'arn::firehose:' + AutoSubscribeLogGroupPattern: 'lambda' + AutoSubscribeRoleArn: "arn::iam::" + AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources: + UseExistingLogs: 'true' + DestinationArnType: 'Kinesis' + DestinationArnValue: 'arn::firehose:' + LogGroupPattern: 'lambda' + RoleArn: "arn::iam::" + sumoEC2MetricsAppStack: + Section2aInstallApp: 'No' + sumoAlbMetricsAppStack: + Section2aAccountAlias: 'upgradev210to211' + Section3aInstallApp: 'No' + Section4aCloudWatchExistingSourceAPIUrl: '' + Section5aALBLogsAPIUrl: '' + Section5bALBLogsSourceName: '*alb-logs*' + sumoElbMetricsAppStack: + Section2aAccountAlias: 'upgradev210to211' + Section3aInstallApp: 'No' + Section4aCloudWatchExistingSourceAPIUrl: '' + Section5aELBLogsAPIUrl: '' + Section5bELBLogsSourceName: '*elb-logs*' + sumoDynamoDBMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoRdsMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoApiGatewayMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoLambdaMetricsAppStack: + Section2aAccountAlias: 'upgradev210to211' + Section3aInstallApp: 'No' + Section4aCloudWatchExistingSourceAPIUrl: '' + Section5aCloudTrailLogsAPIUrl: '' + Section5bCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section6aCloudWatchLogsAPIUrl: '' + Section6bCloudWatchLogsSourceName: '*cloudwatch-logs*' + sumoECSMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoElasticCacheMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoNlbMetricsAppStack: + Section2aInstallApp: 'No' + Section3aNLBLogsSourceName: '' + Section3bNLBSourceUpdated: 'No' \ No newline at end of file diff --git a/aws-observability/templates/test/testcases/upgrade_update/upgrade/v2_15/v2_14_create_source_existing_bucket_existing_sources.yaml b/aws-observability/templates/test/testcases/upgrade_update/upgrade/v2_15/v2_14_create_source_existing_bucket_existing_sources.yaml new file mode 100644 index 00000000..8b63f1fd --- /dev/null +++ b/aws-observability/templates/test/testcases/upgrade_update/upgrade/v2_15/v2_14_create_source_existing_bucket_existing_sources.yaml @@ -0,0 +1,295 @@ +--- +Global: + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.11.0/sumologic_observability.master.template.yaml" + StackName: AWSO + ParallelTestsRun: 1 + GlobalParameters: + Default: + Section1eSumoLogicResourceRemoveOnDeleteStack: 'true' + Section2aAccountAlias: 'upgradev210to211' +TestCase: + TestName: v2_14ToV2_15CreateSourceExistingBucketExistingSources + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + UpgradeTemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" + Regions: '${SUMO_REGIONS}' + Skip: false + PreRequisitesInfra: + - CFNTemplateURL: "test/setup-infra/create_s3_bucket.yaml" + ImpactedParametersPath: + BucketName: + - "parameters.Section5dALBS3LogsBucketName" + - "parameters.Section6cCloudTrailLogsBucketName" + - "parameters.Section9dELBS3LogsBucketName" + Parameters: + Values: + Section1aSumoLogicDeployment: '${SUMO_DEPLOYMENT}' + Section1bSumoLogicAccessID: '${SUMO_ACCESS_ID}' + Section1cSumoLogicAccessKey: '${SUMO_ACCESS_KEY}' + Section1dSumoLogicOrganizationId: '${SUMO_ORG_ID}' + Section2aAccountAlias: 'upgradev210to211' + Section2bAccountAliasMappingS3URL: '' + Section3aInstallObservabilityApps: 'No' + Section4aCreateMetricsSourceOptions: 'CloudWatch Metrics Source' + Section4bMetricsNameSpaces: 'AWS/ApiGateway, AWS/DynamoDB, AWS/ElastiCache, AWS/SNS, AWS/SQS' + Section4cCloudWatchExistingSourceAPIUrl: 'https://api.us2.sumologic.com/api/v1/collectors/350831942/sources/2763251087' + Section5aAutoEnableS3LogsALBResourcesOptions: 'None' + Section5bALBCreateLogSource: 'Yes' + Section5cALBLogsSourceUrl: 'https://api.us2.sumologic.com/api/v1/collectors/350831942/sources/2763251087' + Section5dALBS3LogsBucketName: 'newapigateway' + Section5eALBS3BucketPathExpression: '*abc*' + Section6aCreateCloudTrailLogSource: 'Yes' + Section6bCloudTrailLogsSourceUrl: 'https://api.us2.sumologic.com/api/v1/collectors/350831942/sources/2763251087' + Section6cCloudTrailLogsBucketName: 'newapigateway' + Section6dCloudTrailBucketPathExpression: '*abc*' + Section7aLambdaCreateCloudWatchLogsSourceOptions: 'Both (Switch from Lambda Log Forwarder to Kinesis Firehose Log Source)' + Section7bLambdaCloudWatchLogsSourceUrl: "https://api.us2.sumologic.com/api/v1/collectors/350831942/sources/2763257213" + Section7cAutoSubscribeLogGroupsOptions: "Both" + Section9aAutoEnableS3LogsELBResourcesOptions: 'None' + Section9bELBCreateLogSource: 'Yes' + Section9cELBLogsSourceUrl: 'https://api.us2.sumologic.com/api/v1/collectors/350831942/sources/2763251087' + Section9dELBS3LogsBucketName: 'akhilblogs-' + Section9eELBS3BucketPathExpression: '*abc*' + Assertions: + - AssertType: ResourceExistence + Assert: + Resources: + - LambdaRole + - LambdaPermission + - PrimerInvoke + - TelemetryLambda + - CreateCommonResources + - sumoEC2MetricsAppStack + - sumoAlbMetricsAppStack + - sumoElbMetricsAppStack + - sumoDynamoDBMetricsAppStack + - sumoRdsMetricsAppStack + - sumoApiGatewayMetricsAppStack + - sumoSNSAppStack + - sumoSQSAppStack + - sumoLambdaMetricsAppStack + - sumoECSMetricsAppStack + - sumoElasticCacheMetricsAppStack + - CreateCommonResources.AddAccountField + - CreateCommonResources.AddRegionField + - CreateCommonResources.AddNamespaceField + - CreateCommonResources.AddAccountIdField + - CreateCommonResources.SumoLogicALBS3Policy + - CreateCommonResources.SumoLogicELBS3Policy + - CreateCommonResources.SumoLogicCloudTrailS3Policy + - CreateCommonResources.LambdaRole + - CreateCommonResources.LambdaHelper + - CreateCommonResources.AccountCheck + - CreateCommonResources.CreateSumoLogicAWSExplorerView + - CreateCommonResources.SumoLogicSourceRole + - CreateCommonResources.SumoLogicHostedCollector + - CreateCommonResources.LambdaToDecideCWMetricsSources + - CreateCommonResources.Primerinvoke + - CreateCommonResources.CloudWatchMetricsFirstStack + - CreateCommonResources.CloudWatchMetricsSecondStack + - CreateCommonResources.CloudWatchMetricsThirdStack.FirstCloudwatchMetricsSource + - CreateCommonResources.CloudWatchMetricsFirstStack.SecondCloudwatchMetricsSource + - CreateCommonResources.CloudWatchMetricsFirstStack.ThirdCloudwatchMetricsSource + - CreateCommonResources.CloudWatchMetricsSecondStack.SecondCloudwatchMetricsSource + - CreateCommonResources.CloudWatchMetricsThirdStack + - CreateCommonResources.CloudWatchMetricsThirdStack.SecondCloudwatchMetricsSource + - CreateCommonResources.ALBSource + - CreateCommonResources.ALBSNSTopic + - CreateCommonResources.ALBSNSpolicy + - CreateCommonResources.ALBSNSSubscription + - CreateCommonResources.ELBSource + - CreateCommonResources.ELBSNSTopic + - CreateCommonResources.ELBSNSpolicy + - CreateCommonResources.ELBSNSSubscription + - CreateCommonResources.CloudTrailSource + - CreateCommonResources.CloudTrailSNSTopic + - CreateCommonResources.CloudTrailSNSpolicy + - CreateCommonResources.CloudTrailSNSSubscription + - sumoRdsMetricsAppStack.ClusterMetricRule + - sumoRdsMetricsAppStack.InstanceMetricRule + - sumoLambdaMetricsAppStack.LambdaFieldExtractionRule + - sumoAlbMetricsAppStack.AlbLogsFieldExtractionRule + - sumoElbMetricsAppStack.ElbLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.CloudTrailLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.AccessLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.MetricRule + - sumoSNSAppStack.FieldExtractionRule + - sumoSQSAppStack.FieldExtractionRule + - sumoDynamoDBMetricsAppStack.FieldExtractionRule + - sumoLambdaMetricsAppStack.LambdaCloudWatchLogsFieldExtractionRule + - sumoLambdaMetricsAppStack.GenericCloudWatchLogsFieldExtractionRule + - sumoRdsMetricsAppStack.FieldExtractionRule + - sumoECSMetricsAppStack.FieldExtractionRule + - sumoElasticCacheMetricsAppStack.FieldExtractionRule + - sumoEC2MetricsAppStack.FieldExtractionRule + - sumoNlbMetricsAppStack + - sumoNlbMetricsAppStack.MetricRule + - CreateCommonResources.KinesisFirehoseLogsStack + - CreateCommonResources.KinesisFirehoseLogsSource + - CreateCommonResources.KinesisFirehoseLogsStack.AttachBucketPolicyToFirehoseLogsRole + - CreateCommonResources.KinesisFirehoseLogsStack.FailedDataBucket + - CreateCommonResources.KinesisFirehoseLogsStack.FirehoseLogsRole + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsDeliveryStream + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsFirehoseRolePolicy + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsLogGroup + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsLogStream + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsLogStreamS3 + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsRole + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsRolePolicy + - CreateCommonResources.KinesisFirehoseLogsStack.SubscriptionFilter + - AutoEnableOptions + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.InvokeLambdaConnector + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupExistingLambdaConnector + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupExistingLambdaConnectorRole + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupLambdaConnector + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupLambdaConnectorLambdaTrigger + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupLambdaConnectorLambdaTriggerPermission + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupLambdaConnectorRole + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.sumoIAMPassRolePolicy + - CreateCommonResources.CloudWatchEventFunction + - CreateCommonResources.CloudWatchHTTPSource + - CreateCommonResources.CloudWatchEventFunction.SumoCWDeadLetterQueue + - CreateCommonResources.CloudWatchEventFunction.SumoCWEmailSNSTopic + - CreateCommonResources.CloudWatchEventFunction.SumoCWEventsInvokeLambdaPermission + - CreateCommonResources.CloudWatchEventFunction.SumoCWLambdaExecutionRole + - CreateCommonResources.CloudWatchEventFunction.SumoCWLambdaPermission + - CreateCommonResources.CloudWatchEventFunction.SumoCWLogGroup + - CreateCommonResources.CloudWatchEventFunction.SumoCWLogSubsriptionFilter + - CreateCommonResources.CloudWatchEventFunction.SumoCWLogsLambda + - CreateCommonResources.CloudWatchEventFunction.SumoCWProcessDLQLambda + - CreateCommonResources.CloudWatchEventFunction.SumoCWProcessDLQScheduleRule + - CreateCommonResources.CloudWatchEventFunction.SumoCWSpilloverAlarm + - CreateCommonResources.AccountAliasValue + - sumoAlbMetricsAppStack.AccountAliasValue + - sumoAlbMetricsAppStack.LambdaHelper + - sumoAlbMetricsAppStack.LambdaRole + - sumoElbMetricsAppStack.AccountAliasValue + - sumoElbMetricsAppStack.LambdaHelper + - sumoElbMetricsAppStack.LambdaRole + - sumoLambdaMetricsAppStack.AccountAliasValue + - CreateCommonResources.LambdaHelperAlias + - CreateCommonResources.LambdaRoleAlias + - sumoAlbMetricsAppStack.AlbCloudTrailLogsFieldExtractionRule + - sumoElbMetricsAppStack.ClbCloudTrailLogsFieldExtractionRule + - AssertType: OutputsCheck + Assert: + Outputs: + - CreateCommonResources.LambdaHelperARN + - CreateCommonResources.EnterpriseCheck + - CreateCommonResources.PaidAccountCheck + - CreateCommonResources.Namespaces + - CreateCommonResources.LambdaRoleARN + - CreateCommonResources.KinesisLogsDeliveryStreamARN + - CreateCommonResources.KinesisLogsRoleARN + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsLogGroupARN + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsDeliveryStreamARN + - CreateCommonResources.KinesisFirehoseLogsStack.KinesisLogsRoleARN + - CreateCommonResources.KinesisFirehoseLogsStack.FailedDataBucketArn + - AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources.SumoLogGroupLambdaConnector + - CreateCommonResources.CloudWatchLambdaARN + - CreateCommonResources.CloudWatchEventFunction.SumoCWLogsLambdaArn + - CreateCommonResources.CollectorName + - CreateCommonResources.AccountAlias + - AssertType: ParameterCheck + Assert: + CreateCommonResources: + AccountAlias: "upgradev210to211" + AccountAliasMappingS3URL: "" + CreateMetaDataSource: 'No' + MetaDataSourceName: "" + MetaDataSourceCategory: "" + CreateCloudWatchMetricsSource: 'Yes' + CloudWatchMetricsSourceName: 'cloudwatch-metrics-' + CloudWatchMetricsNameSpaces: "AWS/ApiGateway, AWS/DynamoDB, AWS/ElastiCache, AWS/SNS, AWS/SQS" + ScanInterval: "30000" + CloudWatchMetricSourceCategory: "aws/observability/cloudwatch/metrics" + CreateALBLogSource: 'Yes' + CreateALBS3Bucket: 'No' + ALBS3LogsBucketName: "" + ALBS3BucketPathExpression: '' + ALBLogsSourceName: "alb-logs-" + ALBLogsSourceCategory: "aws/observability/alb/logs" + CreateELBLogSource: 'Yes' + CreateELBS3Bucket: 'No' + ELBS3LogsBucketName: "" + ELBS3BucketPathExpression: '' + ELBLogsSourceName: "classic-lb-logs-" + ELBLogsSourceCategory: "aws/observability/clb/logs" + CreateCloudTrailLogSource: 'Yes' + CreateCloudTrailBucket: 'No' + CloudTrailLogsBucketName: "" + CloudTrailBucketPathExpression: '' + CloudTrailLogsSourceName: "cloudtrail-logs-" + CloudTrailLogsSourceCategory: "aws/observability/cloudtrail/logs" + CreateCloudWatchLogSource: 'Yes' + CloudWatchLogsSourceName: "cloudwatch-logs-" + CloudWatchLogsSourceCategory: "aws/observability/cloudwatch/logs" + CreateKinesisFirehoseLogSource: 'Yes' + KinesisFirehoseLogsSourceName: 'kinesis-firehose-cloudwatch-logs-' + KinesisFirehoseLogsSourceCategory: 'aws/observability/cloudwatch/logs' + CreateKinesisFirehoseMetricsSource: 'No' + KinesisFirehoseMetricsSourceName: 'cloudwatch-metrics-' + KinesisFirehoseMetricSourceCategory: 'aws/observability/cloudwatch/metrics' + CreateCommonResources.KinesisFirehoseLogsStack: + Section2aCreateS3Bucket: 'Yes' + AutoEnableOptions: + ALBAutoEnableS3Logs: 'No' + ELBAutoEnableS3Logs: 'No' + AutoSubscribeLogGroups: 'Yes' + AutoSubscribeLogGroupsOptions: 'Both' + AutoSubscribeDestinationARNType: 'Kinesis' + AutoSubscribeDestinationARNValue: 'arn::firehose:' + AutoSubscribeLogGroupPattern: 'lambda' + AutoSubscribeRoleArn: "arn::iam::" + AutoEnableOptions.AutoSubscribeLambdaLogGroupsAWSResources: + UseExistingLogs: 'true' + DestinationArnType: 'Kinesis' + DestinationArnValue: 'arn::firehose:' + LogGroupPattern: 'lambda' + RoleArn: "arn::iam::" + sumoEC2MetricsAppStack: + Section2aInstallApp: 'No' + sumoAlbMetricsAppStack: + Section2aAccountAlias: 'upgradev210to211' + Section3aInstallApp: 'No' + Section4aCloudWatchExistingSourceAPIUrl: '' + Section5aALBLogsAPIUrl: '' + Section5bALBLogsSourceName: '*alb-logs*' + sumoElbMetricsAppStack: + Section2aAccountAlias: 'upgradev210to211' + Section3aInstallApp: 'No' + Section4aCloudWatchExistingSourceAPIUrl: '' + Section5aELBLogsAPIUrl: '' + Section5bELBLogsSourceName: '*elb-logs*' + sumoDynamoDBMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoRdsMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoApiGatewayMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoLambdaMetricsAppStack: + Section2aAccountAlias: 'upgradev210to211' + Section3aInstallApp: 'No' + Section4aCloudWatchExistingSourceAPIUrl: '' + Section5aCloudTrailLogsAPIUrl: '' + Section5bCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section6aCloudWatchLogsAPIUrl: '' + Section6bCloudWatchLogsSourceName: '*cloudwatch-logs*' + sumoECSMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoElasticCacheMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoNlbMetricsAppStack: + Section2aInstallApp: 'No' + Section3aNLBLogsSourceName: '' + Section3bNLBSourceUpdated: 'No' \ No newline at end of file diff --git a/aws-observability/templates/test/testcases/upgrade_update/v2_15/v2_14_disabled_telemetry.yaml b/aws-observability/templates/test/testcases/upgrade_update/v2_15/v2_14_disabled_telemetry.yaml new file mode 100644 index 00000000..8a296ffd --- /dev/null +++ b/aws-observability/templates/test/testcases/upgrade_update/v2_15/v2_14_disabled_telemetry.yaml @@ -0,0 +1,238 @@ +--- +Global: + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + StackName: AWSO + ParallelTestsRun: 1 + GlobalParameters: + Default: + Section1eSumoLogicResourceRemoveOnDeleteStack: 'true' + Update: + Section1fSumoLogicSendTelemetry: 'true' +TestCase: + TestName: v2_14ToV2_15disabledTelemetry + UpgradeTemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" + Regions: '${SUMO_REGIONS}' + Skip: false + PreRequisitesInfra: + - CFNTemplateURL: "test/setup-infra/create_s3_bucket.yaml" + ImpactedParametersPath: + BucketName: + - "parameters.Section5dALBS3LogsBucketName" + - "assertions[AssertType==ParameterCheck].Assert.CreateCommonResources.ALBS3LogsBucketName" + - "assertions[AssertType==ParameterCheck].Assert.AutoEnableOptions.ALBS3LogsBucketName" + - "assertions[AssertType==ParameterCheck].Assert['AutoEnableOptions#AutoEnableS3LogsAlbAWSResources'].BucketName" + - CFNTemplateURL: "test/setup-infra/create_sumo_lambda_hepler.yaml" + CFNParameters: + SumoLogicDeployment: '${SUMO_DEPLOYMENT}' + SumoLogicAccessID: '${SUMO_ACCESS_ID}' + SumoLogicAccessKey: '${SUMO_ACCESS_KEY}' + AccountAlias: "upgradeupdatet1" + - CFNTemplateURL: "test/setup-infra/create_sumo_collector.yaml" + CFNParameters: + SumoLogicDeployment: '${SUMO_DEPLOYMENT}' + SumoLogicAccessID: '${SUMO_ACCESS_ID}' + SumoLogicAccessKey: '${SUMO_ACCESS_KEY}' + SumoLambdaHelperArn: '${SumoLambdaHelperArn}' + - CFNTemplateURL: "test/setup-infra/create_sumo_cloudwatch_log_source.yaml" + CFNParameters: + SumoLogicDeployment: '${SUMO_DEPLOYMENT}' + SumoLogicAccessID: '${SUMO_ACCESS_ID}' + SumoLogicAccessKey: '${SUMO_ACCESS_KEY}' + SumoLambdaHelperArn: '${SumoLambdaHelperArn}' + SumoCollectorID: '${SumoCollectorID}' + AccountAlias: '${AccountAlias}' + ImpactedParametersPath: + SumoCloudWatchLogAPIURL: + - "parameters.Section7bLambdaCloudWatchLogsSourceUrl" + - "assertions[AssertType==ParameterCheck].Assert.sumoLambdaMetricsAppStack.Section6aCloudWatchLogsAPIUrl" + Parameters: + Values: + Section1aSumoLogicDeployment: '${SUMO_DEPLOYMENT}' + Section1bSumoLogicAccessID: '${SUMO_ACCESS_ID}' + Section1cSumoLogicAccessKey: '${SUMO_ACCESS_KEY}' + Section1dSumoLogicOrganizationId: '${SUMO_ORG_ID}' + Section2aAccountAlias: 'upgradeupdatet1' + Section2bAccountAliasMappingS3URL: '' + Section3aInstallObservabilityApps: 'No' + Section4aCreateMetricsSourceOptions: 'None' + Section4cCloudWatchExistingSourceAPIUrl: '' + Section5aAutoEnableS3LogsALBResourcesOptions: 'Existing' + Section5bALBCreateLogSource: 'Yes' + Section5dALBS3LogsBucketName: 'cf-templates-qpf3unpuo1hw-ap-southeast-4' + Section5eALBS3BucketPathExpression: '*abc*' + Section6aCreateCloudTrailLogSource: 'Yes' + Section7aLambdaCreateCloudWatchLogsSourceOptions: 'None' + Section7bLambdaCloudWatchLogsSourceUrl: 'https://api.sumologic.com/api/v1/collectors/261725249/sources/1511499202' + Section9bELBCreateLogSource: 'No' + UpdateParameters: + Values: + Section1fSumoLogicSendTelemetry: 'false' + Assertions: + - AssertType: ResourceExistence + Assert: + Resources: + - CreateCommonResources + - AutoEnableOptions + - sumoEC2MetricsAppStack + - sumoAlbMetricsAppStack + - sumoElbMetricsAppStack + - sumoDynamoDBMetricsAppStack + - sumoRdsMetricsAppStack + - sumoApiGatewayMetricsAppStack + - sumoSNSAppStack + - sumoSQSAppStack + - sumoLambdaMetricsAppStack + - sumoECSMetricsAppStack + - sumoElasticCacheMetricsAppStack + - CreateCommonResources.AddAccountField + - CreateCommonResources.AddRegionField + - CreateCommonResources.AddNamespaceField + - CreateCommonResources.AddAccountIdField + - CreateCommonResources.SumoLogicALBS3Policy + - CreateCommonResources.SumoLogicCloudTrailS3Policy + - CreateCommonResources.LambdaRole + - CreateCommonResources.LambdaHelper + - CreateCommonResources.AccountCheck + - CreateCommonResources.CommonBucketSNSTopic + - CreateCommonResources.CommonS3Bucket + - CreateCommonResources.CommonBucketPolicy + - CreateCommonResources.CommonSNSpolicy + - CreateCommonResources.CommonCloudTrail + - CreateCommonResources.CreateSumoLogicAWSExplorerView + - CreateCommonResources.SumoLogicSourceRole + - CreateCommonResources.SumoLogicHostedCollector + - CreateCommonResources.LambdaToDecideCWMetricsSources + - CreateCommonResources.Primerinvoke + - CreateCommonResources.ALBSource + - CreateCommonResources.ALBSNSTopic + - CreateCommonResources.ALBSNSpolicy + - CreateCommonResources.ALBSNSSubscription + - CreateCommonResources.CloudTrailSource + - CreateCommonResources.CloudTrailSNSSubscription + - AutoEnableOptions.AutoEnableS3LogsAlbAWSResources + - AutoEnableOptions.AutoEnableS3LogsAlbAWSResources.EnableExisitngAWSResourcesLambda + - AutoEnableOptions.AutoEnableS3LogsAlbAWSResources.ExistingAWSResources + - AutoEnableOptions.AutoEnableS3LogsAlbAWSResources.SumoLambdaRole + - sumoRdsMetricsAppStack.ClusterMetricRule + - sumoRdsMetricsAppStack.InstanceMetricRule + - sumoLambdaMetricsAppStack.SumoHTTPUpdateSource + - sumoLambdaMetricsAppStack.LambdaFieldExtractionRule + - sumoAlbMetricsAppStack.AlbLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.CloudTrailLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.AccessLogsFieldExtractionRule + - sumoApiGatewayMetricsAppStack.MetricRule + - sumoSNSAppStack.FieldExtractionRule + - sumoSQSAppStack.FieldExtractionRule + - sumoDynamoDBMetricsAppStack.FieldExtractionRule + - sumoEC2MetricsAppStack.FieldExtractionRule + - sumoLambdaMetricsAppStack.LambdaCloudWatchLogsFieldExtractionRule + - sumoRdsMetricsAppStack.FieldExtractionRule + - sumoECSMetricsAppStack.FieldExtractionRule + - sumoElasticCacheMetricsAppStack.FieldExtractionRule + - sumoNlbMetricsAppStack + - sumoNlbMetricsAppStack.MetricRule + - CreateCommonResources.AccountAliasValue + - sumoAlbMetricsAppStack.AccountAliasValue + - sumoAlbMetricsAppStack.LambdaHelper + - sumoAlbMetricsAppStack.LambdaRole + - sumoElbMetricsAppStack.AccountAliasValue + - sumoElbMetricsAppStack.LambdaHelper + - sumoElbMetricsAppStack.LambdaRole + - sumoLambdaMetricsAppStack.AccountAliasValue + - sumoLambdaMetricsAppStack.GenericCloudWatchLogsFieldExtractionRule + - CreateCommonResources.LambdaHelperAlias + - CreateCommonResources.LambdaRoleAlias + - AssertType: OutputsCheck + Assert: + Outputs: + - CreateCommonResources.LambdaHelperARN + - CreateCommonResources.EnterpriseCheck + - CreateCommonResources.PaidAccountCheck + - CreateCommonResources.Namespaces + - CreateCommonResources.LambdaRoleARN + - CreateCommonResources.BucketName + - AutoEnableOptions.AutoEnableS3LogsAlbAWSResources.EnableExisitngAWSResourcesLambda + - sumoLambdaMetricsAppStack.ExistingCloudWatchLogSourceName + - CreateCommonResources.CollectorName + - CreateCommonResources.AccountAlias + - AssertType: ParameterCheck + Assert: + CreateCommonResources: + AccountAlias: "upgradeupdatet1" + AccountAliasMappingS3URL: "" + CreateMetaDataSource: 'No' + MetaDataSourceName: "" + MetaDataSourceCategory: "" + CreateCloudWatchMetricsSource: 'No' + CloudWatchMetricsSourceName: '' + CloudWatchMetricsNameSpaces: "AWS/ApplicationELB, AWS/ApiGateway, AWS/DynamoDB, AWS/Lambda, AWS/RDS, AWS/ECS, AWS/ElastiCache, AWS/ELB, AWS/NetworkELB" + ScanInterval: "30000" + CloudWatchMetricSourceCategory: "" + CreateALBLogSource: 'Yes' + CreateALBS3Bucket: 'No' + ALBS3LogsBucketName: "cf-templates-qpf3unpuo1hw-ap-southeast-4" + ALBS3BucketPathExpression: '/elasticloadbalancing//*' + ALBLogsSourceName: "alb-logs-" + ALBLogsSourceCategory: "aws/observability/alb/logs" + CreateCloudTrailLogSource: 'Yes' + CreateCloudTrailBucket: 'Yes' + CloudTrailLogsBucketName: "" + CloudTrailBucketPathExpression: '/CloudTrail//*' + CloudTrailLogsSourceName: "cloudtrail-logs-" + CloudTrailLogsSourceCategory: "aws/observability/cloudtrail/logs" + CreateCloudWatchLogSource: 'No' + CloudWatchLogsSourceName: "cloudwatch-logs-" + CloudWatchLogsSourceCategory: "aws/observability/cloudwatch/logs" + CreateKinesisFirehoseLogSource: 'No' + KinesisFirehoseLogsSourceName: 'kinesis-firehose-cloudwatch-logs-' + KinesisFirehoseLogsSourceCategory: 'aws/observability/cloudwatch/logs' + CreateKinesisFirehoseMetricsSource: 'No' + KinesisFirehoseMetricsSourceName: 'cloudwatch-metrics-' + KinesisFirehoseMetricSourceCategory: 'aws/observability/cloudwatch/metrics' + AutoEnableOptions: + ALBAutoEnableS3Logs: 'Yes' + ALBS3LogsBucketName: 'cf-templates-qpf3unpuo1hw-ap-southeast-4' + AutoSubscribeLogGroups: 'No' + AutoEnableOptions.AutoEnableS3LogsAlbAWSResources: + BucketName: 'cf-templates-qpf3unpuo1hw-ap-southeast-4' + AutoEnableResourceOptions: 'Existing' + sumoEC2MetricsAppStack: + Section2aInstallApp: 'No' + sumoAlbMetricsAppStack: + Section2aAccountAlias: 'upgradeupdatet1' + Section3aInstallApp: 'No' + Section4aCloudWatchExistingSourceAPIUrl: '' + Section5aALBLogsAPIUrl: '' + Section5bALBLogsSourceName: '*alb-logs*' + sumoDynamoDBMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoRdsMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoApiGatewayMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoLambdaMetricsAppStack: + Section2aAccountAlias: 'upgradeupdatet1' + Section3aInstallApp: 'No' + Section4aCloudWatchExistingSourceAPIUrl: '' + Section5aCloudTrailLogsAPIUrl: '' + Section5bCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section6aCloudWatchLogsAPIUrl: 'https://api.sumologic.com/api/v1/collectors/261725249/sources/1511499202' + Section6bCloudWatchLogsSourceName: '' + sumoECSMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoElasticCacheMetricsAppStack: + Section2aInstallApp: 'No' + Section3aCloudTrailLogsSourceName: '*cloudtrail-logs*' + Section3bCloudTrailSourceUpdated: 'No' + sumoNlbMetricsAppStack: + Section2aInstallApp: 'No' + Section3aNLBLogsSourceName: '' + Section3bNLBSourceUpdated: 'No' \ No newline at end of file diff --git a/aws-observability/templates/test/testsuites/infra_testsuite.yaml b/aws-observability/templates/test/testsuites/infra_testsuite.yaml index 0890a05e..4b989b9f 100644 --- a/aws-observability/templates/test/testsuites/infra_testsuite.yaml +++ b/aws-observability/templates/test/testsuites/infra_testsuite.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: diff --git a/aws-observability/templates/test/testsuites/lb_testsuite.yaml b/aws-observability/templates/test/testsuites/lb_testsuite.yaml index d90c30fa..beb1c36b 100644 --- a/aws-observability/templates/test/testsuites/lb_testsuite.yaml +++ b/aws-observability/templates/test/testsuites/lb_testsuite.yaml @@ -1,6 +1,6 @@ --- Global: - TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" StackName: AWSO ParallelTestsRun: 1 GlobalParameters: diff --git a/aws-observability/templates/test/testsuites/update_v2_15_testsuite.yaml b/aws-observability/templates/test/testsuites/update_v2_15_testsuite.yaml new file mode 100644 index 00000000..aa1c82d0 --- /dev/null +++ b/aws-observability/templates/test/testsuites/update_v2_15_testsuite.yaml @@ -0,0 +1,15 @@ +--- +Global: + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.15.0/sumologic_observability.master.template.yaml" + StackName: AWSO + ParallelTestsRun: 1 + GlobalParameters: + Default: + Section1eSumoLogicResourceRemoveOnDeleteStack: 'true' + Section2aAccountAlias: 'updatet1' + Update: + Section1fSumoLogicSendTelemetry: 'true' +TestSuiteName: updateTestsuiteV2_15 +TestCases: + - 'test/testcases/upgrade_update/update/v2_15/disabled_telemetry.yaml' + - 'test/testcases/upgrade_update/update/v2_15/existing_cloudtrail_bucket.yaml' \ No newline at end of file diff --git a/aws-observability/templates/test/testsuites/upgrade_update_v2_15_testsuite.yaml b/aws-observability/templates/test/testsuites/upgrade_update_v2_15_testsuite.yaml new file mode 100644 index 00000000..2980f2c9 --- /dev/null +++ b/aws-observability/templates/test/testsuites/upgrade_update_v2_15_testsuite.yaml @@ -0,0 +1,15 @@ +--- +Global: + TemplatePath: "https://sumologic-appdev-aws-sam-apps.s3.amazonaws.com/aws-observability-versions/v2.14.0/sumologic_observability.master.template.yaml" + StackName: AWSO + ParallelTestsRun: 1 + GlobalParameters: + Default: + Section1eSumoLogicResourceRemoveOnDeleteStack: 'true' + Section2aAccountAlias: 'upgradeupdatet1' +TestSuiteName: upgradeAndUpdateTestsuiteV2_15 +TestCases: + - 'test/testcases/upgrade_update/upgrade/v2_15/v2_12_create_source_existing_bucket_existing_sources.yaml' + - 'test/testcases/upgrade_update/upgrade/v2_15/v2_13_create_source_existing_bucket_existing_sources.yaml' + - 'test/testcases/upgrade_update/upgrade/v2_15/v2_14_create_source_existing_bucket_existing_sources.yaml' + - 'test/testcases/upgrade_update/v2_15/v2_14_disabled_telemetry.yaml' diff --git a/null-resource-terraform/src/sumoresource.py b/null-resource-terraform/src/sumoresource.py index 6302aa47..64854153 100644 --- a/null-resource-terraform/src/sumoresource.py +++ b/null-resource-terraform/src/sumoresource.py @@ -45,7 +45,7 @@ def extract_params(self, event): def api_endpoint(self): if self.deployment == "us1": return "https://api.sumologic.com/api" - elif self.deployment in ["ca", "ch", "au", "de", "eu", "jp", "us2", "kr", "fed"]: + elif self.deployment in ["ca", "ch", "au", "de", "eu", "esc", "jp", "us2", "fed", "kr"]: return "https://api.%s.sumologic.com/api" % self.deployment else: return 'https://%s-api.sumologic.net/api' % self.deployment diff --git a/slo_packages/aws/README.md b/slo_packages/aws/README.md index 41bf9a99..3462ada2 100644 --- a/slo_packages/aws/README.md +++ b/slo_packages/aws/README.md @@ -27,7 +27,7 @@ Required in the aws_slo.auto.tfvars file. |------|-------------|------|---------|:--------:| | [access\_id](#access\_id) | Sumo Logic Access ID. Visit https://help.sumologic.com/Manage/Security/Access-Keys#Create_an_access_key | `string` | n/a | yes | | [access\_key](#access\_key) | Sumo Logic Access Key. Visit https://help.sumologic.com/Manage/Security/Access-Keys#Create_an_access_key | `string` | n/a | yes | -| [environment](#environment) | Enter au, ca, ch, de, eu, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security | `string` | n/a | yes | +| [environment](#environment) | Enter au, ca, ch, de, eu, esc, jp, us2, kr, fed or us1. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security | `string` | n/a | yes | | [folder](#folder) | Indicates the SLO installation folder. | `string` | `"AWS"` | no | | [aws\_elb\_data\_filter](#aws\_elb\_data\_filter) | AWS ELB Data Filter. For eg: account=prod | `string` | `""` | yes | | [time\_zone](#time\_zone) | Time zone for the SLO compliance. Follow the format in the IANA Time Zone Database. | `string` | `"Asia/Kolkata"` | yes | diff --git a/slo_packages/aws/variables.tf b/slo_packages/aws/variables.tf index 7fc34b20..5290db97 100644 --- a/slo_packages/aws/variables.tf +++ b/slo_packages/aws/variables.tf @@ -19,9 +19,8 @@ variable "environment" { description = "Please update with your deployment, refer: https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" validation { condition = contains([ - "US1", - "us1","US2","us2","AU","au","CA","ca","CH","ch","DE","de","EU","eu","FED","fed","JP","jp","KR","kr"], var.environment) - error_message = "Argument \"environment\" must be one of \"us1\",\"us2\",\"au\",\"ca\",\"ch\",\"de\",\"eu\",\"fed\",\"jp\",\"kr\"." + "US1","us1","US2","us2","AU","au","CA","ca","CH","ch","DE","de","EU","eu","ESC","esc","FED","fed","JP","jp","KR","kr"], var.environment) + error_message = "Argument \"environment\" must be one of \"us1\",\"us2\",\"au\",\"ca\",\"ch\",\"de\",\"eu\",\"esc\",\"fed\",\"jp\",\"kr\"." } } variable "folder" { diff --git a/software-development-optimization-terraform/scripts/set-sumologic-access-keys.sh b/software-development-optimization-terraform/scripts/set-sumologic-access-keys.sh index 26d5157c..0ead16d8 100755 --- a/software-development-optimization-terraform/scripts/set-sumologic-access-keys.sh +++ b/software-development-optimization-terraform/scripts/set-sumologic-access-keys.sh @@ -16,7 +16,7 @@ sumologic_access_key="" read -r sumologic_access_key ./scripts/update_sdo_variable sumo_access_key $sumologic_access_key -echo -n "Sumo Logic Deployment Region [AU, CA, CH, DE, EU, JP, US2, KR, FED, US1]: " +echo -n "Sumo Logic Deployment Region [AU, CA, CH, DE, EU, ESC, JP, US2, KR, FED, US1]: " sumologic_deployment_region="" read -r sumologic_deployment_region # Make sure we only have to deal with lowercase region values @@ -30,6 +30,9 @@ case $sumologic_deployment_region in "us2") sumologic_api_endpoint="https://api.us2.sumologic.com/api/" ;; + "ch") + sumologic_api_endpoint="https://api.ch.sumologic.com/api/" + ;; "jp") sumologic_api_endpoint="https://api.jp.sumologic.com/api/" ;; @@ -42,6 +45,9 @@ case $sumologic_deployment_region in "eu") sumologic_api_endpoint="https://api.eu.sumologic.com/api/" ;; + "esc") + sumologic_api_endpoint="https://api.esc.sumologic.com/api/" + ;; "de") sumologic_api_endpoint="https://api.de.sumologic.com/api/" ;; diff --git a/software-development-optimization-terraform/variables.tf b/software-development-optimization-terraform/variables.tf index db1bbbed..b037a6ab 100644 --- a/software-development-optimization-terraform/variables.tf +++ b/software-development-optimization-terraform/variables.tf @@ -25,9 +25,9 @@ variable "deployment" { description = "Please update with your deployment, refer: https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security" validation { condition = contains([ - "US1", - "us1", "US2", "us2", "AU", "au", "CA", "ca","DE", "de", "EU", "eu", "FED", "fed", "JP", "jp", "kr", "KR", "ch", "CH"], var.deployment) - error_message = "Argument \"deployment\" must be one of \"us1\",\"us2\",\"au\",\"ca\",\"de\",\"eu\",\"fed\",\"jp\",\"kr\",\"ch\"." + "US1", "us1", "US2", "us2", "AU", "au", "CA", "ca", "ch", "CH", "DE", "de", "EU", "eu", "ESC", "esc", "FED", "fed", "JP", "jp", "kr", "KR"], var.deployment) + error_message = "Argument \"deployment\" must be one of \"us1\",\"us2\",\"au\",\"ca\",\"ch\",\"de\",\"eu\",\"esc\",\"fed\",\"jp\",\"kr\"." + } } variable "sumo_api_endpoint" {