{"Description":"(SO0111) Automated Security Response on AWS Administrator Stack, v4.1.0","AWSTemplateFormatVersion":"2010-09-09","Metadata":{"AWS::CloudFormation::Interface":{"ParameterGroups":[{"Label":{"default":"Consolidated Control Findings Playbook"},"Parameters":["LoadSCAdminStack"]},{"Label":{"default":"Security Standard Playbooks"},"Parameters":["LoadAFSBPAdminStack","LoadCIS120AdminStack","LoadCIS140AdminStack","LoadCIS300AdminStack","LoadNIST80053AdminStack","LoadPCI321AdminStack"]},{"Label":{"default":"Orchestrator Configuration"},"Parameters":["ReuseOrchestratorLogGroup"]},{"Label":{"default":"Web UI Configuration"},"Parameters":["ShouldDeployWebUI","AdminUserEmail"]},{"Label":{"default":"(Optional) MCP Server"},"Parameters":["EnableMcpServer","AdditionalMcpCallbackUrls"]},{"Label":{"default":"CloudWatch Metrics"},"Parameters":["UseCloudWatchMetrics","UseCloudWatchMetricsAlarms","RollbackRateLimitThreshold"]},{"Label":{"default":"(Optional) Enhanced CloudWatch Metrics"},"Parameters":["EnableEnhancedCloudWatchMetrics","RemediationFailureAlarmThreshold"]},{"Label":{"default":"(Optional) Ticketing Service Integration"},"Parameters":["TicketGenFunctionName"]},{"Label":{"default":"Namespace"},"Parameters":["Namespace"]}],"ParameterLabels":{"SecurityStandardPlaybooks":{"default":"For more details see: https://docs.aws.amazon.com/solutions/latest/automated-security-response-on-aws/enable-fully-automated-remediations.html"}}}},"Mappings":{"SourceCode":{"General":{"S3Bucket":"solutions","KeyPrefix":"automated-security-response-on-aws/v4.1.0"}}},"Resources":{"SHARRkeyE6BD0F56":{"Type":"AWS::KMS::Key","Properties":{"EnableKeyRotation":true,"KeyPolicy":{"Statement":[{"Action":["kms:Encrypt*","kms:Decrypt*","kms:ReEncrypt*","kms:GenerateDataKey*","kms:Describe*"],"Effect":"Allow","Principal":{"Service":"sns.amazonaws.com"},"Resource":"*"},{"Action":["kms:Encrypt*","kms:Decrypt*","kms:ReEncrypt*","kms:GenerateDataKey*","kms:Describe*"],"Condition":{"ArnEquals":{"kms:EncryptionContext:aws:logs:arn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:SO0111-ASR-*"]]}}},"Effect":"Allow","Principal":{"Service":{"Fn::Join":["",["logs.",{"Ref":"AWS::URLSuffix"}]]}},"Resource":"*"},{"Action":["kms:Encrypt*","kms:Decrypt*","kms:ReEncrypt*","kms:GenerateDataKey*","kms:Describe*"],"Condition":{"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":["dynamodb.amazonaws.com","events.amazonaws.com","sqs.amazonaws.com"]},"Resource":"*"},{"Action":"kms:*","Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}},"Resource":"*"},{"Action":["kms:Decrypt","kms:Encrypt","kms:ReEncrypt*","kms:GenerateDataKey*"],"Effect":"Allow","Principal":{"Service":"cloudwatch.amazonaws.com"},"Resource":"*"},{"Action":["kms:GenerateDataKey*","kms:Decrypt"],"Condition":{"ArnLike":{"aws:SourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::so0111-asr-iac-templates-",{"Ref":"Namespace"},"-",{"Ref":"AWS::Region"},"-",{"Ref":"AWS::AccountId"}]]}}},"Effect":"Allow","Principal":{"Service":"s3.amazonaws.com"},"Resource":"*"}],"Version":"2012-10-17"},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain"},"SHARRkeyAlias37E34763":{"Type":"AWS::KMS::Alias","Properties":{"AliasName":"alias/SO0111-SHARR-Key","TargetKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}}},"SHARRKeyC551FE02":{"Type":"AWS::SSM::Parameter","Properties":{"Description":"KMS Customer Managed Key that SHARR will use to encrypt data","Name":"/Solutions/SO0111/CMK_ARN","Tags":{"Solutions:SolutionID":"SO0111","Solutions:SolutionName":"automated-security-response-on-aws","Solutions:SolutionVersion":"v4.1.0"},"Type":"String","Value":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}}},"SHARRTopic229CFB9E":{"Type":"AWS::SNS::Topic","Properties":{"DisplayName":"Automated Security Response on AWS (SO0111) Status Topic","KmsMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TopicName":"SO0111-ASR_Topic"}},"SHARRSNSTopicB940F479":{"Type":"AWS::SSM::Parameter","Properties":{"Description":"SNS Topic ARN where ASR will send status messages. This topic can be useful for driving additional actions, such as email notifications, trouble ticket updates.","Name":"/Solutions/SO0111/SNS_Topic_ARN","Tags":{"Solutions:SolutionID":"SO0111","Solutions:SolutionName":"automated-security-response-on-aws","Solutions:SolutionVersion":"v4.1.0"},"Type":"String","Value":{"Ref":"SHARRTopic229CFB9E"}}},"SHARRversionAC0E4F96":{"Type":"AWS::SSM::Parameter","Properties":{"Description":"Solution version for metrics.","Name":"/Solutions/SO0111/version","Tags":{"Solutions:SolutionID":"SO0111","Solutions:SolutionName":"automated-security-response-on-aws","Solutions:SolutionVersion":"v4.1.0"},"Type":"String","Value":"v4.1.0"}},"ASRFindingsTable3FD52B9C":{"Type":"AWS::DynamoDB::Table","Properties":{"AttributeDefinitions":[{"AttributeName":"findingType","AttributeType":"S"},{"AttributeName":"findingId","AttributeType":"S"},{"AttributeName":"securityHubUpdatedAtTime#findingId","AttributeType":"S"},{"AttributeName":"accountId","AttributeType":"S"},{"AttributeName":"resourceId","AttributeType":"S"},{"AttributeName":"severity","AttributeType":"S"},{"AttributeName":"FINDING_CONSTANT","AttributeType":"S"},{"AttributeName":"severityNormalized#securityHubUpdatedAtTime#findingId","AttributeType":"S"},{"AttributeName":"remediationDueBy","AttributeType":"S"}],"BillingMode":"PAY_PER_REQUEST","DeletionProtectionEnabled":true,"GlobalSecondaryIndexes":[{"IndexName":"accountId-securityHubUpdatedAtTime-GSI","KeySchema":[{"AttributeName":"accountId","KeyType":"HASH"},{"AttributeName":"securityHubUpdatedAtTime#findingId","KeyType":"RANGE"}],"Projection":{"ProjectionType":"ALL"}},{"IndexName":"resourceId-securityHubUpdatedAtTime-GSI","KeySchema":[{"AttributeName":"resourceId","KeyType":"HASH"},{"AttributeName":"securityHubUpdatedAtTime#findingId","KeyType":"RANGE"}],"Projection":{"ProjectionType":"ALL"}},{"IndexName":"severity-securityHubUpdatedAtTime-GSI","KeySchema":[{"AttributeName":"severity","KeyType":"HASH"},{"AttributeName":"securityHubUpdatedAtTime#findingId","KeyType":"RANGE"}],"Projection":{"ProjectionType":"ALL"}},{"IndexName":"allFindings-securityHubUpdatedAtTime-GSI","KeySchema":[{"AttributeName":"FINDING_CONSTANT","KeyType":"HASH"},{"AttributeName":"securityHubUpdatedAtTime#findingId","KeyType":"RANGE"}],"Projection":{"ProjectionType":"ALL"}},{"IndexName":"allFindings-severityNormalized-GSI","KeySchema":[{"AttributeName":"FINDING_CONSTANT","KeyType":"HASH"},{"AttributeName":"severityNormalized#securityHubUpdatedAtTime#findingId","KeyType":"RANGE"}],"Projection":{"ProjectionType":"ALL"}},{"IndexName":"remediationDueBy-GSI","KeySchema":[{"AttributeName":"FINDING_CONSTANT","KeyType":"HASH"},{"AttributeName":"remediationDueBy","KeyType":"RANGE"}],"Projection":{"NonKeyAttributes":["findingType","findingId","remediationStatus","suppressed","accountId","resourceId","creationTime","enforcementConfigIds"],"ProjectionType":"INCLUDE"}}],"KeySchema":[{"AttributeName":"findingType","KeyType":"HASH"},{"AttributeName":"findingId","KeyType":"RANGE"}],"LocalSecondaryIndexes":[{"IndexName":"securityHubUpdatedAtTime-findingId-LSI","KeySchema":[{"AttributeName":"findingType","KeyType":"HASH"},{"AttributeName":"securityHubUpdatedAtTime#findingId","KeyType":"RANGE"}],"Projection":{"ProjectionType":"ALL"}}],"PointInTimeRecoverySpecification":{"PointInTimeRecoveryEnabled":true},"SSESpecification":{"KMSMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"SSEEnabled":true,"SSEType":"KMS"},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TimeToLiveSpecification":{"AttributeName":"expireAt","Enabled":true}},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain"},"ASRRemediationHistoryTable3CA12E73":{"Type":"AWS::DynamoDB::Table","Properties":{"AttributeDefinitions":[{"AttributeName":"findingType","AttributeType":"S"},{"AttributeName":"findingId#executionId","AttributeType":"S"},{"AttributeName":"accountId","AttributeType":"S"},{"AttributeName":"lastUpdatedTime#findingId","AttributeType":"S"},{"AttributeName":"userId","AttributeType":"S"},{"AttributeName":"resourceId","AttributeType":"S"},{"AttributeName":"REMEDIATION_CONSTANT","AttributeType":"S"},{"AttributeName":"findingId","AttributeType":"S"}],"BillingMode":"PAY_PER_REQUEST","DeletionProtectionEnabled":true,"GlobalSecondaryIndexes":[{"IndexName":"accountId-lastUpdatedTime-GSI","KeySchema":[{"AttributeName":"accountId","KeyType":"HASH"},{"AttributeName":"lastUpdatedTime#findingId","KeyType":"RANGE"}],"Projection":{"ProjectionType":"ALL"}},{"IndexName":"userId-lastUpdatedTime-GSI","KeySchema":[{"AttributeName":"userId","KeyType":"HASH"},{"AttributeName":"lastUpdatedTime#findingId","KeyType":"RANGE"}],"Projection":{"ProjectionType":"ALL"}},{"IndexName":"resourceId-lastUpdatedTime-GSI","KeySchema":[{"AttributeName":"resourceId","KeyType":"HASH"},{"AttributeName":"lastUpdatedTime#findingId","KeyType":"RANGE"}],"Projection":{"ProjectionType":"ALL"}},{"IndexName":"allRemediations-lastUpdatedTime-GSI","KeySchema":[{"AttributeName":"REMEDIATION_CONSTANT","KeyType":"HASH"},{"AttributeName":"lastUpdatedTime#findingId","KeyType":"RANGE"}],"Projection":{"ProjectionType":"ALL"}},{"IndexName":"findingId-lastUpdatedTime-GSI","KeySchema":[{"AttributeName":"findingId","KeyType":"HASH"},{"AttributeName":"lastUpdatedTime#findingId","KeyType":"RANGE"}],"Projection":{"ProjectionType":"ALL"}}],"KeySchema":[{"AttributeName":"findingType","KeyType":"HASH"},{"AttributeName":"findingId#executionId","KeyType":"RANGE"}],"PointInTimeRecoverySpecification":{"PointInTimeRecoveryEnabled":true},"SSESpecification":{"KMSMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"SSEEnabled":true,"SSEType":"KMS"},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TimeToLiveSpecification":{"AttributeName":"expireAt","Enabled":true}},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain"},"ASRLambdaLayerDAD507E4":{"Type":"AWS::Lambda::LayerVersion","Properties":{"CompatibleRuntimes":["python3.11"],"Content":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/layer-9a8994c7.zip"},"Description":"SO0111 ASR Common functions used by the solution","LicenseInfo":"https://www.apache.org/licenses/LICENSE-2.0"}},"orchestratorPolicy8045810D":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:*:",{"Ref":"AWS::AccountId"},":log-group:*:log-stream:*"]]}},{"Action":"logs:CreateLogGroup","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:*:",{"Ref":"AWS::AccountId"},":log-group:*"]]}},{"Action":["ssm:GetParameter","ssm:GetParameters","ssm:PutParameter","ssm:DeleteParameter"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:*:",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/*"]]}},{"Action":"sts:AssumeRole","Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::*:role/SO0111-ASR-Orchestrator-Member"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::*:role/SO0111-ASR-Inspector-Automation"]]}]},{"Action":"organizations:ListTagsForResource","Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"PolicyName":"SO0111-ASR_Orchestrator","Roles":[{"Ref":"orchestratorRole46A9F242"}]},"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W12","reason":"Resource * is required for read-only policies used by orchestrator Lambda functions."}]}}},"orchestratorRole46A9F242":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}},{"Action":"sts:AssumeRole","Condition":{"ArnLike":{"aws:PrincipalArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":role/SO0111-ASR-APIs-Role"]]}}},"Effect":"Allow","Principal":{"AWS":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":root"]]}}}],"Version":"2012-10-17"},"Description":"Lambda role for ASR orchestrator functions: writes solution SSM parameters and assumes the cross-account Orchestrator-Member role to run remediations","RoleName":"SO0111-ASR-Orchestrator-Admin","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W28","reason":"Static names chosen intentionally to provide easy integration with playbook orchestrator step functions."}]},"guard":{"SuppressedRules":["IAM_NO_INLINE_POLICY_CHECK"]}}},"orchestratorRoleDefaultPolicyD53B3CFB":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords"],"Effect":"Allow","Resource":"*"},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["CustomRunbookTable1728569E","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["CustomRunbookTable1728569E","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["CustomRunbookTable1728569E","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["CustomRunbookTable1728569E","Arn"]},"/index/*"]]}]}],"Version":"2012-10-17"},"PolicyName":"orchestratorRoleDefaultPolicyD53B3CFB","Roles":[{"Ref":"orchestratorRole46A9F242"}]}},"checkSSMDocumentStateLogGroupF53B2DC6":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"checkSSMDocumentStateC9662D60":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/resolve_ssm_doc_for_finding-64cb9248.zip"},"Description":"Resolves the SSM Automation Document for finding and validates it exists.","Environment":{"Variables":{"log_level":"info","AWS_PARTITION":{"Ref":"AWS::Partition"},"SOLUTION_ID":"SO0111","SOLUTION_VERSION":"v4.1.0","SOLUTION_TMN":"automated-security-response-on-aws","POWERTOOLS_SERVICE_NAME":"resolve_ssm_doc_for_finding","POWERTOOLS_LOG_LEVEL":"INFO","POWERTOOLS_LOGGER_LOG_EVENT":"false","POWERTOOLS_TRACER_CAPTURE_RESPONSE":"true","POWERTOOLS_TRACER_CAPTURE_ERROR":"true","AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"STACK_ID":{"Ref":"AWS::StackId"},"CUSTOM_RUNBOOK_TABLE_NAME":{"Ref":"CustomRunbookTable1728569E"}}},"FunctionName":"SO0111-ASR-checkSSMDocumentState","Handler":"resolve_ssm_doc_for_finding.lambda_handler","Layers":[{"Ref":"ASRLambdaLayerDAD507E4"}],"LoggingConfig":{"LogGroup":{"Ref":"checkSSMDocumentStateLogGroupF53B2DC6"}},"MemorySize":256,"Role":{"Fn::GetAtt":["orchestratorRole46A9F242","Arn"]},"Runtime":"python3.11","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":600,"TracingConfig":{"Mode":"Active"}},"DependsOn":["orchestratorRoleDefaultPolicyD53B3CFB","orchestratorRole46A9F242"],"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W58","reason":"False positive. Access is provided via a policy"},{"id":"W89","reason":"There is no need to run this lambda in a VPC"},{"id":"W92","reason":"There is no need for Reserved Concurrency"}]}}},"getApprovalRequirementLogGroup87AB0978":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"getApprovalRequirementE7F50E54":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/get_approval_requirement-72e583f4.zip"},"Description":"Determines if a manual approval is required for remediation","Environment":{"Variables":{"log_level":"info","AWS_PARTITION":{"Ref":"AWS::Partition"},"SOLUTION_ID":"SO0111","SOLUTION_VERSION":"v4.1.0","WORKFLOW_RUNBOOK":"","SOLUTION_TMN":"automated-security-response-on-aws","POWERTOOLS_SERVICE_NAME":"get_approval_requirement","POWERTOOLS_LOG_LEVEL":"INFO","POWERTOOLS_LOGGER_LOG_EVENT":"false","POWERTOOLS_TRACER_CAPTURE_RESPONSE":"true","POWERTOOLS_TRACER_CAPTURE_ERROR":"true","AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"STACK_ID":{"Ref":"AWS::StackId"}}},"FunctionName":"SO0111-ASR-getApprovalRequirement","Handler":"get_approval_requirement.lambda_handler","Layers":[{"Ref":"ASRLambdaLayerDAD507E4"}],"LoggingConfig":{"LogGroup":{"Ref":"getApprovalRequirementLogGroup87AB0978"}},"MemorySize":256,"Role":{"Fn::GetAtt":["orchestratorRole46A9F242","Arn"]},"Runtime":"python3.11","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":600,"TracingConfig":{"Mode":"Active"}},"DependsOn":["orchestratorRoleDefaultPolicyD53B3CFB","orchestratorRole46A9F242"],"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W58","reason":"False positive. Access is provided via a policy"},{"id":"W89","reason":"There is no need to run this lambda in a VPC"},{"id":"W92","reason":"There is no need for Reserved Concurrency"}]}}},"execAutomationLogGroup10486B84":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"execAutomation5D89E251":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/exec_ssm_doc-f0b22e25.zip"},"Description":"Executes an SSM Automation Document in a target account","Environment":{"Variables":{"log_level":"info","AWS_PARTITION":{"Ref":"AWS::Partition"},"SOLUTION_ID":"SO0111","SOLUTION_VERSION":"v4.1.0","SOLUTION_TMN":"automated-security-response-on-aws","POWERTOOLS_SERVICE_NAME":"exec_ssm_doc","POWERTOOLS_LOG_LEVEL":"INFO","POWERTOOLS_LOGGER_LOG_EVENT":"false","POWERTOOLS_TRACER_CAPTURE_RESPONSE":"true","POWERTOOLS_TRACER_CAPTURE_ERROR":"true","AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"STACK_ID":{"Ref":"AWS::StackId"},"ENABLE_ROLLBACK":{"Ref":"EnableRollback"}}},"FunctionName":"SO0111-ASR-execAutomation","Handler":"exec_ssm_doc.lambda_handler","Layers":[{"Ref":"ASRLambdaLayerDAD507E4"}],"LoggingConfig":{"LogGroup":{"Ref":"execAutomationLogGroup10486B84"}},"MemorySize":256,"Role":{"Fn::GetAtt":["orchestratorRole46A9F242","Arn"]},"Runtime":"python3.11","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":600,"TracingConfig":{"Mode":"Active"}},"DependsOn":["orchestratorRoleDefaultPolicyD53B3CFB","orchestratorRole46A9F242"],"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W58","reason":"False positive. Access is provided via a policy"},{"id":"W89","reason":"There is no need to run this lambda in a VPC"},{"id":"W92","reason":"There is no need for Reserved Concurrency"}]}}},"monitorSSMExecStateLogGroup9B8CE7E6":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"monitorSSMExecStateB496B8AF":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/check_ssm_execution-445cf649.zip"},"Description":"Checks the status of an SSM automation document execution","Environment":{"Variables":{"log_level":"info","AWS_PARTITION":{"Ref":"AWS::Partition"},"SOLUTION_ID":"SO0111","SOLUTION_VERSION":"v4.1.0","SOLUTION_TMN":"automated-security-response-on-aws","POWERTOOLS_SERVICE_NAME":"check_ssm_execution","POWERTOOLS_LOG_LEVEL":"INFO","POWERTOOLS_LOGGER_LOG_EVENT":"false","POWERTOOLS_TRACER_CAPTURE_RESPONSE":"true","POWERTOOLS_TRACER_CAPTURE_ERROR":"true","AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"STACK_ID":{"Ref":"AWS::StackId"}}},"FunctionName":"SO0111-ASR-monitorSSMExecState","Handler":"check_ssm_execution.lambda_handler","Layers":[{"Ref":"ASRLambdaLayerDAD507E4"}],"LoggingConfig":{"LogGroup":{"Ref":"monitorSSMExecStateLogGroup9B8CE7E6"}},"MemorySize":256,"Role":{"Fn::GetAtt":["orchestratorRole46A9F242","Arn"]},"Runtime":"python3.11","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":600,"TracingConfig":{"Mode":"Active"}},"DependsOn":["orchestratorRoleDefaultPolicyD53B3CFB","orchestratorRole46A9F242"],"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W58","reason":"False positive. Access is provided via a policy"},{"id":"W89","reason":"There is no need to run this lambda in a VPC"},{"id":"W92","reason":"There is no need for Reserved Concurrency"}]}}},"notifyPolicy320847DC":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":"*"},{"Action":"securityhub:BatchUpdateFindings","Effect":"Allow","Resource":"*"},{"Action":["ssm:GetParameter","ssm:PutParameter","ssm:DeleteParameter"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/*"]]}},{"Action":["kms:Encrypt","kms:Decrypt","kms:GenerateDataKey"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}},{"Action":"sns:Publish","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":sns:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":SO0111-ASR_Topic"]]}},{"Action":"cloudwatch:PutMetricData","Effect":"Allow","Resource":"*"},{"Action":"organizations:DescribeAccount","Effect":"Allow","Resource":"*"},{"Action":["dynamodb:UpdateItem","dynamodb:PutItem","dynamodb:GetItem"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ASRFindingsTable3FD52B9C","Arn"]},{"Fn::GetAtt":["ASRRemediationHistoryTable3CA12E73","Arn"]}]}],"Version":"2012-10-17"},"PolicyName":"SO0111-ASR_Orchestrator_Notifier","Roles":[{"Ref":"orchestratorRole46A9F242"},{"Ref":"notifyRole40298120"}]},"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W12","reason":"Resource * is required for CloudWatch Logs and Security Hub policies used by core solution Lambda function for notifications."},{"id":"W58","reason":"False positive. Access is provided via a policy"}]}}},"notifyRole40298120":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"Description":"Lambda role to perform notification and logging from orchestrator step function","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W28","reason":"Static names chosen intentionally to provide easy integration with playbook orchestrator step functions."}]}}},"notifyRoleDefaultPolicyEDFDCB10":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords"],"Effect":"Allow","Resource":"*"},{"Action":["sqs:SendMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl"],"Effect":"Allow","Resource":{"Fn::GetAtt":["NotificationDispatcherConstructNotificationQueue5CDAD00E","Arn"]}},{"Action":["kms:Decrypt","kms:Encrypt","kms:ReEncrypt*","kms:GenerateDataKey*"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["RemediationConfigTable24F19C3B","Arn"]}]},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["RemediationConfigTable24F19C3B","Arn"]}]}],"Version":"2012-10-17"},"PolicyName":"notifyRoleDefaultPolicyEDFDCB10","Roles":[{"Ref":"notifyRole40298120"}]}},"MetricResourcesMetricResourcesRoleC49ABA6D":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"Policies":[{"PolicyDocument":{"Statement":[{"Action":"cloudwatch:PutMetricData","Effect":"Allow","Resource":"*"},{"Action":["logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:*:",{"Ref":"AWS::AccountId"},":log-group:*:log-stream:*"]]}},{"Action":"logs:CreateLogGroup","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:*:",{"Ref":"AWS::AccountId"},":log-group:*"]]}},{"Action":["ssm:GetParameter","ssm:GetParameters","ssm:PutParameter","ssm:DeleteParameter"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:*:",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/*"]]}}],"Version":"2012-10-17"},"PolicyName":"LambdaPolicy"}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"Metadata":{"guard":{"SuppressedRules":["IAM_NO_INLINE_POLICY_CHECK","IAM_POLICYDOCUMENT_NO_WILDCARD_RESOURCE"]}}},"MetricResourcesMetricResourcesSecurityHubV2PolicyEF1A676B":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":"securityhub:DescribeSecurityHubV2","Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"PolicyName":"MetricResourcesMetricResourcesSecurityHubV2PolicyEF1A676B","Roles":[{"Ref":"MetricResourcesMetricResourcesRoleC49ABA6D"}]},"Condition":"IsCommercialPartition"},"MetricResourcesASRDeploymentCustomResourceLambdaLogGroup9FC7DFE7":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"MetricResourcesASRDeploymentCustomResourceLambda02CE6550":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/deployment_metrics_custom_resource-c2b3b413.zip"},"Description":"ASR - Handles deployment related custom actions","Environment":{"Variables":{"LOG_LEVEL":"INFO","AWS_PARTITION":{"Ref":"AWS::Partition"},"SOLUTION_ID":"SO0111","SOLUTION_VERSION":"v4.1.0","POWERTOOLS_SERVICE_NAME":"deployment_metrics_custom_resource","POWERTOOLS_LOG_LEVEL":"INFO","POWERTOOLS_LOGGER_LOG_EVENT":"false","POWERTOOLS_TRACER_CAPTURE_RESPONSE":"true","POWERTOOLS_TRACER_CAPTURE_ERROR":"true","AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"STACK_ID":{"Ref":"AWS::StackId"}}},"Handler":"deployment_metrics_custom_resource.lambda_handler","Layers":[{"Ref":"ASRLambdaLayerDAD507E4"}],"LoggingConfig":{"LogGroup":{"Ref":"MetricResourcesASRDeploymentCustomResourceLambdaLogGroup9FC7DFE7"}},"MemorySize":256,"Role":{"Fn::GetAtt":["MetricResourcesMetricResourcesRoleC49ABA6D","Arn"]},"Runtime":"python3.11","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":5},"DependsOn":["MetricResourcesMetricResourcesRoleC49ABA6D"],"Metadata":{"guard":{"SuppressedRules":["LAMBDA_INSIDE_VPC","LAMBDA_CONCURRENCY_CHECK"]}}},"MetricResourcesASRDeploymentMetricsCustomResource0940D9B2":{"Type":"Custom::DeploymentMetrics","Properties":{"ServiceToken":{"Fn::GetAtt":["MetricResourcesASRDeploymentCustomResourceLambda02CE6550","Arn"]},"StackParameters":{"EnableRollback":{"Ref":"EnableRollback"},"EnableEnhancedCloudWatchMetrics":{"Ref":"EnableEnhancedCloudWatchMetrics"},"ShouldDeployWebUI":{"Ref":"ShouldDeployWebUI"},"EnableMcpServer":{"Ref":"EnableMcpServer"},"AdditionalMcpCallbackUrls":{"Fn::Join":[",",{"Ref":"AdditionalMcpCallbackUrls"}]},"MFAConfiguration":{"Ref":"MFAConfiguration"},"AdminUserEmail":{"Ref":"AdminUserEmail"}},"Timestamp":"1791886497249","SecurityHubV2PolicyDependency":{"Fn::If":["IsCommercialPartition",{"Ref":"MetricResourcesMetricResourcesSecurityHubV2PolicyEF1A676B"},{"Ref":"AWS::NoValue"}]}},"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"sendNotificationsLogGroup2C54DFC6":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"sendNotifications1367638A":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/send_notifications-aec7cf06.zip"},"Description":"Sends notifications and log messages","Environment":{"Variables":{"log_level":"info","AWS_PARTITION":{"Ref":"AWS::Partition"},"SOLUTION_ID":"SO0111","SOLUTION_VERSION":"v4.1.0","SOLUTION_TMN":"automated-security-response-on-aws","ENHANCED_METRICS":{"Ref":"EnableEnhancedCloudWatchMetrics"},"FINDINGS_TABLE_NAME":{"Ref":"ASRFindingsTable3FD52B9C"},"HISTORY_TABLE_NAME":{"Ref":"ASRRemediationHistoryTable3CA12E73"},"HISTORY_TTL_DAYS":"365","POWERTOOLS_SERVICE_NAME":"send_notifications","POWERTOOLS_LOG_LEVEL":"INFO","POWERTOOLS_LOGGER_LOG_EVENT":"false","POWERTOOLS_TRACER_CAPTURE_RESPONSE":"true","POWERTOOLS_TRACER_CAPTURE_ERROR":"true","AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"STACK_ID":{"Ref":"AWS::StackId"},"SECURITY_HUB_V2_ENABLED":{"Fn::GetAtt":["MetricResourcesASRDeploymentMetricsCustomResource0940D9B2","securityhub_v2_enabled"]},"DISABLE_ACCOUNT_ALIAS_LOOKUP":"false","ENABLE_ROLLBACK":{"Ref":"EnableRollback"},"NOTIFICATION_QUEUE_URL":{"Ref":"NotificationDispatcherConstructNotificationQueue5CDAD00E"},"REMEDIATION_CONFIG_TABLE_NAME":{"Ref":"RemediationConfigTable24F19C3B"}}},"FunctionName":"SO0111-ASR-sendNotifications","Handler":"send_notifications.lambda_handler","Layers":[{"Ref":"ASRLambdaLayerDAD507E4"}],"LoggingConfig":{"LogGroup":{"Ref":"sendNotificationsLogGroup2C54DFC6"}},"MemorySize":256,"Role":{"Fn::GetAtt":["notifyRole40298120","Arn"]},"Runtime":"python3.11","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":600,"TracingConfig":{"Mode":"Active"}},"DependsOn":["notifyRoleDefaultPolicyEDFDCB10","notifyRole40298120"],"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W58","reason":"False positive. Access is provided via a policy"},{"id":"W89","reason":"There is no need to run this lambda in a VPC"},{"id":"W92","reason":"There is no need for Reserved Concurrency due to low request rate"}]}}},"sendNotificationsAllowExecutionFailureRuleInvoke7B2B1A91":{"Type":"AWS::Lambda::Permission","Properties":{"Action":"lambda:InvokeFunction","FunctionName":{"Fn::GetAtt":["sendNotifications1367638A","Arn"]},"Principal":"events.amazonaws.com","SourceArn":{"Fn::GetAtt":["orchestratorExecutionFailureRuleB8D32114","Arn"]}}},"createCustomActionPolicyE424E925":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":"cloudwatch:PutMetricData","Effect":"Allow","Resource":"*"},{"Action":["logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:*:",{"Ref":"AWS::AccountId"},":log-group:*:log-stream:*"]]}},{"Action":"logs:CreateLogGroup","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:*:",{"Ref":"AWS::AccountId"},":log-group:*"]]}},{"Action":["securityhub:CreateActionTarget","securityhub:DescribeActionTargets","securityhub:DeleteActionTarget"],"Effect":"Allow","Resource":"*"},{"Action":["ssm:GetParameter","ssm:GetParameters","ssm:PutParameter","ssm:DeleteParameter"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:*:",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/*"]]}}],"Version":"2012-10-17"},"PolicyName":"SO0111-ASR_Custom_Action","Roles":[{"Ref":"createCustomActionRoleF0047414"}]},"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W12","reason":"Resource * is required for CloudWatch Logs policies used on Lambda functions."}]}}},"createCustomActionRoleF0047414":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"Description":"Lambda role to allow creation of Security Hub Custom Actions","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W28","reason":"Static names chosen intentionally to provide easy integration with playbook templates"}]}}},"CreateCustomActionLogGroup8FC49122":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"CreateCustomActionE7A973F5":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/action_target_provider-cc2125a6.zip"},"Description":"Custom resource to create or retrieve an action target in Security Hub","Environment":{"Variables":{"log_level":"info","AWS_PARTITION":{"Ref":"AWS::Partition"},"SOLUTION_ID":"SO0111","SOLUTION_VERSION":"v4.1.0","POWERTOOLS_SERVICE_NAME":"action_target_provider","POWERTOOLS_LOG_LEVEL":"INFO","POWERTOOLS_LOGGER_LOG_EVENT":"false","POWERTOOLS_TRACER_CAPTURE_RESPONSE":"true","POWERTOOLS_TRACER_CAPTURE_ERROR":"true","AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"STACK_ID":{"Ref":"AWS::StackId"}}},"FunctionName":"SO0111-SHARR-CustomAction","Handler":"action_target_provider.lambda_handler","Layers":[{"Ref":"ASRLambdaLayerDAD507E4"}],"LoggingConfig":{"LogGroup":{"Ref":"CreateCustomActionLogGroup8FC49122"}},"MemorySize":256,"Role":{"Fn::GetAtt":["createCustomActionRoleF0047414","Arn"]},"Runtime":"python3.11","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":600},"DependsOn":["createCustomActionRoleF0047414"],"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W58","reason":"False positive. the lambda role allows write to CW Logs"},{"id":"W89","reason":"There is no need to run this lambda in a VPC"},{"id":"W92","reason":"There is no need for Reserved Concurrency due to low request rate"}]}}},"deadLetterSchedulingQueue9BCE9EA8":{"Type":"AWS::SQS::Queue","Properties":{"KmsDataKeyReusePeriodSeconds":3600,"KmsMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"MessageRetentionPeriod":1209600,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"deadLetterSchedulingQueuePolicy87B26533":{"Type":"AWS::SQS::QueuePolicy","Properties":{"PolicyDocument":{"Statement":[{"Action":"sqs:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["deadLetterSchedulingQueue9BCE9EA8","Arn"]}}],"Version":"2012-10-17"},"Queues":[{"Ref":"deadLetterSchedulingQueue9BCE9EA8"}]}},"SchedulingQueueB533E3CD":{"Type":"AWS::SQS::Queue","Properties":{"KmsDataKeyReusePeriodSeconds":3600,"KmsMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"RedrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["deadLetterSchedulingQueue9BCE9EA8","Arn"]},"maxReceiveCount":10},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"SchedulingQueuePolicy36FAAC29":{"Type":"AWS::SQS::QueuePolicy","Properties":{"PolicyDocument":{"Statement":[{"Action":"sqs:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["SchedulingQueueB533E3CD","Arn"]}}],"Version":"2012-10-17"},"Queues":[{"Ref":"SchedulingQueueB533E3CD"}]}},"orchestratorNestedLogStackNestedStackNestedLogStackNestedStackResourceE4E042A6":{"Type":"AWS::CloudFormation::Stack","Properties":{"Parameters":{"KmsKeyArn":{"Fn::GetAtt":["SHARRKeyC551FE02","Value"]},"ReuseOrchestratorLogGroup":{"Ref":"ReuseOrchestratorLogGroup"}},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TemplateURL":{"Fn::Join":["",["https://",{"Fn::FindInMap":["SourceCode","General","S3Bucket"]},"-reference.s3.amazonaws.com/",{"Fn::FindInMap":["SourceCode","General","KeyPrefix"]},"/automated-security-response-orchestrator-log.template"]]}},"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"orchestratorRole12B410FD":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"},"Policies":[{"PolicyDocument":{"Statement":[{"Action":["logs:CreateLogDelivery","logs:GetLogDelivery","logs:UpdateLogDelivery","logs:DeleteLogDelivery","logs:ListLogDeliveries","logs:PutResourcePolicy","logs:DescribeResourcePolicies","logs:DescribeLogGroups"],"Effect":"Allow","Resource":"*"},{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":lambda:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":function:",{"Fn::Select":[6,{"Fn::Split":[":",{"Fn::GetAtt":["checkSSMDocumentStateC9662D60","Arn"]}]}]}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":lambda:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":function:",{"Fn::Select":[6,{"Fn::Split":[":",{"Fn::GetAtt":["execAutomation5D89E251","Arn"]}]}]}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":lambda:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":function:",{"Fn::Select":[6,{"Fn::Split":[":",{"Fn::GetAtt":["monitorSSMExecStateB496B8AF","Arn"]}]}]}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":lambda:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":function:",{"Fn::Select":[6,{"Fn::Split":[":",{"Fn::GetAtt":["sendNotifications1367638A","Arn"]}]}]}]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":lambda:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":function:",{"Fn::Select":[6,{"Fn::Split":[":",{"Fn::GetAtt":["getApprovalRequirementE7F50E54","Arn"]}]}]}]]},{"Fn::If":["orchestratorTicketingEnabledConditionEE999626",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":lambda:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":function:",{"Ref":"TicketGenFunctionName"}]]},{"Ref":"AWS::NoValue"}]}]},{"Action":["kms:Encrypt","kms:Decrypt","kms:GenerateDataKey"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":alias/SO0111-SHARR-Key"]]},{"Fn::GetAtt":["SHARRKeyC551FE02","Value"]}]},{"Action":"sqs:SendMessage","Effect":"Allow","Resource":{"Fn::GetAtt":["SchedulingQueueB533E3CD","Arn"]}}],"Version":"2012-10-17"},"PolicyName":"BasePolicy"}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W11","reason":"CloudWatch Logs permissions require resource * except for DescribeLogGroups, except for GovCloud, which only works with resource *"}]},"guard":{"SuppressedRules":["IAM_NO_INLINE_POLICY_CHECK"]}}},"orchestratorStateMachine77C3F8FB":{"Type":"AWS::StepFunctions::StateMachine","Properties":{"DefinitionString":{"Fn::Join":["",["{\"StartAt\":\"Get Finding Data from Input\",\"States\":{\"Get Finding Data from Input\":{\"Type\":\"Pass\",\"Comment\":\"Extract top-level data needed for remediation\",\"Parameters\":{\"EventType.$\":\"$.detail-type\",\"Findings.$\":\"$.detail.findings\",\"CustomActionName.$\":\"$.detail.actionName\",\"Detail.$\":\"$.detail\"},\"Next\":\"Process Findings\"},\"Process Findings\":{\"Type\":\"Map\",\"Comment\":\"Process all findings in CloudWatch Event\",\"Next\":\"EOJ\",\"ItemsPath\":\"$.Findings\",\"ItemSelector\":{\"Finding.$\":\"$$.Map.Item.Value\",\"EventType.$\":\"$.EventType\",\"CustomActionName.$\":\"$.CustomActionName\",\"Detail.$\":\"$.Detail\"},\"ItemProcessor\":{\"ProcessorConfig\":{\"Mode\":\"INLINE\"},\"StartAt\":\"Finding Workflow State NEW?\",\"States\":{\"Finding Workflow State NEW?\":{\"Type\":\"Choice\",\"Choices\":[{\"Or\":[{\"Variable\":\"$.EventType\",\"StringEquals\":\"Security Hub Findings - Custom Action\"},{\"Variable\":\"$.EventType\",\"StringEquals\":\"Security Hub Findings - API Action\"},{\"And\":[{\"Variable\":\"$.Finding.Workflow.Status\",\"IsPresent\":true},{\"Variable\":\"$.Finding.Workflow.Status\",\"StringEquals\":\"NEW\"}]},{\"And\":[{\"Variable\":\"$.Detail.findingType\",\"IsPresent\":true},{\"Variable\":\"$.Detail.findingType\",\"StringEquals\":\"multiService\"}]}],\"Next\":\"Get Remediation Approval Requirement\"}],\"Default\":\"Finding Workflow State is not NEW\"},\"Finding Workflow State is not NEW\":{\"Type\":\"Pass\",\"Parameters\":{\"Notification\":{\"Message.$\":\"States.Format('Finding Workflow State is not NEW ({}).', $.Finding.Workflow.Status)\",\"State.$\":\"States.Format('NOT_NEW')\",\"StepFunctionsExecutionId.$\":\"$$.Execution.Id\"},\"EventType.$\":\"$.EventType\",\"Finding.$\":\"$.Finding\"},\"Next\":\"notify\"},\"notify\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Comment\":\"Send notifications\",\"TimeoutSeconds\":300,\"HeartbeatSeconds\":60,\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["sendNotifications1367638A","Arn"]},"\",\"Payload.$\":\"$\"}},\"Automation Document is not Active\":{\"Type\":\"Pass\",\"Parameters\":{\"Notification\":{\"Message.$\":\"States.Format('Automation Document ({}) is not active ({}) in the member account({}).', $.AutomationDocId, $.AutomationDocument.DocState, $.Finding.AwsAccountId)\",\"State.$\":\"States.Format('RUNBOOK_NOT_ACTIVE')\",\"StepFunctionsExecutionId.$\":\"$$.Execution.Id\",\"updateSecHub\":\"yes\"},\"EventType.$\":\"$.EventType\",\"Finding.$\":\"$.Finding\",\"AccountId.$\":\"$.AutomationDocument.AccountId\",\"AutomationDocId.$\":\"$.AutomationDocument.AutomationDocId\",\"RemediationRole.$\":\"$.AutomationDocument.RemediationRole\",\"ControlId.$\":\"$.AutomationDocument.ControlId\",\"SecurityStandard.$\":\"$.AutomationDocument.SecurityStandard\",\"SecurityStandardVersion.$\":\"$.AutomationDocument.SecurityStandardVersion\"},\"Next\":\"notify\"},\"Automation Doc Active?\":{\"Type\":\"Choice\",\"Choices\":[{\"Variable\":\"$.AutomationDocument.DocState\",\"StringEquals\":\"ACTIVE\",\"Next\":\"Send Task Token\"},{\"Variable\":\"$.AutomationDocument.DocState\",\"StringEquals\":\"NOTACTIVE\",\"Next\":\"Automation Document is not Active\"},{\"Variable\":\"$.AutomationDocument.DocState\",\"StringEquals\":\"NOTENABLED\",\"Next\":\"Playbook is not enabled\"},{\"Variable\":\"$.AutomationDocument.DocState\",\"StringEquals\":\"NOTFOUND\",\"Next\":\"No Runbook for Control\"},{\"Variable\":\"$.AutomationDocument.DocState\",\"StringEquals\":\"ACCESSDENIED\",\"Next\":\"Assume Role Failure\"}],\"Default\":\"resolve_ssm_doc_for_finding Error\"},\"Get Automation Document State\":{\"Next\":\"Automation Doc Active?\",\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2},{\"ErrorEquals\":[\"Lambda.ServiceException\",\"Lambda.TooManyRequestsException\",\"States.TaskFailed\",\"States.Timeout\"],\"IntervalSeconds\":5,\"MaxAttempts\":3,\"BackoffRate\":2}],\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.ErrorInfo\",\"Next\":\"Orchestrator Failed\"}],\"Type\":\"Task\",\"Comment\":\"Get the status of the remediation automation document in the target account\",\"TimeoutSeconds\":60,\"ResultPath\":\"$.AutomationDocument\",\"ResultSelector\":{\"DocState.$\":\"$.Payload.status\",\"Message.$\":\"$.Payload.message\",\"SecurityStandard.$\":\"$.Payload.securitystandard\",\"SecurityStandardVersion.$\":\"$.Payload.securitystandardversion\",\"PlaybookEnabled.$\":\"$.Payload.playbookenabled\",\"ControlId.$\":\"$.Payload.controlid\",\"AccountId.$\":\"$.Payload.accountid\",\"RemediationRole.$\":\"$.Payload.remediationrole\",\"AutomationDocId.$\":\"$.Payload.automationdocid\",\"ResourceRegion.$\":\"$.Payload.resourceregion\"},\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["checkSSMDocumentStateC9662D60","Arn"]},"\",\"Payload.$\":\"$\"}},\"Get Remediation Approval Requirement\":{\"Next\":\"Get Automation Document State\",\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.ErrorInfo\",\"Next\":\"Orchestrator Failed\"}],\"Type\":\"Task\",\"Comment\":\"Determine whether the selected remediation requires manual approval\",\"TimeoutSeconds\":300,\"ResultPath\":\"$.Workflow\",\"ResultSelector\":{\"WorkflowDocument.$\":\"$.Payload.workflowdoc\",\"WorkflowAccount.$\":\"$.Payload.workflowaccount\",\"WorkflowRole.$\":\"$.Payload.workflowrole\",\"WorkflowConfig.$\":\"$.Payload.workflow_data\"},\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["getApprovalRequirementE7F50E54","Arn"]},"\",\"Payload.$\":\"$\"}},\"Orchestrator Failed\":{\"Type\":\"Pass\",\"Parameters\":{\"Notification\":{\"Message.$\":\"States.Format('Orchestrator failed: {}', $.ErrorInfo.Error)\",\"State.$\":\"States.Format('LAMBDA_ERROR')\",\"Details.$\":\"States.Format('Cause: {}', $.ErrorInfo.Cause)\",\"StepFunctionsExecutionId.$\":\"$$.Execution.Id\"},\"EventType.$\":\"$.EventType\",\"Finding.$\":\"$.Finding\",\"Payload.$\":\"$\"},\"Next\":\"notify\"},\"Send Task Token\":{\"Next\":\"Remediation Wait\",\"Retry\":[{\"ErrorEquals\":[\"States.TaskFailed\",\"States.Timeout\"],\"IntervalSeconds\":5,\"MaxAttempts\":3,\"BackoffRate\":2}],\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.ErrorInfo\",\"Next\":\"Orchestrator Failed\"}],\"Type\":\"Task\",\"Comment\":\"Send Task Token to SQS Queue for Remediation Scheduling\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::sqs:sendMessage.waitForTaskToken\",\"Parameters\":{\"QueueUrl\":\"",{"Ref":"SchedulingQueueB533E3CD"},"\",\"MessageBody\":{\"RemediationDetails.$\":\"$\",\"TaskToken.$\":\"$$.Task.Token\",\"AccountId.$\":\"$.AutomationDocument.AccountId\",\"ResourceRegion.$\":\"$.AutomationDocument.ResourceRegion\",\"StepFunctionsExecutionId.$\":\"$$.Execution.Id\"}}},\"Remediation Wait\":{\"Type\":\"Wait\",\"Comment\":\"Waiting for remediation\",\"TimestampPath\":\"$.PlannedTimestamp\",\"Next\":\"Execute Remediation\"},\"Execute Remediation\":{\"Next\":\"Remediation Queued\",\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2},{\"ErrorEquals\":[\"Lambda.ServiceException\",\"Lambda.TooManyRequestsException\",\"States.TaskFailed\",\"States.Timeout\"],\"IntervalSeconds\":2,\"MaxAttempts\":2,\"BackoffRate\":2}],\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.ErrorInfo\",\"Next\":\"Orchestrator Failed\"}],\"Type\":\"Task\",\"Comment\":\"Execute the SSM Automation Document in the target account\",\"TimeoutSeconds\":300,\"HeartbeatSeconds\":60,\"ResultPath\":\"$.SSMExecution\",\"ResultSelector\":{\"ExecState.$\":\"$.Payload.status\",\"RemediationOutput.$\":\"$.Payload.remediation_output\",\"Message.$\":\"$.Payload.message\",\"SSMExecutionId.$\":\"$.Payload.executionid\",\"Account.$\":\"$.Payload.executionaccount\",\"Region.$\":\"$.Payload.executionregion\"},\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["execAutomation5D89E251","Arn"]},"\",\"Payload.$\":\"$\"}},\"Remediation Queued\":{\"Type\":\"Pass\",\"Comment\":\"Set parameters for notification\",\"Parameters\":{\"EventType.$\":\"$.EventType\",\"CustomActionName.$\":\"$.CustomActionName\",\"Finding.$\":\"$.Finding\",\"AutomationDocument.$\":\"$.AutomationDocument\",\"SSMExecution.$\":\"$.SSMExecution\",\"ControlId.$\":\"$.AutomationDocument.ControlId\",\"Notification\":{\"Message.$\":\"States.Format('Remediation queued for {} control {} in account {}', $.AutomationDocument.SecurityStandard, $.AutomationDocument.ControlId, $.AutomationDocument.AccountId)\",\"State.$\":\"States.Format('QUEUED')\",\"SSMExecutionId.$\":\"$.SSMExecution.SSMExecutionId\",\"StepFunctionsExecutionId.$\":\"$$.Execution.Id\",\"RemediationOutput.$\":\"$.SSMExecution.RemediationOutput\"}},\"Next\":\"Queued Notification\"},\"Queued Notification\":{\"Next\":\"execMonitor\",\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.ErrorInfo\",\"Next\":\"Orchestrator Failed\"}],\"Type\":\"Task\",\"Comment\":\"Send notification that a remediation has queued\",\"TimeoutSeconds\":300,\"HeartbeatSeconds\":60,\"ResultPath\":\"$.notificationResult\",\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["sendNotifications1367638A","Arn"]},"\",\"Payload.$\":\"$\"}},\"execMonitor\":{\"Next\":\"Remediation completed?\",\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.ErrorInfo\",\"Next\":\"Orchestrator Failed\"}],\"Type\":\"Task\",\"Comment\":\"Monitor the remediation execution until done\",\"TimeoutSeconds\":300,\"HeartbeatSeconds\":60,\"ResultPath\":\"$.Remediation\",\"ResultSelector\":{\"ExecState.$\":\"$.Payload.status\",\"SSMExecutionId.$\":\"$.Payload.executionid\",\"RemediationState.$\":\"$.Payload.remediation_status\",\"Message.$\":\"$.Payload.message\",\"RemediationOutput.$\":\"$.Payload.remediation_output\",\"LogData.$\":\"$.Payload.logdata\",\"AffectedObject.$\":\"$.Payload.affected_object\",\"BackupS3Key.$\":\"$.Payload.backup_s3_key\"},\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::GetAtt":["monitorSSMExecStateB496B8AF","Arn"]},"\",\"Payload.$\":\"$\"}},\"Wait for Remediation\":{\"Type\":\"Wait\",\"Seconds\":10,\"Next\":\"execMonitor\"},\"Remediation completed?\":{\"Type\":\"Choice\",\"Choices\":[{\"Variable\":\"$.Remediation.RemediationState\",\"StringEquals\":\"Failed\",\"Next\":\"Remediation Failed\"},{\"Variable\":\"$.Remediation.ExecState\",\"StringEquals\":\"Success\",\"Next\":\"Remediation Succeeded\"},{\"Variable\":\"$.Remediation.ExecState\",\"StringEquals\":\"TimedOut\",\"Next\":\"Remediation Failed\"},{\"Variable\":\"$.Remediation.ExecState\",\"StringEquals\":\"Cancelling\",\"Next\":\"Remediation Failed\"},{\"Variable\":\"$.Remediation.ExecState\",\"StringEquals\":\"Cancelled\",\"Next\":\"Remediation Failed\"},{\"Variable\":\"$.Remediation.ExecState\",\"StringEquals\":\"Failed\",\"Next\":\"Remediation Failed\"}],\"Default\":\"Wait for Remediation\"},\"Remediation Failed\":{\"Type\":\"Pass\",\"Comment\":\"Set parameters for notification\",\"Parameters\":{\"EventType.$\":\"$.EventType\",\"Finding.$\":\"$.Finding\",\"CustomActionName.$\":\"$.CustomActionName\",\"SSMExecution.$\":\"$.SSMExecution\",\"AutomationDocument.$\":\"$.AutomationDocument\",\"Notification\":{\"Message.$\":\"States.Format('Remediation failed for {} control {} in account {}: {}', $.AutomationDocument.SecurityStandard, $.AutomationDocument.ControlId, $.AutomationDocument.AccountId, $.Remediation.Message)\",\"RemediationOutput.$\":\"$.Remediation.RemediationOutput\",\"State.$\":\"$.Remediation.ExecState\",\"Details.$\":\"$.Remediation.LogData\",\"SSMExecutionId.$\":\"$.Remediation.SSMExecutionId\",\"StepFunctionsExecutionId.$\":\"$$.Execution.Id\",\"AffectedObject.$\":\"$.Remediation.AffectedObject\"}},\"Next\":\"notify\"},\"Remediation Succeeded\":{\"Type\":\"Pass\",\"Comment\":\"Set parameters for notification\",\"Parameters\":{\"EventType.$\":\"$.EventType\",\"Finding.$\":\"$.Finding\",\"CustomActionName.$\":\"$.CustomActionName\",\"AccountId.$\":\"$.AutomationDocument.AccountId\",\"AutomationDocId.$\":\"$.AutomationDocument.AutomationDocId\",\"RemediationRole.$\":\"$.AutomationDocument.RemediationRole\",\"ControlId.$\":\"$.AutomationDocument.ControlId\",\"SecurityStandard.$\":\"$.AutomationDocument.SecurityStandard\",\"SecurityStandardVersion.$\":\"$.AutomationDocument.SecurityStandardVersion\",\"Notification\":{\"Message.$\":\"States.Format('Remediation succeeded for {} control {} in account {}: {}', $.AutomationDocument.SecurityStandard, $.AutomationDocument.ControlId, $.AutomationDocument.AccountId, $.Remediation.Message)\",\"RemediationOutput.$\":\"$.Remediation.RemediationOutput\",\"State.$\":\"States.Format('SUCCESS')\",\"Details.$\":\"$.Remediation.LogData\",\"SSMExecutionId.$\":\"$.Remediation.SSMExecutionId\",\"StepFunctionsExecutionId.$\":\"$$.Execution.Id\",\"AffectedObject.$\":\"$.Remediation.AffectedObject\",\"BackupS3Key.$\":\"$.Remediation.BackupS3Key\"}},\"Next\":\"Which custom action triggered this workflow?\"},\"Which custom action triggered this workflow?\":{\"Type\":\"Choice\",\"Choices\":[{\"Variable\":\"$.CustomActionName\",\"StringEquals\":\"ASR:Remediate&Ticket\",\"Next\":\"Generate Ticket\"}],\"Default\":\"notify\"},\"Generate Ticket\":{\"Next\":\"notify\",\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"ResultPath\":\"$.ErrorInfo\",\"Next\":\"Orchestrator Failed\"}],\"Type\":\"Task\",\"Comment\":\"Create ticket using ticket generator function ARN passed to the stack during deployment. The ARN in this step will be a placeholder string unless you filled in the Ticket Generator Function ARN parameter during Admin stack deployment.\",\"TimeoutSeconds\":300,\"HeartbeatSeconds\":60,\"ResultPath\":\"$.GenerateTicket\",\"ResultSelector\":{\"TicketURL.$\":\"$.Payload.TicketURL\",\"Ok.$\":\"$.Payload.Ok\",\"ResponseCode.$\":\"$.Payload.ResponseCode\",\"ResponseReason.$\":\"$.Payload.ResponseReason\"},\"Resource\":\"arn:",{"Ref":"AWS::Partition"},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{"Fn::If":["orchestratorTicketingEnabledConditionEE999626",{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":lambda:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":function:",{"Ref":"TicketGenFunctionName"}]]},"No Lambda Function ARN available. Ticketing feature is disabled."]},"\",\"Payload\":{\"RemediationInfo\":{\"Message.$\":\"$.Notification.Message\",\"FindingDescription.$\":\"$.Finding.Description\",\"FindingSeverity.$\":\"$.Finding.Severity.Label\",\"SecurityControlId.$\":\"$.Finding.Compliance.SecurityControlId\",\"FindingAccountId.$\":\"$.Finding.AwsAccountId\",\"AffectedResource.$\":\"$.Notification.AffectedObject\"}}}},\"resolve_ssm_doc_for_finding Error\":{\"Type\":\"Pass\",\"Parameters\":{\"Notification\":{\"Message.$\":\"States.Format('resolve_ssm_doc_for_finding returned an error: {}', $.AutomationDocument.Message)\",\"State.$\":\"States.Format('LAMBDA_ERROR')\",\"StepFunctionsExecutionId.$\":\"$$.Execution.Id\"},\"EventType.$\":\"$.EventType\",\"Finding.$\":\"$.Finding\"},\"Next\":\"notify\"},\"Playbook is not enabled\":{\"Type\":\"Pass\",\"Parameters\":{\"Notification\":{\"Message.$\":\"States.Format('ASR playbook for ({}) v{} is not enabled.', $.AutomationDocument.SecurityStandard, $.AutomationDocument.SecurityStandardVersion)\",\"State.$\":\"States.Format('PLAYBOOK_NOT_ENABLED')\",\"StepFunctionsExecutionId.$\":\"$$.Execution.Id\",\"updateSecHub\":\"yes\"},\"EventType.$\":\"$.EventType\",\"Finding.$\":\"$.Finding\",\"AccountId.$\":\"$.AutomationDocument.AccountId\",\"AutomationDocId.$\":\"$.AutomationDocument.AutomationDocId\",\"RemediationRole.$\":\"$.AutomationDocument.RemediationRole\",\"ControlId.$\":\"$.AutomationDocument.ControlId\",\"SecurityStandard.$\":\"$.AutomationDocument.SecurityStandard\",\"SecurityStandardVersion.$\":\"$.AutomationDocument.SecurityStandardVersion\"},\"Next\":\"notify\"},\"No Runbook for Control\":{\"Type\":\"Pass\",\"Parameters\":{\"Notification\":{\"Message.$\":\"States.Format('ASR runbook for control {} in Security Standard {} v{} could not be found in account {} in region {}. Verify that the member stacks are deployed in this account & region, and that this control is supported by ASR.', $.AutomationDocument.ControlId, $.AutomationDocument.SecurityStandard, $.AutomationDocument.SecurityStandardVersion, $.Finding.AwsAccountId, $.Finding.Region)\",\"State.$\":\"States.Format('NO_RUNBOOK')\",\"StepFunctionsExecutionId.$\":\"$$.Execution.Id\",\"updateSecHub\":\"yes\"},\"EventType.$\":\"$.EventType\",\"Finding.$\":\"$.Finding\",\"AccountId.$\":\"$.AutomationDocument.AccountId\",\"AutomationDocId.$\":\"$.AutomationDocument.AutomationDocId\",\"RemediationRole.$\":\"$.AutomationDocument.RemediationRole\",\"ControlId.$\":\"$.AutomationDocument.ControlId\",\"SecurityStandard.$\":\"$.AutomationDocument.SecurityStandard\",\"SecurityStandardVersion.$\":\"$.AutomationDocument.SecurityStandardVersion\"},\"Next\":\"notify\"},\"Assume Role Failure\":{\"Type\":\"Pass\",\"Parameters\":{\"Notification\":{\"Message.$\":\"States.Format('Unable to assume the Orchestrator Member Role (SO0111-ASR-Orchestrator-Member) in account {}. Please verify that the automated-security-response-member-roles stack is deployed in the account and the Orchestrator Member Role is valid.', $.Finding.AwsAccountId)\",\"State.$\":\"States.Format('ASSUME_ROLE_FAILURE')\",\"StepFunctionsExecutionId.$\":\"$$.Execution.Id\"},\"EventType.$\":\"$.EventType\",\"Finding.$\":\"$.Finding\",\"AccountId.$\":\"$.AutomationDocument.AccountId\",\"AutomationDocId.$\":\"$.AutomationDocument.AutomationDocId\",\"RemediationRole.$\":\"$.AutomationDocument.RemediationRole\",\"ControlId.$\":\"$.AutomationDocument.ControlId\",\"SecurityStandard.$\":\"$.AutomationDocument.SecurityStandard\",\"SecurityStandardVersion.$\":\"$.AutomationDocument.SecurityStandardVersion\"},\"Next\":\"notify\"}}}},\"EOJ\":{\"Type\":\"Pass\",\"Comment\":\"END-OF-JOB\",\"End\":true}},\"TimeoutSeconds\":82800}"]]},"LoggingConfiguration":{"Destinations":[{"CloudWatchLogsLogGroup":{"LogGroupArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:SO0111-ASR-Orchestrator:*"]]}}}],"IncludeExecutionData":true,"Level":"ALL"},"RoleArn":{"Fn::GetAtt":["orchestratorRole12B410FD","Arn"]},"StateMachineName":"SO0111-ASR-Orchestrator","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TracingConfiguration":{"Enabled":true}},"DependsOn":["orchestratorNestedLogStackNestedStackNestedLogStackNestedStackResourceE4E042A6","orchestratorRole12B410FD"],"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"orchestratorSHARROrchestratorArn0ACC7B05":{"Type":"AWS::SSM::Parameter","Properties":{"Description":"Arn of the ASR Orchestrator Step Function. This step function routes findings to remediation runbooks.","Name":"/Solutions/SO0111/OrchestratorArn","Tags":{"Solutions:SolutionID":"SO0111","Solutions:SolutionName":"automated-security-response-on-aws","Solutions:SolutionVersion":"v4.1.0"},"Type":"String","Value":{"Ref":"orchestratorStateMachine77C3F8FB"}}},"orchestratorExecutionFailureRuleB8D32114":{"Type":"AWS::Events::Rule","Properties":{"Description":"Catch Step Functions execution failures and timeouts and send notifications","EventPattern":{"source":["aws.states"],"detail-type":["Step Functions Execution Status Change"],"detail":{"status":["TIMED_OUT","FAILED","ABORTED"],"stateMachineArn":[{"Ref":"orchestratorStateMachine77C3F8FB"}]}},"State":"ENABLED","Targets":[{"Arn":{"Fn::GetAtt":["sendNotifications1367638A","Arn"]},"Id":"Target0","InputPath":"$","RetryPolicy":{"MaximumEventAgeInSeconds":7200,"MaximumRetryAttempts":2}}]}},"EnableAdaptiveConcurrencyRole7E36E08C":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"Description":"Lambda role to enable SSM Adaptive Concurrency","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]}},"EnableAdaptiveConcurrencyRoleDefaultPolicy2EB5ED2F":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["ssm:UpdateServiceSetting","ssm:GetServiceSetting"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":servicesetting/ssm/automation/enable-adaptive-concurrency"]]}},{"Action":["logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["EnableAdaptiveConcurrencyLambdaLogGroupE7C5FCF4","Arn"]}}],"Version":"2012-10-17"},"PolicyName":"EnableAdaptiveConcurrencyRoleDefaultPolicy2EB5ED2F","Roles":[{"Ref":"EnableAdaptiveConcurrencyRole7E36E08C"}]}},"EnableAdaptiveConcurrencyLambdaLogGroupE7C5FCF4":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"EnableAdaptiveConcurrencyLambdaF1D84279":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/enable_adaptive_concurrency-cb7a22f5.zip"},"Description":"Custom resource to enable SSM Adaptive Concurrency","FunctionName":"SO0111-EnableSSMAdaptiveConcurrency","Handler":"enable_adaptive_concurrency.lambda_handler","LoggingConfig":{"LogGroup":{"Ref":"EnableAdaptiveConcurrencyLambdaLogGroupE7C5FCF4"}},"Role":{"Fn::GetAtt":["EnableAdaptiveConcurrencyRole7E36E08C","Arn"]},"Runtime":"python3.11","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":300},"DependsOn":["EnableAdaptiveConcurrencyRoleDefaultPolicy2EB5ED2F","EnableAdaptiveConcurrencyRole7E36E08C"],"Metadata":{"guard":{"SuppressedRules":["LAMBDA_INSIDE_VPC","LAMBDA_CONCURRENCY_CHECK"]}}},"EnableAdaptiveConcurrencyResource":{"Type":"AWS::CloudFormation::CustomResource","Properties":{"ServiceToken":{"Fn::GetAtt":["EnableAdaptiveConcurrencyLambdaF1D84279","Arn"]},"SolutionVersion":"v4.1.0"},"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"EventsRuleRoleF1007C39":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"events.amazonaws.com"}}],"Version":"2012-10-17"},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]}},"EventsRuleRoleDefaultPolicyDEB4CE7D":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"orchestratorStateMachine77C3F8FB"}}],"Version":"2012-10-17"},"PolicyName":"EventsRuleRoleDefaultPolicyDEB4CE7D","Roles":[{"Ref":"EventsRuleRoleF1007C39"}]}},"CSVExportAccessLogs748A02F4":{"Type":"AWS::S3::Bucket","Properties":{"AccessControl":"LogDeliveryWrite","BucketEncryption":{"ServerSideEncryptionConfiguration":[{"ServerSideEncryptionByDefault":{"SSEAlgorithm":"AES256"}}]},"OwnershipControls":{"Rules":[{"ObjectOwnership":"ObjectWriter"}]},"PublicAccessBlockConfiguration":{"BlockPublicAcls":true,"BlockPublicPolicy":true,"IgnorePublicAcls":true,"RestrictPublicBuckets":true},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"VersioningConfiguration":{"Status":"Enabled"}},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["S3_BUCKET_LOGGING_ENABLED"]}}},"CSVExportAccessLogsPolicyAA9496B8":{"Type":"AWS::S3::BucketPolicy","Properties":{"Bucket":{"Ref":"CSVExportAccessLogs748A02F4"},"PolicyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["CSVExportAccessLogs748A02F4","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["CSVExportAccessLogs748A02F4","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}},"CSVExportBucket8BA09C35":{"Type":"AWS::S3::Bucket","Properties":{"BucketEncryption":{"ServerSideEncryptionConfiguration":[{"BucketKeyEnabled":true,"ServerSideEncryptionByDefault":{"KMSMasterKeyID":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"SSEAlgorithm":"aws:kms"}}]},"LifecycleConfiguration":{"Rules":[{"ExpirationInDays":30,"Id":"DeleteOldCSVExports","Status":"Enabled"}]},"LoggingConfiguration":{"DestinationBucketName":{"Ref":"CSVExportAccessLogs748A02F4"}},"PublicAccessBlockConfiguration":{"BlockPublicAcls":true,"BlockPublicPolicy":true,"IgnorePublicAcls":true,"RestrictPublicBuckets":true},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"VersioningConfiguration":{"Status":"Enabled"}},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain"},"CSVExportBucketPolicyF64ADE56":{"Type":"AWS::S3::BucketPolicy","Properties":{"Bucket":{"Ref":"CSVExportBucket8BA09C35"},"PolicyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["CSVExportBucket8BA09C35","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["CSVExportBucket8BA09C35","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}},"RemediationConfigTable24F19C3B":{"Type":"AWS::DynamoDB::Table","Properties":{"AttributeDefinitions":[{"AttributeName":"controlId","AttributeType":"S"}],"BillingMode":"PAY_PER_REQUEST","DeletionProtectionEnabled":true,"KeySchema":[{"AttributeName":"controlId","KeyType":"HASH"}],"PointInTimeRecoverySpecification":{"PointInTimeRecoveryEnabled":true},"SSESpecification":{"SSEEnabled":false},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["DYNAMODB_TABLE_ENCRYPTED_KMS"]}}},"ResourceFiltersTable4266014F":{"Type":"AWS::DynamoDB::Table","Properties":{"AttributeDefinitions":[{"AttributeName":"filterId","AttributeType":"S"},{"AttributeName":"name","AttributeType":"S"}],"BillingMode":"PAY_PER_REQUEST","DeletionProtectionEnabled":true,"GlobalSecondaryIndexes":[{"IndexName":"NameIndex","KeySchema":[{"AttributeName":"name","KeyType":"HASH"}],"Projection":{"ProjectionType":"ALL"}}],"KeySchema":[{"AttributeName":"filterId","KeyType":"HASH"}],"PointInTimeRecoverySpecification":{"PointInTimeRecoveryEnabled":true},"SSESpecification":{"SSEEnabled":false},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["DYNAMODB_TABLE_ENCRYPTED_KMS"]}}},"NotificationConfigTable85915FE5":{"Type":"AWS::DynamoDB::Table","Properties":{"AttributeDefinitions":[{"AttributeName":"configId","AttributeType":"S"},{"AttributeName":"name","AttributeType":"S"},{"AttributeName":"CONFIG_CONSTANT","AttributeType":"S"},{"AttributeName":"enabledType","AttributeType":"S"}],"BillingMode":"PAY_PER_REQUEST","DeletionProtectionEnabled":true,"GlobalSecondaryIndexes":[{"IndexName":"NameIndex","KeySchema":[{"AttributeName":"name","KeyType":"HASH"}],"Projection":{"ProjectionType":"ALL"}},{"IndexName":"AllConfigsIndex","KeySchema":[{"AttributeName":"CONFIG_CONSTANT","KeyType":"HASH"},{"AttributeName":"configId","KeyType":"RANGE"}],"Projection":{"ProjectionType":"ALL"}},{"IndexName":"EnabledTypeIndex","KeySchema":[{"AttributeName":"enabledType","KeyType":"HASH"},{"AttributeName":"configId","KeyType":"RANGE"}],"Projection":{"ProjectionType":"ALL"}}],"KeySchema":[{"AttributeName":"configId","KeyType":"HASH"}],"PointInTimeRecoverySpecification":{"PointInTimeRecoveryEnabled":true},"SSESpecification":{"SSEEnabled":false},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["DYNAMODB_TABLE_ENCRYPTED_KMS"]}}},"NotificationBatchesTable7022E304":{"Type":"AWS::DynamoDB::Table","Properties":{"AttributeDefinitions":[{"AttributeName":"configId","AttributeType":"S"},{"AttributeName":"windowEnd","AttributeType":"S"},{"AttributeName":"reconciliationQueue","AttributeType":"S"}],"BillingMode":"PAY_PER_REQUEST","DeletionProtectionEnabled":true,"GlobalSecondaryIndexes":[{"IndexName":"outstandingReconciliation-windowEnd-GSI","KeySchema":[{"AttributeName":"reconciliationQueue","KeyType":"HASH"},{"AttributeName":"windowEnd","KeyType":"RANGE"}],"Projection":{"ProjectionType":"ALL"}}],"KeySchema":[{"AttributeName":"configId","KeyType":"HASH"},{"AttributeName":"windowEnd","KeyType":"RANGE"}],"PointInTimeRecoverySpecification":{"PointInTimeRecoveryEnabled":true},"SSESpecification":{"KMSMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"SSEEnabled":true,"SSEType":"KMS"},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TimeToLiveSpecification":{"AttributeName":"expireAt","Enabled":true}},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain"},"CustomRunbookTable1728569E":{"Type":"AWS::DynamoDB::Table","Properties":{"AttributeDefinitions":[{"AttributeName":"runbookId","AttributeType":"S"},{"AttributeName":"version","AttributeType":"N"},{"AttributeName":"controlId","AttributeType":"S"},{"AttributeName":"status","AttributeType":"S"}],"BillingMode":"PAY_PER_REQUEST","DeletionProtectionEnabled":true,"GlobalSecondaryIndexes":[{"IndexName":"controlId-status-index","KeySchema":[{"AttributeName":"controlId","KeyType":"HASH"},{"AttributeName":"status","KeyType":"RANGE"}],"Projection":{"ProjectionType":"ALL"}}],"KeySchema":[{"AttributeName":"runbookId","KeyType":"HASH"},{"AttributeName":"version","KeyType":"RANGE"}],"PointInTimeRecoverySpecification":{"PointInTimeRecoveryEnabled":true},"SSESpecification":{"SSEEnabled":false},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["DYNAMODB_TABLE_ENCRYPTED_KMS"]}}},"CustomRunbookBucketAC061A1F":{"Type":"AWS::S3::Bucket","Properties":{"BucketEncryption":{"ServerSideEncryptionConfiguration":[{"BucketKeyEnabled":true,"ServerSideEncryptionByDefault":{"KMSMasterKeyID":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"SSEAlgorithm":"aws:kms"}}]},"LifecycleConfiguration":{"Rules":[{"NoncurrentVersionExpiration":{"NoncurrentDays":90},"Status":"Enabled"}]},"LoggingConfiguration":{"DestinationBucketName":{"Ref":"CSVExportAccessLogs748A02F4"},"LogFilePrefix":"custom-runbooks/"},"PublicAccessBlockConfiguration":{"BlockPublicAcls":true,"BlockPublicPolicy":true,"IgnorePublicAcls":true,"RestrictPublicBuckets":true},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"VersioningConfiguration":{"Status":"Enabled"}},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain"},"CustomRunbookBucketPolicyE80366B2":{"Type":"AWS::S3::BucketPolicy","Properties":{"Bucket":{"Ref":"CustomRunbookBucketAC061A1F"},"PolicyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["CustomRunbookBucketAC061A1F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["CustomRunbookBucketAC061A1F","Arn"]},"/*"]]}]}],"Version":"2012-10-17"}}},"IaCTemplatesBucketResourceF771E4F3":{"Type":"AWS::S3::Bucket","Properties":{"BucketEncryption":{"ServerSideEncryptionConfiguration":[{"BucketKeyEnabled":true,"ServerSideEncryptionByDefault":{"KMSMasterKeyID":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"SSEAlgorithm":"aws:kms"}}]},"BucketName":{"Fn::Join":["",["so0111-asr-iac-templates-",{"Ref":"Namespace"},"-",{"Ref":"AWS::Region"},"-",{"Ref":"AWS::AccountId"}]]},"LifecycleConfiguration":{"Rules":[{"NoncurrentVersionExpiration":{"NoncurrentDays":90},"Status":"Enabled"}]},"PublicAccessBlockConfiguration":{"BlockPublicAcls":true,"BlockPublicPolicy":true,"IgnorePublicAcls":true,"RestrictPublicBuckets":true},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"VersioningConfiguration":{"Status":"Enabled"}},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["S3_BUCKET_LOGGING_ENABLED"]}}},"IaCTemplatesBucketResourcePolicy87CE19EE":{"Type":"AWS::S3::BucketPolicy","Properties":{"Bucket":{"Ref":"IaCTemplatesBucketResourceF771E4F3"},"PolicyDocument":{"Statement":[{"Action":"s3:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":[{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]},"/*"]]}]},{"Action":["s3:GetObject","s3:PutObject","s3:DeleteObject"],"Condition":{"StringEquals":{"aws:PrincipalAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"AWS":"*"},"Resource":{"Fn::Join":["",[{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]},"/*"]]},"Sid":"AllowAccountAccess"},{"Action":"s3:ListBucket","Condition":{"StringEquals":{"aws:PrincipalAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]},"Sid":"AllowAccountListBucket"}],"Version":"2012-10-17"}}},"IaCTemplatesBucketResourceNotificationsHandlerPolicy43C376B5":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":"s3:PutBucketNotification","Effect":"Allow","Resource":{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]}}],"Version":"2012-10-17"},"PolicyName":"IaCTemplatesBucketResourceNotificationsHandlerPolicy43C376B5","Roles":[{"Ref":"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC"}]},"Condition":"isUsingCloudWatchMetricsAlarms"},"IaCTemplatesBucketResourceNotifications3344CDD0":{"Type":"Custom::S3BucketNotifications","Properties":{"ServiceToken":{"Fn::GetAtt":["BucketNotificationsHandler050a0587b7544547bf325f094a3db8347ECC3691","Arn"]},"BucketName":{"Ref":"IaCTemplatesBucketResourceF771E4F3"},"NotificationConfiguration":{"TopicConfigurations":[{"Events":["s3:ObjectRemoved:*"],"TopicArn":{"Ref":"ASRAlarmTopic7CEFBDF9"}}]},"Managed":true,"SkipDestinationValidation":false},"DependsOn":["ASRAlarmTopicPolicyFA33FC24","ASRAlarmTopic7CEFBDF9","IaCTemplatesBucketResourceNotificationsHandlerPolicy43C376B5","IaCTemplatesBucketResourcePolicy87CE19EE"],"Condition":"isUsingCloudWatchMetricsAlarms"},"IaCTemplatesBucketNameParamA07DCF8C":{"Type":"AWS::SSM::Parameter","Properties":{"Name":"/Solutions/SO0111/IaCTemplatesBucket","Tags":{"Solutions:SolutionID":"SO0111","Solutions:SolutionName":"automated-security-response-on-aws","Solutions:SolutionVersion":"v4.1.0"},"Type":"String","Value":{"Ref":"IaCTemplatesBucketResourceF771E4F3"}}},"WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB":{"Type":"AWS::CloudFormation::Stack","Properties":{"Parameters":{"referencetoSolutionDeployStackShouldDeployWebUI91A3D162Ref":{"Ref":"ShouldDeployWebUI"},"referencetoSolutionDeployStackSHARRkey63A30F17Arn":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"referencetoSolutionDeployStackAdminUserEmail2C06E898Ref":{"Ref":"AdminUserEmail"},"referencetoSolutionDeployStackMFAConfigurationB54A9C19Ref":{"Ref":"MFAConfiguration"},"referencetoSolutionDeployStackASRFindingsTable1A09E827Arn":{"Fn::GetAtt":["ASRFindingsTable3FD52B9C","Arn"]},"referencetoSolutionDeployStackASRRemediationHistoryTable00A9C417Arn":{"Fn::GetAtt":["ASRRemediationHistoryTable3CA12E73","Arn"]},"referencetoSolutionDeployStackRemediationConfigTable77813191Arn":{"Fn::GetAtt":["RemediationConfigTable24F19C3B","Arn"]},"referencetoSolutionDeployStackResourceFiltersTable8ABA130CArn":{"Fn::GetAtt":["ResourceFiltersTable4266014F","Arn"]},"referencetoSolutionDeployStackNotificationConfigTable641F6B1AArn":{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},"referencetoSolutionDeployStackNotificationBatchesTable9F28B72DArn":{"Fn::GetAtt":["NotificationBatchesTable7022E304","Arn"]},"referencetoSolutionDeployStackorchestratorStateMachine22684CB4Ref":{"Ref":"orchestratorStateMachine77C3F8FB"},"referencetoSolutionDeployStackCSVExportBucket9AEB6181Arn":{"Fn::GetAtt":["CSVExportBucket8BA09C35","Arn"]},"referencetoSolutionDeployStackIaCTemplatesBucketResource924AF005Arn":{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]},"referencetoSolutionDeployStackCustomRunbookTable7CF1FDAFArn":{"Fn::GetAtt":["CustomRunbookTable1728569E","Arn"]},"referencetoSolutionDeployStackCustomRunbookBucket9DD26E25Arn":{"Fn::GetAtt":["CustomRunbookBucketAC061A1F","Arn"]},"referencetoSolutionDeployStackRemediationConfigTable77813191Ref":{"Ref":"RemediationConfigTable24F19C3B"},"referencetoSolutionDeployStackResourceFiltersTable8ABA130CRef":{"Ref":"ResourceFiltersTable4266014F"},"referencetoSolutionDeployStackCSVExportBucket9AEB6181Ref":{"Ref":"CSVExportBucket8BA09C35"},"referencetoSolutionDeployStackMetricResourcesASRDeploymentMetricsCustomResourceAE9F82F0securityhubv2enabled":{"Fn::GetAtt":["MetricResourcesASRDeploymentMetricsCustomResource0940D9B2","securityhub_v2_enabled"]},"referencetoSolutionDeployStackNotificationConfigTable641F6B1ARef":{"Ref":"NotificationConfigTable85915FE5"},"referencetoSolutionDeployStackNotificationBatchesTable9F28B72DRef":{"Ref":"NotificationBatchesTable7022E304"},"referencetoSolutionDeployStackIaCTemplatesBucketResource924AF005Ref":{"Ref":"IaCTemplatesBucketResourceF771E4F3"},"referencetoSolutionDeployStackCustomRunbookTable7CF1FDAFRef":{"Ref":"CustomRunbookTable1728569E"},"referencetoSolutionDeployStackCustomRunbookBucket9DD26E25Ref":{"Ref":"CustomRunbookBucketAC061A1F"},"referencetoSolutionDeployStackEnableRollbackFBD38C29Ref":{"Ref":"EnableRollback"},"referencetoSolutionDeployStackEnableMcpServer298C2660Ref":{"Ref":"EnableMcpServer"},"referencetoSolutionDeployStackorchestratorTicketGenFunctionNameTicketGeneratorFunctionNameDA9E1737Ref":{"Ref":"TicketGenFunctionName"}},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TemplateURL":{"Fn::Join":["",["https://",{"Fn::FindInMap":["SourceCode","General","S3Bucket"]},"-reference.s3.amazonaws.com/",{"Fn::FindInMap":["SourceCode","General","KeyPrefix"]},"/automated-security-response-webui-nested-stack.template"]]}},"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete","Condition":"coreServicesEnabled"},"RemediationBoundaryPolicyC4F27B34":{"Type":"AWS::IAM::ManagedPolicy","Properties":{"Description":"Permissions boundary for ASR custom-runbook remediation roles. Caps their effective permissions: allows service actions in general, denies the sts and organizations namespaces wholesale, and denies iam except passing a role to SSM Automation (so the role's own scoped PassRole survives), capping the escalation primitives available to a custom remediation role.","ManagedPolicyName":"SO0111-ASR-Custom-Runbook-Test-Boundary","Path":"/","PolicyDocument":{"Statement":[{"Action":"*","Effect":"Allow","Resource":"*","Sid":"AllowServiceActions"},{"Action":["sts:*","organizations:*"],"Effect":"Deny","Resource":"*","Sid":"DenyEscalationNamespaces"},{"Action":"iam:*","Condition":{"StringNotEquals":{"iam:PassedToService":"ssm.amazonaws.com"}},"Effect":"Deny","Resource":"*","Sid":"DenyIamExceptPassRoleToSsm"}],"Version":"2012-10-17"}},"Metadata":{"guard":{"SuppressedRules":["IAM_POLICYDOCUMENT_NO_WILDCARD_RESOURCE","IAM_MANAGEDPOLICY_NO_STATEMENTS_WITH_FULL_ACCESS","CFN_NO_EXPLICIT_RESOURCE_NAMES"]},"cfn_nag":{"rules_to_suppress":[{"id":"F5","reason":"A permissions boundary grants nothing: it caps what an identity policy can grant. Action: * here is a ceiling, not a privilege, and the Deny statements are what constrain the role."},{"id":"W12","reason":"A boundary that caps any remediation role cannot enumerate resources; the Deny statements bound it."},{"id":"W28","reason":"Static name chosen intentionally: the consumers attach this boundary by a fixed ARN."}]}},"Condition":"agentCoreGatewayEnabled"},"McpGatewayNestedStackNestedStackMcpGatewayNestedStackNestedStackResource8AA8EED2":{"Type":"AWS::CloudFormation::Stack","Properties":{"Parameters":{"referencetoSolutionDeployStackWebUINestedStackNestedStackWebUINestedStackNestedStackResourceC94F3AACOutputsSolutionDeployStackWebUINestedStackUserAccountMappingTable3A0161FEArn":{"Fn::GetAtt":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB","Outputs.SolutionDeployStackWebUINestedStackUserAccountMappingTable3A0161FEArn"]},"referencetoSolutionDeployStackASRRemediationHistoryTable00A9C417Arn":{"Fn::GetAtt":["ASRRemediationHistoryTable3CA12E73","Arn"]},"referencetoSolutionDeployStackCustomRunbookTable7CF1FDAFArn":{"Fn::GetAtt":["CustomRunbookTable1728569E","Arn"]},"referencetoSolutionDeployStackSHARRkey63A30F17Arn":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"referencetoSolutionDeployStackWebUINestedStackNestedStackWebUINestedStackNestedStackResourceC94F3AACOutputsSolutionDeployStackWebUINestedStackCognitoConstructASRUserPool51186313Ref":{"Fn::GetAtt":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB","Outputs.SolutionDeployStackWebUINestedStackCognitoConstructASRUserPool51186313Ref"]},"referencetoSolutionDeployStackRemediationBoundaryPolicy89D6DF7FRef":{"Ref":"RemediationBoundaryPolicyC4F27B34"},"referencetoSolutionDeployStackWebUINestedStackNestedStackWebUINestedStackNestedStackResourceC94F3AACOutputsSolutionDeployStackWebUINestedStackUserAccountMappingTable3A0161FERef":{"Fn::GetAtt":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB","Outputs.SolutionDeployStackWebUINestedStackUserAccountMappingTable3A0161FERef"]},"referencetoSolutionDeployStackASRRemediationHistoryTable00A9C417Ref":{"Ref":"ASRRemediationHistoryTable3CA12E73"},"referencetoSolutionDeployStackCustomRunbookTable7CF1FDAFRef":{"Ref":"CustomRunbookTable1728569E"},"AdditionalMcpCallbackUrls":{"Fn::Join":["\n",{"Ref":"AdditionalMcpCallbackUrls"}]}},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TemplateURL":{"Fn::Join":["",["https://",{"Fn::FindInMap":["SourceCode","General","S3Bucket"]},"-reference.s3.amazonaws.com/",{"Fn::FindInMap":["SourceCode","General","KeyPrefix"]},"/automated-security-response-mcp-gateway-nested-stack.template"]]}},"DependsOn":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB"],"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete","Condition":"agentCoreGatewayEnabled"},"IaCTemplateSyncConstructIaCTemplateSyncPolicy83FF5F4F":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:*:",{"Ref":"AWS::AccountId"},":log-group:*"]]}},{"Action":"s3:GetObject","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::solutions-",{"Ref":"AWS::Region"},"/*"]]}},{"Action":["s3:GetObject","s3:PutObject","s3:DeleteObject"],"Effect":"Allow","Resource":{"Fn::Join":["",[{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]},"/*"]]}},{"Action":"s3:ListBucket","Effect":"Allow","Resource":{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]}},{"Action":["kms:Decrypt","kms:GenerateDataKey"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}}],"Version":"2012-10-17"},"PolicyName":"SO0111-ASR_IaCTemplateSync","Roles":[{"Ref":"IaCTemplateSyncConstructIaCTemplateSyncRole4FC62AF2"}]},"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W12","reason":"Resource * is required for CloudWatch Logs policies used by IaC template sync Lambda function."}]}}},"IaCTemplateSyncConstructIaCTemplateSyncRole4FC62AF2":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"Description":"Lambda role for ASR IaC template sync function","RoleName":"SO0111-ASR-IaCTemplateSync","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W28","reason":"Static names chosen intentionally to provide easy integration with IaC template sync function."}]},"guard":{"SuppressedRules":["IAM_NO_INLINE_POLICY_CHECK"]}}},"IaCTemplateSyncConstructIaCTemplateSyncRoleDefaultPolicyF85F5CBA":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"PolicyName":"IaCTemplateSyncConstructIaCTemplateSyncRoleDefaultPolicyF85F5CBA","Roles":[{"Ref":"IaCTemplateSyncConstructIaCTemplateSyncRole4FC62AF2"}]}},"IaCTemplateSyncConstructIaCTemplateSyncLambdaLogGroup1156B67E":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"IaCTemplateSyncConstructIaCTemplateSyncLambda4129D570":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/asr_lambdas-c8b90e4c.zip"},"Description":"IaC template sync custom resource lambda","Environment":{"Variables":{"SOLUTION_TRADEMARKEDNAME":"automated-security-response-on-aws","POWERTOOLS_SERVICE_NAME":"iac_template_sync","POWERTOOLS_LOG_LEVEL":"INFO","POWERTOOLS_LOGGER_LOG_EVENT":"false","POWERTOOLS_TRACER_CAPTURE_RESPONSE":"true","POWERTOOLS_TRACER_CAPTURE_ERROR":"true","AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"STACK_ID":{"Ref":"AWS::StackId"}}},"FunctionName":"SO0111-ASR-IaCTemplateSyncLambda","Handler":"iac-template-sync/iacTemplateSyncHandler.handler","LoggingConfig":{"LogGroup":{"Ref":"IaCTemplateSyncConstructIaCTemplateSyncLambdaLogGroup1156B67E"}},"MemorySize":256,"Role":{"Fn::GetAtt":["IaCTemplateSyncConstructIaCTemplateSyncRole4FC62AF2","Arn"]},"Runtime":"nodejs24.x","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":300,"TracingConfig":{"Mode":"Active"}},"DependsOn":["IaCTemplateSyncConstructIaCTemplateSyncRoleDefaultPolicyF85F5CBA","IaCTemplateSyncConstructIaCTemplateSyncRole4FC62AF2"],"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W58","reason":"False positive. Access is provided via a policy"},{"id":"W89","reason":"There is no need to run this lambda in a VPC"},{"id":"W92","reason":"There is no need for Reserved Concurrency"}]},"guard":{"SuppressedRules":["LAMBDA_INSIDE_VPC","LAMBDA_CONCURRENCY_CHECK"]}}},"IaCTemplateSyncConstructIaCTemplateSyncResource75DA7916":{"Type":"Custom::IaCTemplateSync","Properties":{"ServiceToken":{"Fn::GetAtt":["IaCTemplateSyncConstructIaCTemplateSyncLambda4129D570","Arn"]},"ServiceTimeout":"300","SolutionsBucketName":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"CustomerBucketName":{"Ref":"IaCTemplatesBucketResourceF771E4F3"},"ManifestKey":"automated-security-response-on-aws/v4.1.0/iac-templates/.metadata/manifest.json","SolutionVersion":"v4.1.0","TemplatePrefix":"automated-security-response-on-aws/v4.1.0/iac-templates/"},"DependsOn":["IaCTemplateSyncConstructIaCTemplateSyncLambda4129D570","IaCTemplateSyncConstructIaCTemplateSyncPolicy83FF5F4F","IaCTemplateSyncConstructIaCTemplateSyncRoleDefaultPolicyF85F5CBA","IaCTemplateSyncConstructIaCTemplateSyncRole4FC62AF2"],"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"SynchronizationFindingsConstructsynchronizationPolicy58B2707B":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:*:",{"Ref":"AWS::AccountId"},":log-group:*"]]}},{"Action":"securityhub:GetFindings","Effect":"Allow","Resource":"*"},{"Action":["kms:Encrypt","kms:Decrypt","kms:GenerateDataKey"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}},{"Action":["ssm:GetParameter","ssm:PutParameter"],"Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/anonymous_metrics_uuid"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/metrics_uuid"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/version"]]}]},{"Action":["ssm:GetParameters","ssm:GetParameter","ssm:GetParametersByPath"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:*:*:parameter/Solutions/SO0111/*"]]}},{"Action":["organizations:ListParents","organizations:DescribeAccount"],"Effect":"Allow","Resource":"*"},{"Action":"securityhub:ListMembers","Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"PolicyName":"SO0111-ASR_Synchronization","Roles":[{"Ref":"SynchronizationFindingsConstructsynchronizationRole80BFC03F"}]},"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W12","reason":"Resource * is required for CloudWatch Logs policies used by synchronization Lambda function."}]}}},"SynchronizationFindingsConstructsynchronizationRole80BFC03F":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"Description":"Lambda role for ASR synchronization function","RoleName":"SO0111-ASR-Synchronization","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W28","reason":"Static names chosen intentionally to provide easy integration with synchronization function."}]},"guard":{"SuppressedRules":["IAM_NO_INLINE_POLICY_CHECK"]}}},"SynchronizationFindingsConstructsynchronizationRoleDefaultPolicyAA348EF7":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords"],"Effect":"Allow","Resource":"*"},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:BatchWriteItem","dynamodb:PutItem","dynamodb:UpdateItem","dynamodb:DeleteItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ASRFindingsTable3FD52B9C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ASRFindingsTable3FD52B9C","Arn"]},"/index/*"]]}]},{"Action":["kms:Decrypt","kms:DescribeKey","kms:Encrypt","kms:ReEncrypt*","kms:GenerateDataKey*"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ASRFindingsTable3FD52B9C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ASRFindingsTable3FD52B9C","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:BatchWriteItem","dynamodb:PutItem","dynamodb:UpdateItem","dynamodb:DeleteItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["RemediationConfigTable24F19C3B","Arn"]}]},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["RemediationConfigTable24F19C3B","Arn"]}]},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ResourceFiltersTable4266014F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ResourceFiltersTable4266014F","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ResourceFiltersTable4266014F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ResourceFiltersTable4266014F","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},"/index/*"]]}]}],"Version":"2012-10-17"},"PolicyName":"SynchronizationFindingsConstructsynchronizationRoleDefaultPolicyAA348EF7","Roles":[{"Ref":"SynchronizationFindingsConstructsynchronizationRole80BFC03F"}]}},"SynchronizationFindingsConstructSynchronizationFindingsLambdaLogGroupCC4295D1":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"SynchronizationFindingsConstructSynchronizationFindingsLambda0E312918":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/asr_lambdas-c8b90e4c.zip"},"Description":"Synchronization findings lambda","Environment":{"Variables":{"SOLUTION_TRADEMARKEDNAME":"automated-security-response-on-aws","POWERTOOLS_SERVICE_NAME":"synchronization_findings","POWERTOOLS_LOG_LEVEL":"INFO","POWERTOOLS_LOGGER_LOG_EVENT":"false","POWERTOOLS_TRACER_CAPTURE_RESPONSE":"true","POWERTOOLS_TRACER_CAPTURE_ERROR":"true","FINDINGS_TABLE_NAME":{"Ref":"ASRFindingsTable3FD52B9C"},"REMEDIATION_CONFIG_TABLE_NAME":{"Ref":"RemediationConfigTable24F19C3B"},"RESOURCE_FILTERS_TABLE_NAME":{"Ref":"ResourceFiltersTable4266014F"},"NOTIFICATION_CONFIG_TABLE_NAME":{"Ref":"NotificationConfigTable85915FE5"},"FINDINGS_TTL_DAYS":"8","AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"STACK_ID":{"Ref":"AWS::StackId"}}},"FunctionName":"SO0111-ASR-SynchronizationFindingsLambda","Handler":"synchronization/synchronizationHandler.handler","LoggingConfig":{"LogGroup":{"Ref":"SynchronizationFindingsConstructSynchronizationFindingsLambdaLogGroupCC4295D1"}},"MemorySize":512,"Role":{"Fn::GetAtt":["SynchronizationFindingsConstructsynchronizationRole80BFC03F","Arn"]},"Runtime":"nodejs24.x","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":900,"TracingConfig":{"Mode":"Active"}},"DependsOn":["SynchronizationFindingsConstructsynchronizationRoleDefaultPolicyAA348EF7","SynchronizationFindingsConstructsynchronizationRole80BFC03F"],"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W58","reason":"False positive. Access is provided via a policy"},{"id":"W89","reason":"There is no need to run this lambda in a VPC"},{"id":"W92","reason":"There is no need for Reserved Concurrency"}]}}},"SynchronizationFindingsConstructCustomResourcePolicy6EC67F19":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:*:",{"Ref":"AWS::AccountId"},":log-group:*"]]}},{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":states:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":stateMachine:SO0111-ASR-SynchronizationSweep"]]}}],"Version":"2012-10-17"},"PolicyName":"SO0111-ASR_SynchronizationTrigger","Roles":[{"Ref":"SynchronizationFindingsConstructcustomResourceRoleE4747C9B"}]},"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W12","reason":"Resource * is required for CloudWatch Logs policies used by custom resource Lambda function."}]}}},"SynchronizationFindingsConstructcustomResourceRoleE4747C9B":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"Description":"Lambda role for ASR synchronization trigger custom resource","RoleName":"SO0111-ASR-SynchronizationTrigger","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W28","reason":"Static names chosen intentionally to provide easy integration with synchronization trigger."}]},"guard":{"SuppressedRules":["IAM_NO_INLINE_POLICY_CHECK"]}}},"SynchronizationFindingsConstructcustomResourceRoleDefaultPolicy5DD9117A":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"PolicyName":"SynchronizationFindingsConstructcustomResourceRoleDefaultPolicy5DD9117A","Roles":[{"Ref":"SynchronizationFindingsConstructcustomResourceRoleE4747C9B"}]}},"SynchronizationFindingsConstructSynchronizationTriggerProviderLogGroup4F6F2DD5":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"SynchronizationFindingsConstructSynchronizationTriggerProvider05DEE9E7":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/asr_lambdas-c8b90e4c.zip"},"Description":"Custom resource provider to trigger initial synchronization","Environment":{"Variables":{"SOLUTION_TRADEMARKEDNAME":"automated-security-response-on-aws","POWERTOOLS_SERVICE_NAME":"synchronization_trigger","POWERTOOLS_LOG_LEVEL":"INFO","POWERTOOLS_LOGGER_LOG_EVENT":"false","POWERTOOLS_TRACER_CAPTURE_RESPONSE":"true","POWERTOOLS_TRACER_CAPTURE_ERROR":"true","SYNCHRONIZATION_STATE_MACHINE_ARN":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":states:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":stateMachine:SO0111-ASR-SynchronizationSweep"]]},"AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"STACK_ID":{"Ref":"AWS::StackId"}}},"FunctionName":"SO0111-ASR-SynchronizationTriggerProvider","Handler":"synchronization/customResourceHandler.handler","LoggingConfig":{"LogGroup":{"Ref":"SynchronizationFindingsConstructSynchronizationTriggerProviderLogGroup4F6F2DD5"}},"MemorySize":128,"Role":{"Fn::GetAtt":["SynchronizationFindingsConstructcustomResourceRoleE4747C9B","Arn"]},"Runtime":"nodejs24.x","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":300,"TracingConfig":{"Mode":"Active"}},"DependsOn":["SynchronizationFindingsConstructcustomResourceRoleDefaultPolicy5DD9117A","SynchronizationFindingsConstructcustomResourceRoleE4747C9B"],"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W58","reason":"False positive. Access is provided via a policy"},{"id":"W89","reason":"There is no need to run this lambda in a VPC"},{"id":"W92","reason":"There is no need for Reserved Concurrency"}]},"guard":{"SuppressedRules":["LAMBDA_INSIDE_VPC","LAMBDA_CONCURRENCY_CHECK"]}}},"SynchronizationFindingsConstructSweepStateMachineRoleA1DBFB72":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"states.amazonaws.com"}}],"Version":"2012-10-17"},"Description":"Execution role for the ASR synchronization sweep state machine","RoleName":"SO0111-ASR-SynchronizationSweep","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W28","reason":"Static name chosen intentionally so the trigger can reference the sweep state machine."}]},"guard":{"SuppressedRules":["IAM_NO_INLINE_POLICY_CHECK"]}}},"SynchronizationFindingsConstructSweepStateMachineRoleDefaultPolicyF166445C":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":"lambda:InvokeFunction","Effect":"Allow","Resource":[{"Fn::GetAtt":["SynchronizationFindingsConstructSynchronizationFindingsLambda0E312918","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["SynchronizationFindingsConstructSynchronizationFindingsLambda0E312918","Arn"]},":*"]]}]},{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords","xray:GetSamplingRules","xray:GetSamplingTargets"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"PolicyName":"SynchronizationFindingsConstructSweepStateMachineRoleDefaultPolicyF166445C","Roles":[{"Ref":"SynchronizationFindingsConstructSweepStateMachineRoleA1DBFB72"}]}},"SynchronizationFindingsConstructSynchronizationSweepStateMachineE629E696":{"Type":"AWS::StepFunctions::StateMachine","Properties":{"DefinitionString":{"Fn::Join":["",["{\"StartAt\":\"EnumerateAccounts\",\"States\":{\"EnumerateAccounts\":{\"Next\":\"InjectAttempts\",\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"",{"Fn::GetAtt":["SynchronizationFindingsConstructSynchronizationFindingsLambda0E312918","Arn"]},"\",\"Parameters\":{\"task\":\"enumerate-accounts\"}},\"InjectAttempts\":{\"Type\":\"Pass\",\"Parameters\":{\"accountIds.$\":\"$.accountIds\",\"totalAccounts.$\":\"$.totalAccounts\",\"maxAttempts\":",{"Ref":"SynchronizationFindingsConstructSyncMaxAttemptsPerAccount7CF7E97B"},"},\"Next\":\"SyncAccountsSequentially\"},\"SyncAccountsSequentially\":{\"Type\":\"Map\",\"Comment\":\"Sync each member account one at a time to stay under the Security Hub GetFindings rate limit\",\"Next\":\"MarkSweepDone\",\"ItemsPath\":\"$.accountIds\",\"ItemSelector\":{\"accountId.$\":\"$$.Map.Item.Value\",\"attemptsRemaining.$\":\"$.maxAttempts\"},\"ItemProcessor\":{\"ProcessorConfig\":{\"Mode\":\"INLINE\"},\"StartAt\":\"RunAccountSlice\",\"States\":{\"RunAccountSlice\":{\"Next\":\"DecrementAttempts\",\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Catch\":[{\"ErrorEquals\":[\"States.ALL\"],\"Next\":\"AccountSliceTolerated\"}],\"Type\":\"Task\",\"ResultPath\":\"$.slice\",\"Resource\":\"",{"Fn::GetAtt":["SynchronizationFindingsConstructSynchronizationFindingsLambda0E312918","Arn"]},"\",\"Parameters\":{\"task\":\"sync-account-slice\",\"accountId.$\":\"$.accountId\"}},\"AccountDone?\":{\"Type\":\"Choice\",\"Choices\":[{\"Variable\":\"$.slice.done\",\"BooleanEquals\":true,\"Next\":\"AccountSliceComplete\"},{\"Variable\":\"$.attemptsRemaining\",\"NumericLessThanEquals\":0,\"Next\":\"AccountSliceExhausted\"},{\"Variable\":\"$.slice.madeProgress\",\"BooleanEquals\":true,\"Next\":\"RunAccountSlice\"}],\"Default\":\"AccountSliceTolerated\"},\"DecrementAttempts\":{\"Type\":\"Pass\",\"Parameters\":{\"accountId.$\":\"$.accountId\",\"attemptsRemaining.$\":\"States.MathAdd($.attemptsRemaining, -1)\",\"slice.$\":\"$.slice\"},\"Next\":\"AccountDone?\"},\"AccountSliceTolerated\":{\"Type\":\"Pass\",\"End\":true},\"AccountSliceComplete\":{\"Type\":\"Pass\",\"End\":true},\"AccountSliceExhausted\":{\"Type\":\"Pass\",\"End\":true}}},\"MaxConcurrency\":1},\"MarkSweepDone\":{\"End\":true,\"Retry\":[{\"ErrorEquals\":[\"Lambda.ClientExecutionTimeoutException\",\"Lambda.ServiceException\",\"Lambda.AWSLambdaException\",\"Lambda.SdkClientException\"],\"IntervalSeconds\":2,\"MaxAttempts\":6,\"BackoffRate\":2}],\"Type\":\"Task\",\"Resource\":\"",{"Fn::GetAtt":["SynchronizationFindingsConstructSynchronizationFindingsLambda0E312918","Arn"]},"\",\"Parameters\":{\"task\":\"mark-sweep-done\"}}},\"TimeoutSeconds\":86400}"]]},"RoleArn":{"Fn::GetAtt":["SynchronizationFindingsConstructSweepStateMachineRoleA1DBFB72","Arn"]},"StateMachineName":"SO0111-ASR-SynchronizationSweep","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TracingConfiguration":{"Enabled":true}},"DependsOn":["SynchronizationFindingsConstructSweepStateMachineRoleDefaultPolicyF166445C","SynchronizationFindingsConstructSweepStateMachineRoleA1DBFB72"],"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete","Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W11","reason":"X-Ray tracing requires xray:PutTraceSegments on resource *; scoped as tightly as the API allows."}]}}},"SynchronizationFindingsConstructSynchronizationSweepStateMachineEventsRoleBBC93D45":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"events.amazonaws.com"}}],"Version":"2012-10-17"},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]}},"SynchronizationFindingsConstructSynchronizationSweepStateMachineEventsRoleDefaultPolicy80919627":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"SynchronizationFindingsConstructSynchronizationSweepStateMachineE629E696"}}],"Version":"2012-10-17"},"PolicyName":"SynchronizationFindingsConstructSynchronizationSweepStateMachineEventsRoleDefaultPolicy80919627","Roles":[{"Ref":"SynchronizationFindingsConstructSynchronizationSweepStateMachineEventsRoleBBC93D45"}]}},"SynchronizationFindingsConstructSynchronizationFindingsLambdaWeeklyRule158B7187":{"Type":"AWS::Events::Rule","Properties":{"Description":"Weekly full synchronization of Security Hub findings - always performs complete sync","Name":"SO0111-ASR-SynchronizationFindingsLambdaWeeklyRule","ScheduleExpression":"cron(0 2 ? * SAT *)","State":"ENABLED","Targets":[{"Arn":{"Ref":"SynchronizationFindingsConstructSynchronizationSweepStateMachineE629E696"},"Id":"Target0","RetryPolicy":{"MaximumRetryAttempts":2},"RoleArn":{"Fn::GetAtt":["SynchronizationFindingsConstructSynchronizationSweepStateMachineEventsRoleBBC93D45","Arn"]}}]}},"InitialSynchronizationTrigger":{"Type":"AWS::CloudFormation::CustomResource","Properties":{"ServiceToken":{"Fn::GetAtt":["SynchronizationFindingsConstructSynchronizationTriggerProvider05DEE9E7","Arn"]},"TriggerReason":"WebUI deployment completed"},"DependsOn":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB"],"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete","Condition":"webUIEnabled"},"RemediateWithSharrCustomActionABE4122A":{"Type":"Custom::ActionTarget","Properties":{"ServiceToken":{"Fn::GetAtt":["CreateCustomActionE7A973F5","Arn"]},"Name":"Remediate with ASR","Description":"Submit the finding to Automated Response and Remediation (ASR) for remediation.","Id":"ASRRemediation"},"DependsOn":["CreateCustomActionE7A973F5","createCustomActionPolicyE424E925"],"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"RemediateWithSharrRemediateCustomAction40B496D2":{"Type":"AWS::Events::Rule","Properties":{"Description":"Remediate with ASR","EventPattern":{"source":["aws.securityhub"],"detail-type":["Security Hub Findings - Custom Action"],"resources":[{"Fn::GetAtt":["RemediateWithSharrCustomActionABE4122A","Arn"]}],"detail":{"findings":{"Compliance":{"Status":["FAILED","WARNING"]}}}},"Name":"Remediate_with_ASR_CustomAction","State":"ENABLED","Targets":[{"Arn":{"Ref":"orchestratorStateMachine77C3F8FB"},"Id":"Target0","RoleArn":{"Fn::GetAtt":["EventsRuleRoleF1007C39","Arn"]}}]}},"RemediateAndTicketCustomAction4C7DC50F":{"Type":"Custom::ActionTarget","Properties":{"ServiceToken":{"Fn::GetAtt":["CreateCustomActionE7A973F5","Arn"]},"Name":"ASR:Remediate&Ticket","Description":"Submit the finding to Automated Response and Remediation (ASR) for remediation and generate a ticket.","Id":"ASRTicketing"},"DependsOn":["CreateCustomActionE7A973F5","createCustomActionPolicyE424E925"],"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete","Condition":"orchestratorTicketingEnabledConditionEE999626"},"RemediateAndTicketTicketingCustomActionF52F78B4":{"Type":"AWS::Events::Rule","Properties":{"Description":"Remediate with ASR and generate a ticket.","EventPattern":{"source":["aws.securityhub"],"detail-type":["Security Hub Findings - Custom Action"],"resources":[{"Fn::GetAtt":["RemediateAndTicketCustomAction4C7DC50F","Arn"]}],"detail":{"findings":{"Compliance":{"Status":["FAILED","WARNING"]}}}},"Name":"ASR_Remediate_and_Ticket_CustomAction","State":"ENABLED","Targets":[{"Arn":{"Ref":"orchestratorStateMachine77C3F8FB"},"Id":"Target0","RoleArn":{"Fn::GetAtt":["EventsRuleRoleF1007C39","Arn"]}}]},"Condition":"orchestratorTicketingEnabledConditionEE999626"},"PlaybookAdminStackAFSBP":{"Type":"AWS::CloudFormation::Stack","Properties":{"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TemplateURL":{"Fn::Join":["",["https://",{"Fn::FindInMap":["SourceCode","General","S3Bucket"]},"-reference.s3.amazonaws.com/",{"Fn::FindInMap":["SourceCode","General","KeyPrefix"]},"/playbooks/AFSBPStack.template"]]}},"DependsOn":["orchestratorSHARROrchestratorArn0ACC7B05","orchestratorStateMachine77C3F8FB"],"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete","Condition":"loadAFSBPCond"},"PlaybookAdminStackCIS120":{"Type":"AWS::CloudFormation::Stack","Properties":{"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TemplateURL":{"Fn::Join":["",["https://",{"Fn::FindInMap":["SourceCode","General","S3Bucket"]},"-reference.s3.amazonaws.com/",{"Fn::FindInMap":["SourceCode","General","KeyPrefix"]},"/playbooks/CIS120Stack.template"]]}},"DependsOn":["orchestratorSHARROrchestratorArn0ACC7B05","orchestratorStateMachine77C3F8FB"],"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete","Condition":"loadCIS120Cond"},"PlaybookAdminStackCIS140":{"Type":"AWS::CloudFormation::Stack","Properties":{"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TemplateURL":{"Fn::Join":["",["https://",{"Fn::FindInMap":["SourceCode","General","S3Bucket"]},"-reference.s3.amazonaws.com/",{"Fn::FindInMap":["SourceCode","General","KeyPrefix"]},"/playbooks/CIS140Stack.template"]]}},"DependsOn":["orchestratorSHARROrchestratorArn0ACC7B05","orchestratorStateMachine77C3F8FB"],"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete","Condition":"loadCIS140Cond"},"PlaybookAdminStackNIST80053":{"Type":"AWS::CloudFormation::Stack","Properties":{"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TemplateURL":{"Fn::Join":["",["https://",{"Fn::FindInMap":["SourceCode","General","S3Bucket"]},"-reference.s3.amazonaws.com/",{"Fn::FindInMap":["SourceCode","General","KeyPrefix"]},"/playbooks/NIST80053Stack.template"]]}},"DependsOn":["orchestratorSHARROrchestratorArn0ACC7B05","orchestratorStateMachine77C3F8FB"],"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete","Condition":"loadNIST80053Cond"},"PlaybookAdminStackPCI321":{"Type":"AWS::CloudFormation::Stack","Properties":{"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TemplateURL":{"Fn::Join":["",["https://",{"Fn::FindInMap":["SourceCode","General","S3Bucket"]},"-reference.s3.amazonaws.com/",{"Fn::FindInMap":["SourceCode","General","KeyPrefix"]},"/playbooks/PCI321Stack.template"]]}},"DependsOn":["orchestratorSHARROrchestratorArn0ACC7B05","orchestratorStateMachine77C3F8FB"],"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete","Condition":"loadPCI321Cond"},"PlaybookAdminStackCIS300":{"Type":"AWS::CloudFormation::Stack","Properties":{"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TemplateURL":{"Fn::Join":["",["https://",{"Fn::FindInMap":["SourceCode","General","S3Bucket"]},"-reference.s3.amazonaws.com/",{"Fn::FindInMap":["SourceCode","General","KeyPrefix"]},"/playbooks/CIS300Stack.template"]]}},"DependsOn":["orchestratorSHARROrchestratorArn0ACC7B05","orchestratorStateMachine77C3F8FB"],"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete","Condition":"loadCIS300Cond"},"PlaybookAdminStackSC":{"Type":"AWS::CloudFormation::Stack","Properties":{"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TemplateURL":{"Fn::Join":["",["https://",{"Fn::FindInMap":["SourceCode","General","S3Bucket"]},"-reference.s3.amazonaws.com/",{"Fn::FindInMap":["SourceCode","General","KeyPrefix"]},"/playbooks/SCStack.template"]]}},"DependsOn":["orchestratorSHARROrchestratorArn0ACC7B05","orchestratorStateMachine77C3F8FB"],"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete","Condition":"loadSCCond"},"SchedulingTable1EC09B43":{"Type":"AWS::DynamoDB::Table","Properties":{"AttributeDefinitions":[{"AttributeName":"AccountID-Region","AttributeType":"S"}],"DeletionProtectionEnabled":true,"KeySchema":[{"AttributeName":"AccountID-Region","KeyType":"HASH"}],"PointInTimeRecoverySpecification":{"PointInTimeRecoveryEnabled":true},"ProvisionedThroughput":{"ReadCapacityUnits":5,"WriteCapacityUnits":5},"SSESpecification":{"SSEEnabled":true},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TimeToLiveSpecification":{"AttributeName":"TTL","Enabled":true}},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["DYNAMODB_BILLING_MODE_RULE","DYNAMODB_TABLE_ENCRYPTED_KMS"]}}},"SchedulingTableReadScalingTarget08C43BF6":{"Type":"AWS::ApplicationAutoScaling::ScalableTarget","Properties":{"MaxCapacity":10,"MinCapacity":1,"ResourceId":{"Fn::Join":["",["table/",{"Ref":"SchedulingTable1EC09B43"}]]},"RoleARN":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable"]]},"ScalableDimension":"dynamodb:table:ReadCapacityUnits","ServiceNamespace":"dynamodb"}},"SchedulingTableReadScalingTargetTracking239581AF":{"Type":"AWS::ApplicationAutoScaling::ScalingPolicy","Properties":{"PolicyName":"SolutionDeployStackSchedulingTableReadScalingTargetTracking5DD9C5B4","PolicyType":"TargetTrackingScaling","ScalingTargetId":{"Ref":"SchedulingTableReadScalingTarget08C43BF6"},"TargetTrackingScalingPolicyConfiguration":{"PredefinedMetricSpecification":{"PredefinedMetricType":"DynamoDBReadCapacityUtilization"},"TargetValue":70}}},"SchedulingTableWriteScalingTargetD82A5F4D":{"Type":"AWS::ApplicationAutoScaling::ScalableTarget","Properties":{"MaxCapacity":10,"MinCapacity":1,"ResourceId":{"Fn::Join":["",["table/",{"Ref":"SchedulingTable1EC09B43"}]]},"RoleARN":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::",{"Ref":"AWS::AccountId"},":role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable"]]},"ScalableDimension":"dynamodb:table:WriteCapacityUnits","ServiceNamespace":"dynamodb"}},"SchedulingTableWriteScalingTargetTracking03361258":{"Type":"AWS::ApplicationAutoScaling::ScalingPolicy","Properties":{"PolicyName":"SolutionDeployStackSchedulingTableWriteScalingTargetTrackingB3259845","PolicyType":"TargetTrackingScaling","ScalingTargetId":{"Ref":"SchedulingTableWriteScalingTargetD82A5F4D"},"TargetTrackingScalingPolicyConfiguration":{"PredefinedMetricSpecification":{"PredefinedMetricType":"DynamoDBWriteCapacityUtilization"},"TargetValue":70}}},"SchedulingLambdaPolicyBDBE83CB":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:*:",{"Ref":"AWS::AccountId"},":log-group:*:log-stream:*"]]}},{"Action":"logs:CreateLogGroup","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:*:",{"Ref":"AWS::AccountId"},":log-group:*"]]}},{"Action":["ssm:GetParameter","ssm:PutParameter"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/*"]]}},{"Action":"cloudwatch:PutMetricData","Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"PolicyName":"SO0111-ASR_Scheduling_Lambda","Roles":[{"Ref":"SchedulingLambdaRoleAB00F55C"}]}},"SchedulingLambdaRoleAB00F55C":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"Description":"Lambda role to schedule remediations that are sent to SQS through the orchestrator","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]}},"SchedulingLambdaRoleDefaultPolicy73C1B49B":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords"],"Effect":"Allow","Resource":"*"},{"Action":["states:SendTaskSuccess","states:SendTaskFailure","states:SendTaskHeartbeat"],"Effect":"Allow","Resource":{"Ref":"orchestratorStateMachine77C3F8FB"}},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:BatchWriteItem","dynamodb:PutItem","dynamodb:UpdateItem","dynamodb:DeleteItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["SchedulingTable1EC09B43","Arn"]}]},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["SchedulingTable1EC09B43","Arn"]}]},{"Action":["sqs:ReceiveMessage","sqs:ChangeMessageVisibility","sqs:GetQueueUrl","sqs:DeleteMessage","sqs:GetQueueAttributes"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SchedulingQueueB533E3CD","Arn"]}},{"Action":"kms:Decrypt","Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}}],"Version":"2012-10-17"},"PolicyName":"SchedulingLambdaRoleDefaultPolicy73C1B49B","Roles":[{"Ref":"SchedulingLambdaRoleAB00F55C"}]}},"schedulingLambdaTriggerLogGroup274E9C39":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"schedulingLambdaTrigger24179157":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/schedule_remediation-f4475e0b.zip"},"Description":"SO0111 ASR function that schedules remediations in member accounts","Environment":{"Variables":{"SchedulingTableName":{"Ref":"SchedulingTable1EC09B43"},"RemediationWaitTime":"3","POWERTOOLS_SERVICE_NAME":"schedule_remediation","POWERTOOLS_LOG_LEVEL":"INFO","POWERTOOLS_LOGGER_LOG_EVENT":"false","POWERTOOLS_TRACER_CAPTURE_RESPONSE":"true","POWERTOOLS_TRACER_CAPTURE_ERROR":"true","AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"STACK_ID":{"Ref":"AWS::StackId"}}},"FunctionName":"SO0111-ASR-schedulingLambdaTrigger","Handler":"schedule_remediation.lambda_handler","Layers":[{"Ref":"ASRLambdaLayerDAD507E4"}],"LoggingConfig":{"LogGroup":{"Ref":"schedulingLambdaTriggerLogGroup274E9C39"}},"MemorySize":128,"ReservedConcurrentExecutions":1,"Role":{"Fn::GetAtt":["SchedulingLambdaRoleAB00F55C","Arn"]},"Runtime":"python3.11","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":10,"TracingConfig":{"Mode":"Active"}},"DependsOn":["SchedulingLambdaRoleDefaultPolicy73C1B49B","SchedulingLambdaRoleAB00F55C"],"Metadata":{"guard":{"SuppressedRules":["LAMBDA_INSIDE_VPC"]}}},"schedulingLambdaTriggerSqsEventSourceSolutionDeployStackSchedulingQueue113A20F495C8AD0E":{"Type":"AWS::Lambda::EventSourceMapping","Properties":{"BatchSize":1,"EventSourceArn":{"Fn::GetAtt":["SchedulingQueueB533E3CD","Arn"]},"FunctionName":{"Ref":"schedulingLambdaTrigger24179157"}}},"ActionLogOrgIdLookupOrgIdLookupFunctionLogGroup6EB49829":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"ActionLogOrgIdLookupOrgIdLookupFunctionServiceRole93505391":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"ManagedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]}},"ActionLogOrgIdLookupOrgIdLookupFunctionServiceRoleDefaultPolicyB2285DD8":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":"organizations:DescribeOrganization","Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"PolicyName":"ActionLogOrgIdLookupOrgIdLookupFunctionServiceRoleDefaultPolicyB2285DD8","Roles":[{"Ref":"ActionLogOrgIdLookupOrgIdLookupFunctionServiceRole93505391"}]}},"ActionLogOrgIdLookupOrgIdLookupFunctionD828FC28":{"Type":"AWS::Lambda::Function","Properties":{"Architectures":["arm64"],"Code":{"ZipFile":"\n      const {OrganizationsClient, DescribeOrganizationCommand} = require(\"@aws-sdk/client-organizations\");\n      const https = require('https');\n      const url = require('url');\n      \n      const organizationsClient = new OrganizationsClient({});\n      \n      exports.handler = async function (event, context) {\n        console.log('Event:', JSON.stringify(event, null, 2));\n      \n        let responseData = {};\n        let physicalResourceId;\n        let responseStatus = 'FAILED';\n        let reason;\n      \n        try {\n          if (event.RequestType === 'Create' || event.RequestType === 'Update') {\n            const response = await organizationsClient.send(new DescribeOrganizationCommand({}));\n            const organizationId = response.Organization?.Id;\n            responseData = { OrganizationId: organizationId };\n            physicalResourceId = organizationId || 'org-id-not-found';\n            responseStatus = 'SUCCESS';\n          } else if (event.RequestType === 'Delete') {\n            // Nothing to do for delete\n            physicalResourceId = event.PhysicalResourceId;\n            responseStatus = 'SUCCESS';\n          }\n        } catch (error) {\n          if (error.name === \"AWSOrganizationsNotInUseException\" || error.name === \"AccessDeniedException\") {\n            responseData = { OrganizationId: 'org-id-unavailable' };\n            physicalResourceId = 'org-id-not-found';\n            responseStatus = 'SUCCESS';\n          } else {\n            console.error('Error:', error);\n            reason = 'Failed to retrieve Organization ID: ' + error.message;\n            physicalResourceId = 'org-id-lookup-failed';\n          }\n        }\n      \n        await sendResponse(event, context, responseStatus, responseData, physicalResourceId, reason);\n      };\n      \n      function sendResponse(event, context, responseStatus, responseData, physicalResourceId, reason) {\n        return new Promise((resolve, reject) => {\n          const responseBody = JSON.stringify({\n            Status: responseStatus,\n            Reason: reason || 'See the details in CloudWatch Log Stream: ' + context.logStreamName,\n            PhysicalResourceId: physicalResourceId,\n            StackId: event.StackId,\n            RequestId: event.RequestId,\n            LogicalResourceId: event.LogicalResourceId,\n            NoEcho: false,\n            Data: responseData\n          });\n      \n          console.log('Response body:', responseBody);\n      \n          const parsedUrl = url.parse(event.ResponseURL);\n          const options = {\n            hostname: parsedUrl.hostname,\n            port: 443,\n            path: parsedUrl.path,\n            method: 'PUT',\n            headers: {\n              'content-type': '',\n              'content-length': responseBody.length\n            }\n          };\n      \n          const request = https.request(options, (response) => {\n            console.log('Status code:', response.statusCode);\n            console.log('Status message:', response.statusMessage);\n            resolve();\n          });\n      \n          request.on('error', (error) => {\n            console.log('send(..) failed executing https.request(..): ' + error);\n            reject(error);\n          });\n      \n          request.write(responseBody);\n          request.end();\n        });\n      }\n    "},"Handler":"index.handler","LoggingConfig":{"LogGroup":{"Ref":"ActionLogOrgIdLookupOrgIdLookupFunctionLogGroup6EB49829"}},"Role":{"Fn::GetAtt":["ActionLogOrgIdLookupOrgIdLookupFunctionServiceRole93505391","Arn"]},"Runtime":"nodejs24.x","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":15},"DependsOn":["ActionLogOrgIdLookupOrgIdLookupFunctionServiceRoleDefaultPolicyB2285DD8","ActionLogOrgIdLookupOrgIdLookupFunctionServiceRole93505391"],"Metadata":{"guard":{"SuppressedRules":["LAMBDA_INSIDE_VPC","LAMBDA_CONCURRENCY_CHECK"]}}},"ActionLogOrgIdLookup5D912F99":{"Type":"AWS::CloudFormation::CustomResource","Properties":{"ServiceToken":{"Fn::GetAtt":["ActionLogOrgIdLookupOrgIdLookupFunctionD828FC28","Arn"]}},"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"ActionLogCrossAccountLogWriterRole252CB494":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Condition":{"StringEquals":{"aws:PrincipalOrgID":{"Fn::GetAtt":["ActionLogOrgIdLookup5D912F99","OrganizationId"]},"sts:ExternalId":"ASRCrossAccountLogWriter"}},"Effect":"Allow","Principal":{"AWS":"*"}}],"Version":"2012-10-17"},"Description":"Role for cross-account access to write to CloudWatch Logs with External ID security","RoleName":"CrossAccountLogWriterRole","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}}},"ActionLogCrossAccountLogWriterRoleDefaultPolicy3386E1C5":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:PutLogEvents","logs:DescribeLogStreams"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["CloudTrailEventsLogGroup94AE6D1A","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["CloudTrailEventsLogGroup94AE6D1A","Arn"]},":*"]]}]},{"Action":["logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["CloudTrailEventsLogGroup94AE6D1A","Arn"]}}],"Version":"2012-10-17"},"PolicyName":"ActionLogCrossAccountLogWriterRoleDefaultPolicy3386E1C5","Roles":[{"Ref":"ActionLogCrossAccountLogWriterRole252CB494"}]}},"CloudTrailEventsLogGroup94AE6D1A":{"Type":"AWS::Logs::LogGroup","Properties":{"LogGroupName":"/aws/lambda/SO0111-ASR-CloudTrailEvents","RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"NotificationDispatcherConstructNotificationDLQ5AF0A402":{"Type":"AWS::SQS::Queue","Properties":{"KmsDataKeyReusePeriodSeconds":3600,"KmsMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"MessageRetentionPeriod":1209600,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"NotificationDispatcherConstructNotificationDLQPolicyD9A407E7":{"Type":"AWS::SQS::QueuePolicy","Properties":{"PolicyDocument":{"Statement":[{"Action":"sqs:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["NotificationDispatcherConstructNotificationDLQ5AF0A402","Arn"]}}],"Version":"2012-10-17"},"Queues":[{"Ref":"NotificationDispatcherConstructNotificationDLQ5AF0A402"}]}},"NotificationDispatcherConstructNotificationQueue5CDAD00E":{"Type":"AWS::SQS::Queue","Properties":{"KmsDataKeyReusePeriodSeconds":3600,"KmsMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"RedrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["NotificationDispatcherConstructNotificationDLQ5AF0A402","Arn"]},"maxReceiveCount":3},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"VisibilityTimeout":300},"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"NotificationDispatcherConstructNotificationQueuePolicy96111F7E":{"Type":"AWS::SQS::QueuePolicy","Properties":{"PolicyDocument":{"Statement":[{"Action":"sqs:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["NotificationDispatcherConstructNotificationQueue5CDAD00E","Arn"]}}],"Version":"2012-10-17"},"Queues":[{"Ref":"NotificationDispatcherConstructNotificationQueue5CDAD00E"}]}},"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79":{"Type":"AWS::SNS::Topic","Properties":{"KmsMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]}},"NotificationDispatcherConstructChannelFanoutTopicPolicyDE80DEA3":{"Type":"AWS::SNS::TopicPolicy","Properties":{"PolicyDocument":{"Statement":[{"Action":"sns:Publish","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":"*","Resource":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"},"Sid":"AllowPublishThroughSSLOnly"}],"Version":"2012-10-17"},"Topics":[{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}]}},"NotificationDispatcherConstructDispatcherFunctionLogGroup47F18016":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"NotificationDispatcherConstructDispatcherFunctionServiceRole8E2F404B":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"ManagedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]}},"NotificationDispatcherConstructDispatcherFunctionServiceRoleDefaultPolicyD0BB4491":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords"],"Effect":"Allow","Resource":"*"},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},"/index/*"]]}]},{"Action":"dynamodb:Query","Effect":"Allow","Resource":{"Fn::Join":["",[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},"/index/*"]]}},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:BatchWriteItem","dynamodb:PutItem","dynamodb:UpdateItem","dynamodb:DeleteItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["NotificationBatchesTable7022E304","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["NotificationBatchesTable7022E304","Arn"]},"/index/*"]]}]},{"Action":["kms:Decrypt","kms:DescribeKey","kms:Encrypt","kms:ReEncrypt*","kms:GenerateDataKey*"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["NotificationBatchesTable7022E304","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["NotificationBatchesTable7022E304","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ResourceFiltersTable4266014F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ResourceFiltersTable4266014F","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ResourceFiltersTable4266014F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ResourceFiltersTable4266014F","Arn"]},"/index/*"]]}]},{"Action":"ssm:GetParameter","Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/anonymous_metrics_uuid"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/metrics_uuid"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/version"]]}]},{"Action":"ssm:PutParameter","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/metrics_uuid"]]}},{"Action":"ssm:DeleteParameter","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/anonymous_metrics_uuid"]]}},{"Action":"sns:Publish","Effect":"Allow","Resource":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}},{"Action":["kms:Decrypt","kms:GenerateDataKey*"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}},{"Action":["sqs:ReceiveMessage","sqs:ChangeMessageVisibility","sqs:GetQueueUrl","sqs:DeleteMessage","sqs:GetQueueAttributes"],"Effect":"Allow","Resource":{"Fn::GetAtt":["NotificationDispatcherConstructNotificationQueue5CDAD00E","Arn"]}},{"Action":"kms:Decrypt","Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}}],"Version":"2012-10-17"},"PolicyName":"NotificationDispatcherConstructDispatcherFunctionServiceRoleDefaultPolicyD0BB4491","Roles":[{"Ref":"NotificationDispatcherConstructDispatcherFunctionServiceRole8E2F404B"}]}},"NotificationDispatcherConstructDispatcherFunctionB87A56AA":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/asr_lambdas-c8b90e4c.zip"},"Environment":{"Variables":{"SOLUTION_TRADEMARKEDNAME":"automated-security-response-on-aws","POWERTOOLS_SERVICE_NAME":"notification_dispatcher","POWERTOOLS_LOG_LEVEL":"INFO","NOTIFICATION_CONFIG_TABLE_NAME":{"Ref":"NotificationConfigTable85915FE5"},"NOTIFICATION_BATCHES_TABLE_NAME":{"Ref":"NotificationBatchesTable7022E304"},"RESOURCE_FILTERS_TABLE_NAME":{"Ref":"ResourceFiltersTable4266014F"},"AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"STACK_ID":{"Ref":"AWS::StackId"},"CHANNEL_FANOUT_TOPIC_ARN":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"},"LAMBDA_TIMEOUT_SECONDS":"300"}},"FunctionName":"SO0111-ASR-NotificationDispatcher","Handler":"notification-dispatcher/notificationDispatcher.handler","LoggingConfig":{"LogGroup":{"Ref":"NotificationDispatcherConstructDispatcherFunctionLogGroup47F18016"}},"MemorySize":512,"ReservedConcurrentExecutions":5,"Role":{"Fn::GetAtt":["NotificationDispatcherConstructDispatcherFunctionServiceRole8E2F404B","Arn"]},"Runtime":"nodejs24.x","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":300,"TracingConfig":{"Mode":"Active"}},"DependsOn":["NotificationDispatcherConstructDispatcherFunctionServiceRoleDefaultPolicyD0BB4491","NotificationDispatcherConstructDispatcherFunctionServiceRole8E2F404B"],"Metadata":{"guard":{"SuppressedRules":["LAMBDA_INSIDE_VPC","CFN_NO_EXPLICIT_RESOURCE_NAMES"]}}},"NotificationDispatcherConstructDispatcherFunctionSqsEventSourceSolutionDeployStackNotificationDispatcherConstructNotificationQueueB0B31BDD5520E623":{"Type":"AWS::Lambda::EventSourceMapping","Properties":{"BatchSize":10,"EventSourceArn":{"Fn::GetAtt":["NotificationDispatcherConstructNotificationQueue5CDAD00E","Arn"]},"FunctionName":{"Ref":"NotificationDispatcherConstructDispatcherFunctionB87A56AA"},"FunctionResponseTypes":["ReportBatchItemFailures"],"MaximumBatchingWindowInSeconds":5}},"PreProcessorConstructPreProcessorDLQC3A75225":{"Type":"AWS::SQS::Queue","Properties":{"KmsDataKeyReusePeriodSeconds":3600,"KmsMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"MessageRetentionPeriod":1209600,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"PreProcessorConstructPreProcessorDLQPolicy2572D35B":{"Type":"AWS::SQS::QueuePolicy","Properties":{"PolicyDocument":{"Statement":[{"Action":"sqs:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["PreProcessorConstructPreProcessorDLQC3A75225","Arn"]}}],"Version":"2012-10-17"},"Queues":[{"Ref":"PreProcessorConstructPreProcessorDLQC3A75225"}]}},"PreProcessorConstructPreProcessorQueue8068A6BD":{"Type":"AWS::SQS::Queue","Properties":{"KmsDataKeyReusePeriodSeconds":3600,"KmsMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"RedrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["PreProcessorConstructPreProcessorDLQC3A75225","Arn"]},"maxReceiveCount":10},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"VisibilityTimeout":900},"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"PreProcessorConstructPreProcessorQueuePolicy245F8DE1":{"Type":"AWS::SQS::QueuePolicy","Properties":{"PolicyDocument":{"Statement":[{"Action":"sqs:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["PreProcessorConstructPreProcessorQueue8068A6BD","Arn"]}},{"Action":"sqs:SendMessage","Condition":{"ArnEquals":{"aws:SourceArn":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":events:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":rule/SO0111_automated-security-response-on-aws_AutoTrigger"]]}},"StringEquals":{"aws:SourceAccount":{"Ref":"AWS::AccountId"}}},"Effect":"Allow","Principal":{"Service":"events.amazonaws.com"},"Resource":{"Fn::GetAtt":["PreProcessorConstructPreProcessorQueue8068A6BD","Arn"]}}],"Version":"2012-10-17"},"Queues":[{"Ref":"PreProcessorConstructPreProcessorQueue8068A6BD"}]}},"PreProcessorConstructPreProcessorFunctionLogGroup01733B23":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"PreProcessorConstructPreProcessorFunctionServiceRole58DC9DF7":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"ManagedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]}},"PreProcessorConstructPreProcessorFunctionServiceRoleDefaultPolicy05DF2207":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords"],"Effect":"Allow","Resource":"*"},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:BatchWriteItem","dynamodb:PutItem","dynamodb:UpdateItem","dynamodb:DeleteItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ASRFindingsTable3FD52B9C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ASRFindingsTable3FD52B9C","Arn"]},"/index/*"]]}]},{"Action":["kms:Decrypt","kms:DescribeKey","kms:Encrypt","kms:ReEncrypt*","kms:GenerateDataKey*"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ASRFindingsTable3FD52B9C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ASRFindingsTable3FD52B9C","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:BatchWriteItem","dynamodb:PutItem","dynamodb:UpdateItem","dynamodb:DeleteItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["RemediationConfigTable24F19C3B","Arn"]}]},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["RemediationConfigTable24F19C3B","Arn"]}]},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:BatchWriteItem","dynamodb:PutItem","dynamodb:UpdateItem","dynamodb:DeleteItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ASRRemediationHistoryTable3CA12E73","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ASRRemediationHistoryTable3CA12E73","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ASRRemediationHistoryTable3CA12E73","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ASRRemediationHistoryTable3CA12E73","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ResourceFiltersTable4266014F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ResourceFiltersTable4266014F","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ResourceFiltersTable4266014F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ResourceFiltersTable4266014F","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},"/index/*"]]}]},{"Action":["ssm:GetParameters","ssm:GetParameter","ssm:GetParametersByPath","ssm:PutParameter","ssm:DeleteParameter"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:*:*:parameter/Solutions/SO0111/*"]]}},{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"orchestratorStateMachine77C3F8FB"}},{"Action":["organizations:ListParents","organizations:DescribeAccount"],"Effect":"Allow","Resource":"*"},{"Action":"securityhub:GetFindings","Effect":"Allow","Resource":"*"},{"Action":["sqs:ReceiveMessage","sqs:ChangeMessageVisibility","sqs:GetQueueUrl","sqs:DeleteMessage","sqs:GetQueueAttributes"],"Effect":"Allow","Resource":{"Fn::GetAtt":["PreProcessorConstructPreProcessorQueue8068A6BD","Arn"]}},{"Action":"kms:Decrypt","Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}},{"Action":["sqs:SendMessage","sqs:GetQueueAttributes","sqs:GetQueueUrl"],"Effect":"Allow","Resource":{"Fn::GetAtt":["NotificationDispatcherConstructNotificationQueue5CDAD00E","Arn"]}},{"Action":["kms:Decrypt","kms:Encrypt","kms:ReEncrypt*","kms:GenerateDataKey*"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}}],"Version":"2012-10-17"},"PolicyName":"PreProcessorConstructPreProcessorFunctionServiceRoleDefaultPolicy05DF2207","Roles":[{"Ref":"PreProcessorConstructPreProcessorFunctionServiceRole58DC9DF7"}]}},"PreProcessorConstructPreProcessorFunction866FBB71":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/asr_lambdas-c8b90e4c.zip"},"Environment":{"Variables":{"SOLUTION_TRADEMARKEDNAME":"automated-security-response-on-aws","POWERTOOLS_LOG_LEVEL":"INFO","FINDINGS_TABLE_NAME":{"Ref":"ASRFindingsTable3FD52B9C"},"REMEDIATION_HISTORY_TABLE_NAME":{"Ref":"ASRRemediationHistoryTable3CA12E73"},"REMEDIATION_CONFIG_TABLE_NAME":{"Ref":"RemediationConfigTable24F19C3B"},"RESOURCE_FILTERS_TABLE_NAME":{"Ref":"ResourceFiltersTable4266014F"},"NOTIFICATION_CONFIG_TABLE_NAME":{"Ref":"NotificationConfigTable85915FE5"},"ORCHESTRATOR_ARN":{"Ref":"orchestratorStateMachine77C3F8FB"},"FINDINGS_TTL_DAYS":"8","HISTORY_TTL_DAYS":"365","AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"STACK_ID":{"Ref":"AWS::StackId"},"NOTIFICATION_QUEUE_URL":{"Ref":"NotificationDispatcherConstructNotificationQueue5CDAD00E"}}},"FunctionName":"SO0111-ASR-PreProcessor","Handler":"pre-processor/preProcessor.handler","LoggingConfig":{"LogGroup":{"Ref":"PreProcessorConstructPreProcessorFunctionLogGroup01733B23"}},"MemorySize":1024,"ReservedConcurrentExecutions":20,"Role":{"Fn::GetAtt":["PreProcessorConstructPreProcessorFunctionServiceRole58DC9DF7","Arn"]},"Runtime":"nodejs24.x","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":900,"TracingConfig":{"Mode":"Active"}},"DependsOn":["PreProcessorConstructPreProcessorFunctionServiceRoleDefaultPolicy05DF2207","PreProcessorConstructPreProcessorFunctionServiceRole58DC9DF7"],"Metadata":{"guard":{"SuppressedRules":["LAMBDA_INSIDE_VPC","CFN_NO_EXPLICIT_RESOURCE_NAMES"]}}},"PreProcessorConstructPreProcessorFunctionSqsEventSourceSolutionDeployStackPreProcessorConstructPreProcessorQueue40E7D8E34D873ECA":{"Type":"AWS::Lambda::EventSourceMapping","Properties":{"BatchSize":10,"EventSourceArn":{"Fn::GetAtt":["PreProcessorConstructPreProcessorQueue8068A6BD","Arn"]},"FunctionName":{"Ref":"PreProcessorConstructPreProcessorFunction866FBB71"},"FunctionResponseTypes":["ReportBatchItemFailures"],"MaximumBatchingWindowInSeconds":5}},"PreProcessorConstructPreProcessorSecurityHubV2Policy62974EA6":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":"securityhub:DescribeSecurityHubV2","Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"PolicyName":"PreProcessorConstructPreProcessorSecurityHubV2Policy62974EA6","Roles":[{"Ref":"PreProcessorConstructPreProcessorFunctionServiceRole58DC9DF7"}]},"Condition":"IsCommercialPartition"},"FindingEventsTriggerEventBridgeToSQSEventsRule5599F48C":{"Type":"AWS::Events::Rule","Properties":{"Description":"This rule captures finding events from Security Hub, Security Hub CSPM, Inspector, GuardDuty, and Macie and forwards them to ASR's Pre-processor SQS Queue for further execution","EventPattern":{"source":["aws.securityhub"],"detail-type":["Security Hub Findings - Imported","Findings Imported V2"],"detail":{"findings":{"$or":[{"SchemaVersion":["2018-10-08"],"ProductArn":[{"prefix":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":securityhub"]]}}]},{"class_name":["Compliance Finding"],"class_uid":[2003],"metadata":{"product":{"uid":[{"prefix":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":securityhub"]]}}]}}},{"class_name":["Vulnerability Finding"],"class_uid":[2002],"metadata":{"product":{"name":["Inspector"]}}},{"class_name":["Detection Finding"],"class_uid":[2004],"metadata":{"product":{"name":["GuardDuty","Macie"]}}},{"class_name":["Data Security Finding"],"class_uid":[2006],"metadata":{"product":{"name":["Macie"]}}}]}}},"Name":"SO0111_automated-security-response-on-aws_AutoTrigger","State":"ENABLED","Targets":[{"Arn":{"Fn::GetAtt":["PreProcessorConstructPreProcessorQueue8068A6BD","Arn"]},"Id":"Target0"}]}},"NotificationChannelFanoutEmailNotificationsTopic7B519405":{"Type":"AWS::SNS::Topic","Properties":{"KmsMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TopicName":"SO0111-ASR-EmailNotifications"}},"NotificationChannelFanoutEmailChannelDLQCDED26B4":{"Type":"AWS::SQS::Queue","Properties":{"KmsDataKeyReusePeriodSeconds":3600,"KmsMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"MessageRetentionPeriod":1209600,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"NotificationChannelFanoutEmailChannelDLQPolicy2E9CFF31":{"Type":"AWS::SQS::QueuePolicy","Properties":{"PolicyDocument":{"Statement":[{"Action":"sqs:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["NotificationChannelFanoutEmailChannelDLQCDED26B4","Arn"]}},{"Action":"sqs:SendMessage","Condition":{"ArnEquals":{"aws:SourceArn":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}}},"Effect":"Allow","Principal":{"Service":"sns.amazonaws.com"},"Resource":{"Fn::GetAtt":["NotificationChannelFanoutEmailChannelDLQCDED26B4","Arn"]}}],"Version":"2012-10-17"},"Queues":[{"Ref":"NotificationChannelFanoutEmailChannelDLQCDED26B4"}]}},"NotificationChannelFanoutEmailChannelFunctionLogGroup577CF5EC":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"NotificationChannelFanoutEmailChannelFunctionServiceRole2C54EC36":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"ManagedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]}},"NotificationChannelFanoutEmailChannelFunctionServiceRoleDefaultPolicyEB3F66A9":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords"],"Effect":"Allow","Resource":"*"},{"Action":"kms:Decrypt","Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}},{"Action":"sns:Publish","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":sns:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":asr-notifications-*"]]}},{"Action":"ssm:GetParameter","Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/anonymous_metrics_uuid"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/metrics_uuid"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/version"]]}]},{"Action":"ssm:PutParameter","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/metrics_uuid"]]}},{"Action":"ssm:DeleteParameter","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/anonymous_metrics_uuid"]]}},{"Action":["s3:GetObject*","s3:GetBucket*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]},"/*"]]}]},{"Action":["kms:Decrypt","kms:DescribeKey"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}}],"Version":"2012-10-17"},"PolicyName":"NotificationChannelFanoutEmailChannelFunctionServiceRoleDefaultPolicyEB3F66A9","Roles":[{"Ref":"NotificationChannelFanoutEmailChannelFunctionServiceRole2C54EC36"}]}},"NotificationChannelFanoutEmailChannelFunction44E71088":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/asr_lambdas-c8b90e4c.zip"},"Environment":{"Variables":{"SOLUTION_TRADEMARKEDNAME":"automated-security-response-on-aws","POWERTOOLS_LOG_LEVEL":"INFO","AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"AWS_PARTITION":{"Ref":"AWS::Partition"},"STACK_ID":{"Ref":"AWS::StackId"},"RESOURCE_NAME_PREFIX":"SO0111","WEB_UI_URL":{"Fn::If":["webUIEnabled",{"Fn::Join":["",["https://",{"Fn::GetAtt":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB","Outputs.FrontendDistributionDomainName"]}]]},{"Ref":"AWS::NoValue"}]},"IAC_TEMPLATES_BUCKET":{"Ref":"IaCTemplatesBucketResourceF771E4F3"},"POWERTOOLS_SERVICE_NAME":"notification_email_channel"}},"FunctionName":"SO0111-ASR-EmailChannel","Handler":"notification-channels/email-channel.handler","LoggingConfig":{"LogGroup":{"Ref":"NotificationChannelFanoutEmailChannelFunctionLogGroup577CF5EC"}},"MemorySize":256,"ReservedConcurrentExecutions":10,"Role":{"Fn::GetAtt":["NotificationChannelFanoutEmailChannelFunctionServiceRole2C54EC36","Arn"]},"Runtime":"nodejs24.x","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":30,"TracingConfig":{"Mode":"Active"}},"DependsOn":["NotificationChannelFanoutEmailChannelFunctionServiceRoleDefaultPolicyEB3F66A9","NotificationChannelFanoutEmailChannelFunctionServiceRole2C54EC36"],"Metadata":{"guard":{"SuppressedRules":["LAMBDA_INSIDE_VPC","CFN_NO_EXPLICIT_RESOURCE_NAMES"]}}},"NotificationChannelFanoutEmailChannelFunctionAllowInvokeSolutionDeployStackNotificationDispatcherConstructChannelFanoutTopic0F8E3E9EC440B59A":{"Type":"AWS::Lambda::Permission","Properties":{"Action":"lambda:InvokeFunction","FunctionName":{"Fn::GetAtt":["NotificationChannelFanoutEmailChannelFunction44E71088","Arn"]},"Principal":"sns.amazonaws.com","SourceArn":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}}},"NotificationChannelFanoutEmailChannelFunctionChannelFanoutTopic815ACE09":{"Type":"AWS::SNS::Subscription","Properties":{"Endpoint":{"Fn::GetAtt":["NotificationChannelFanoutEmailChannelFunction44E71088","Arn"]},"FilterPolicy":{"channelType":["email"]},"Protocol":"lambda","RedrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["NotificationChannelFanoutEmailChannelDLQCDED26B4","Arn"]}},"TopicArn":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}}},"NotificationChannelFanoutEmailChannelDLQAlarm299AF906":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmDescription":"Automated Security Response on AWS: Messages in the email notification channel DLQ. The channel Lambda failed to deliver notifications after SNS retries. Inspect the DLQ and CloudWatch logs for the EmailChannel Lambda.","AlarmName":"SO0111-ASR-EmailChannelDLQ","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"Dimensions":[{"Name":"QueueName","Value":{"Fn::GetAtt":["NotificationChannelFanoutEmailChannelDLQCDED26B4","QueueName"]}}],"EvaluationPeriods":1,"MetricName":"ApproximateNumberOfMessagesVisible","Namespace":"AWS/SQS","Period":60,"Statistic":"Sum","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":1,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}}},"NotificationChannelFanoutSlackChannelDLQCCC0C865":{"Type":"AWS::SQS::Queue","Properties":{"KmsDataKeyReusePeriodSeconds":3600,"KmsMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"MessageRetentionPeriod":1209600,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"NotificationChannelFanoutSlackChannelDLQPolicyC61A1CAE":{"Type":"AWS::SQS::QueuePolicy","Properties":{"PolicyDocument":{"Statement":[{"Action":"sqs:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["NotificationChannelFanoutSlackChannelDLQCCC0C865","Arn"]}},{"Action":"sqs:SendMessage","Condition":{"ArnEquals":{"aws:SourceArn":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}}},"Effect":"Allow","Principal":{"Service":"sns.amazonaws.com"},"Resource":{"Fn::GetAtt":["NotificationChannelFanoutSlackChannelDLQCCC0C865","Arn"]}}],"Version":"2012-10-17"},"Queues":[{"Ref":"NotificationChannelFanoutSlackChannelDLQCCC0C865"}]}},"NotificationChannelFanoutSlackChannelFunctionLogGroup2D5B38E6":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"NotificationChannelFanoutSlackChannelFunctionServiceRole5A9DDD9B":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"ManagedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]}},"NotificationChannelFanoutSlackChannelFunctionServiceRoleDefaultPolicy8BAE81AB":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords"],"Effect":"Allow","Resource":"*"},{"Action":"kms:Decrypt","Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}},{"Action":"secretsmanager:GetSecretValue","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":secretsmanager:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":secret:asr/notifications/*"]]}},{"Action":"ssm:GetParameter","Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/anonymous_metrics_uuid"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/metrics_uuid"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/version"]]}]},{"Action":"ssm:PutParameter","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/metrics_uuid"]]}},{"Action":"ssm:DeleteParameter","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/anonymous_metrics_uuid"]]}},{"Action":["s3:GetObject*","s3:GetBucket*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]},"/*"]]}]},{"Action":["kms:Decrypt","kms:DescribeKey"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}}],"Version":"2012-10-17"},"PolicyName":"NotificationChannelFanoutSlackChannelFunctionServiceRoleDefaultPolicy8BAE81AB","Roles":[{"Ref":"NotificationChannelFanoutSlackChannelFunctionServiceRole5A9DDD9B"}]}},"NotificationChannelFanoutSlackChannelFunction01DB3204":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/asr_lambdas-c8b90e4c.zip"},"Environment":{"Variables":{"SOLUTION_TRADEMARKEDNAME":"automated-security-response-on-aws","POWERTOOLS_LOG_LEVEL":"INFO","AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"AWS_PARTITION":{"Ref":"AWS::Partition"},"STACK_ID":{"Ref":"AWS::StackId"},"RESOURCE_NAME_PREFIX":"SO0111","WEB_UI_URL":{"Fn::If":["webUIEnabled",{"Fn::Join":["",["https://",{"Fn::GetAtt":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB","Outputs.FrontendDistributionDomainName"]}]]},{"Ref":"AWS::NoValue"}]},"IAC_TEMPLATES_BUCKET":{"Ref":"IaCTemplatesBucketResourceF771E4F3"},"POWERTOOLS_SERVICE_NAME":"notification_slack_channel"}},"FunctionName":"SO0111-ASR-SlackChannel","Handler":"notification-channels/slack-channel.handler","LoggingConfig":{"LogGroup":{"Ref":"NotificationChannelFanoutSlackChannelFunctionLogGroup2D5B38E6"}},"MemorySize":256,"ReservedConcurrentExecutions":10,"Role":{"Fn::GetAtt":["NotificationChannelFanoutSlackChannelFunctionServiceRole5A9DDD9B","Arn"]},"Runtime":"nodejs24.x","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":60,"TracingConfig":{"Mode":"Active"}},"DependsOn":["NotificationChannelFanoutSlackChannelFunctionServiceRoleDefaultPolicy8BAE81AB","NotificationChannelFanoutSlackChannelFunctionServiceRole5A9DDD9B"],"Metadata":{"guard":{"SuppressedRules":["LAMBDA_INSIDE_VPC","CFN_NO_EXPLICIT_RESOURCE_NAMES"]}}},"NotificationChannelFanoutSlackChannelFunctionAllowInvokeSolutionDeployStackNotificationDispatcherConstructChannelFanoutTopic0F8E3E9E1EEEB527":{"Type":"AWS::Lambda::Permission","Properties":{"Action":"lambda:InvokeFunction","FunctionName":{"Fn::GetAtt":["NotificationChannelFanoutSlackChannelFunction01DB3204","Arn"]},"Principal":"sns.amazonaws.com","SourceArn":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}}},"NotificationChannelFanoutSlackChannelFunctionChannelFanoutTopicB143B199":{"Type":"AWS::SNS::Subscription","Properties":{"Endpoint":{"Fn::GetAtt":["NotificationChannelFanoutSlackChannelFunction01DB3204","Arn"]},"FilterPolicy":{"channelType":["slack"]},"Protocol":"lambda","RedrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["NotificationChannelFanoutSlackChannelDLQCCC0C865","Arn"]}},"TopicArn":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}}},"NotificationChannelFanoutSlackChannelDLQAlarmAC633A54":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmDescription":"Automated Security Response on AWS: Messages in the slack notification channel DLQ. The channel Lambda failed to deliver notifications after SNS retries. Inspect the DLQ and CloudWatch logs for the SlackChannel Lambda.","AlarmName":"SO0111-ASR-SlackChannelDLQ","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"Dimensions":[{"Name":"QueueName","Value":{"Fn::GetAtt":["NotificationChannelFanoutSlackChannelDLQCCC0C865","QueueName"]}}],"EvaluationPeriods":1,"MetricName":"ApproximateNumberOfMessagesVisible","Namespace":"AWS/SQS","Period":60,"Statistic":"Sum","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":1,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}}},"NotificationChannelFanoutJiraChannelDLQ769B8BAA":{"Type":"AWS::SQS::Queue","Properties":{"KmsDataKeyReusePeriodSeconds":3600,"KmsMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"MessageRetentionPeriod":1209600,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"NotificationChannelFanoutJiraChannelDLQPolicy5379DD7A":{"Type":"AWS::SQS::QueuePolicy","Properties":{"PolicyDocument":{"Statement":[{"Action":"sqs:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["NotificationChannelFanoutJiraChannelDLQ769B8BAA","Arn"]}},{"Action":"sqs:SendMessage","Condition":{"ArnEquals":{"aws:SourceArn":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}}},"Effect":"Allow","Principal":{"Service":"sns.amazonaws.com"},"Resource":{"Fn::GetAtt":["NotificationChannelFanoutJiraChannelDLQ769B8BAA","Arn"]}}],"Version":"2012-10-17"},"Queues":[{"Ref":"NotificationChannelFanoutJiraChannelDLQ769B8BAA"}]}},"NotificationChannelFanoutJiraChannelFunctionLogGroupDCAAD771":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"NotificationChannelFanoutJiraChannelFunctionServiceRole8A9DB468":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"ManagedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]}},"NotificationChannelFanoutJiraChannelFunctionServiceRoleDefaultPolicy395A810C":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords"],"Effect":"Allow","Resource":"*"},{"Action":"kms:Decrypt","Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}},{"Action":"secretsmanager:GetSecretValue","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":secretsmanager:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":secret:asr/notifications/*"]]}},{"Action":"ssm:GetParameter","Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/anonymous_metrics_uuid"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/metrics_uuid"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/version"]]}]},{"Action":"ssm:PutParameter","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/metrics_uuid"]]}},{"Action":"ssm:DeleteParameter","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/anonymous_metrics_uuid"]]}},{"Action":["s3:GetObject*","s3:GetBucket*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]},"/*"]]}]},{"Action":["kms:Decrypt","kms:DescribeKey"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}}],"Version":"2012-10-17"},"PolicyName":"NotificationChannelFanoutJiraChannelFunctionServiceRoleDefaultPolicy395A810C","Roles":[{"Ref":"NotificationChannelFanoutJiraChannelFunctionServiceRole8A9DB468"}]}},"NotificationChannelFanoutJiraChannelFunction3F2DD876":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/asr_lambdas-c8b90e4c.zip"},"Environment":{"Variables":{"SOLUTION_TRADEMARKEDNAME":"automated-security-response-on-aws","POWERTOOLS_LOG_LEVEL":"INFO","AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"AWS_PARTITION":{"Ref":"AWS::Partition"},"STACK_ID":{"Ref":"AWS::StackId"},"RESOURCE_NAME_PREFIX":"SO0111","WEB_UI_URL":{"Fn::If":["webUIEnabled",{"Fn::Join":["",["https://",{"Fn::GetAtt":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB","Outputs.FrontendDistributionDomainName"]}]]},{"Ref":"AWS::NoValue"}]},"IAC_TEMPLATES_BUCKET":{"Ref":"IaCTemplatesBucketResourceF771E4F3"},"POWERTOOLS_SERVICE_NAME":"notification_jira_channel"}},"FunctionName":"SO0111-ASR-JiraChannel","Handler":"notification-channels/jira-channel.handler","LoggingConfig":{"LogGroup":{"Ref":"NotificationChannelFanoutJiraChannelFunctionLogGroupDCAAD771"}},"MemorySize":256,"ReservedConcurrentExecutions":10,"Role":{"Fn::GetAtt":["NotificationChannelFanoutJiraChannelFunctionServiceRole8A9DB468","Arn"]},"Runtime":"nodejs24.x","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":60,"TracingConfig":{"Mode":"Active"}},"DependsOn":["NotificationChannelFanoutJiraChannelFunctionServiceRoleDefaultPolicy395A810C","NotificationChannelFanoutJiraChannelFunctionServiceRole8A9DB468"],"Metadata":{"guard":{"SuppressedRules":["LAMBDA_INSIDE_VPC","CFN_NO_EXPLICIT_RESOURCE_NAMES"]}}},"NotificationChannelFanoutJiraChannelFunctionAllowInvokeSolutionDeployStackNotificationDispatcherConstructChannelFanoutTopic0F8E3E9E06D0D2D4":{"Type":"AWS::Lambda::Permission","Properties":{"Action":"lambda:InvokeFunction","FunctionName":{"Fn::GetAtt":["NotificationChannelFanoutJiraChannelFunction3F2DD876","Arn"]},"Principal":"sns.amazonaws.com","SourceArn":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}}},"NotificationChannelFanoutJiraChannelFunctionChannelFanoutTopicB27185EA":{"Type":"AWS::SNS::Subscription","Properties":{"Endpoint":{"Fn::GetAtt":["NotificationChannelFanoutJiraChannelFunction3F2DD876","Arn"]},"FilterPolicy":{"channelType":["jira"]},"Protocol":"lambda","RedrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["NotificationChannelFanoutJiraChannelDLQ769B8BAA","Arn"]}},"TopicArn":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}}},"NotificationChannelFanoutJiraChannelDLQAlarmCFD396E3":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmDescription":"Automated Security Response on AWS: Messages in the jira notification channel DLQ. The channel Lambda failed to deliver notifications after SNS retries. Inspect the DLQ and CloudWatch logs for the JiraChannel Lambda.","AlarmName":"SO0111-ASR-JiraChannelDLQ","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"Dimensions":[{"Name":"QueueName","Value":{"Fn::GetAtt":["NotificationChannelFanoutJiraChannelDLQ769B8BAA","QueueName"]}}],"EvaluationPeriods":1,"MetricName":"ApproximateNumberOfMessagesVisible","Namespace":"AWS/SQS","Period":60,"Statistic":"Sum","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":1,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}}},"NotificationChannelFanoutServiceNowChannelDLQ7B5247F6":{"Type":"AWS::SQS::Queue","Properties":{"KmsDataKeyReusePeriodSeconds":3600,"KmsMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"MessageRetentionPeriod":1209600,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"NotificationChannelFanoutServiceNowChannelDLQPolicyA9219039":{"Type":"AWS::SQS::QueuePolicy","Properties":{"PolicyDocument":{"Statement":[{"Action":"sqs:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["NotificationChannelFanoutServiceNowChannelDLQ7B5247F6","Arn"]}},{"Action":"sqs:SendMessage","Condition":{"ArnEquals":{"aws:SourceArn":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}}},"Effect":"Allow","Principal":{"Service":"sns.amazonaws.com"},"Resource":{"Fn::GetAtt":["NotificationChannelFanoutServiceNowChannelDLQ7B5247F6","Arn"]}}],"Version":"2012-10-17"},"Queues":[{"Ref":"NotificationChannelFanoutServiceNowChannelDLQ7B5247F6"}]}},"NotificationChannelFanoutServiceNowChannelFunctionLogGroup1C860ACD":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"NotificationChannelFanoutServiceNowChannelFunctionServiceRole8DBC950A":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"ManagedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]}},"NotificationChannelFanoutServiceNowChannelFunctionServiceRoleDefaultPolicy6802EFA2":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords"],"Effect":"Allow","Resource":"*"},{"Action":"kms:Decrypt","Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}},{"Action":"secretsmanager:GetSecretValue","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":secretsmanager:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":secret:asr/notifications/*"]]}},{"Action":"ssm:GetParameter","Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/anonymous_metrics_uuid"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/metrics_uuid"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/version"]]}]},{"Action":"ssm:PutParameter","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/metrics_uuid"]]}},{"Action":"ssm:DeleteParameter","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/anonymous_metrics_uuid"]]}},{"Action":["s3:GetObject*","s3:GetBucket*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]},"/*"]]}]},{"Action":["kms:Decrypt","kms:DescribeKey"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}}],"Version":"2012-10-17"},"PolicyName":"NotificationChannelFanoutServiceNowChannelFunctionServiceRoleDefaultPolicy6802EFA2","Roles":[{"Ref":"NotificationChannelFanoutServiceNowChannelFunctionServiceRole8DBC950A"}]}},"NotificationChannelFanoutServiceNowChannelFunction0BC6F8CF":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/asr_lambdas-c8b90e4c.zip"},"Environment":{"Variables":{"SOLUTION_TRADEMARKEDNAME":"automated-security-response-on-aws","POWERTOOLS_LOG_LEVEL":"INFO","AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"AWS_PARTITION":{"Ref":"AWS::Partition"},"STACK_ID":{"Ref":"AWS::StackId"},"RESOURCE_NAME_PREFIX":"SO0111","WEB_UI_URL":{"Fn::If":["webUIEnabled",{"Fn::Join":["",["https://",{"Fn::GetAtt":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB","Outputs.FrontendDistributionDomainName"]}]]},{"Ref":"AWS::NoValue"}]},"IAC_TEMPLATES_BUCKET":{"Ref":"IaCTemplatesBucketResourceF771E4F3"},"POWERTOOLS_SERVICE_NAME":"notification_servicenow_channel"}},"FunctionName":"SO0111-ASR-ServiceNowChannel","Handler":"notification-channels/servicenow-channel.handler","LoggingConfig":{"LogGroup":{"Ref":"NotificationChannelFanoutServiceNowChannelFunctionLogGroup1C860ACD"}},"MemorySize":256,"ReservedConcurrentExecutions":10,"Role":{"Fn::GetAtt":["NotificationChannelFanoutServiceNowChannelFunctionServiceRole8DBC950A","Arn"]},"Runtime":"nodejs24.x","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":60,"TracingConfig":{"Mode":"Active"}},"DependsOn":["NotificationChannelFanoutServiceNowChannelFunctionServiceRoleDefaultPolicy6802EFA2","NotificationChannelFanoutServiceNowChannelFunctionServiceRole8DBC950A"],"Metadata":{"guard":{"SuppressedRules":["LAMBDA_INSIDE_VPC","CFN_NO_EXPLICIT_RESOURCE_NAMES"]}}},"NotificationChannelFanoutServiceNowChannelFunctionAllowInvokeSolutionDeployStackNotificationDispatcherConstructChannelFanoutTopic0F8E3E9E703E7C15":{"Type":"AWS::Lambda::Permission","Properties":{"Action":"lambda:InvokeFunction","FunctionName":{"Fn::GetAtt":["NotificationChannelFanoutServiceNowChannelFunction0BC6F8CF","Arn"]},"Principal":"sns.amazonaws.com","SourceArn":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}}},"NotificationChannelFanoutServiceNowChannelFunctionChannelFanoutTopicC473FACE":{"Type":"AWS::SNS::Subscription","Properties":{"Endpoint":{"Fn::GetAtt":["NotificationChannelFanoutServiceNowChannelFunction0BC6F8CF","Arn"]},"FilterPolicy":{"channelType":["servicenow"]},"Protocol":"lambda","RedrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["NotificationChannelFanoutServiceNowChannelDLQ7B5247F6","Arn"]}},"TopicArn":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}}},"NotificationChannelFanoutServiceNowChannelDLQAlarmDDA212EC":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmDescription":"Automated Security Response on AWS: Messages in the servicenow notification channel DLQ. The channel Lambda failed to deliver notifications after SNS retries. Inspect the DLQ and CloudWatch logs for the ServiceNowChannel Lambda.","AlarmName":"SO0111-ASR-ServiceNowChannelDLQ","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"Dimensions":[{"Name":"QueueName","Value":{"Fn::GetAtt":["NotificationChannelFanoutServiceNowChannelDLQ7B5247F6","QueueName"]}}],"EvaluationPeriods":1,"MetricName":"ApproximateNumberOfMessagesVisible","Namespace":"AWS/SQS","Period":60,"Statistic":"Sum","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":1,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}}},"NotificationChannelFanoutSnsChannelDLQ12AFEB0F":{"Type":"AWS::SQS::Queue","Properties":{"KmsDataKeyReusePeriodSeconds":3600,"KmsMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"MessageRetentionPeriod":1209600,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"NotificationChannelFanoutSnsChannelDLQPolicy1606FC1C":{"Type":"AWS::SQS::QueuePolicy","Properties":{"PolicyDocument":{"Statement":[{"Action":"sqs:*","Condition":{"Bool":{"aws:SecureTransport":"false"}},"Effect":"Deny","Principal":{"AWS":"*"},"Resource":{"Fn::GetAtt":["NotificationChannelFanoutSnsChannelDLQ12AFEB0F","Arn"]}},{"Action":"sqs:SendMessage","Condition":{"ArnEquals":{"aws:SourceArn":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}}},"Effect":"Allow","Principal":{"Service":"sns.amazonaws.com"},"Resource":{"Fn::GetAtt":["NotificationChannelFanoutSnsChannelDLQ12AFEB0F","Arn"]}}],"Version":"2012-10-17"},"Queues":[{"Ref":"NotificationChannelFanoutSnsChannelDLQ12AFEB0F"}]}},"NotificationChannelFanoutSnsChannelFunctionLogGroup63EC719F":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"NotificationChannelFanoutSnsChannelFunctionServiceRoleAF73A299":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"ManagedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]}},"NotificationChannelFanoutSnsChannelFunctionServiceRoleDefaultPolicy260A305B":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords"],"Effect":"Allow","Resource":"*"},{"Action":"kms:Decrypt","Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}},{"Action":"sns:Publish","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":sns:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":*"]]}},{"Action":["kms:GenerateDataKey","kms:Decrypt"],"Condition":{"StringEquals":{"kms:ViaService":{"Fn::Join":["",["sns.",{"Ref":"AWS::Region"},".amazonaws.com"]]}}},"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":kms:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":key/*"]]}},{"Action":"ssm:GetParameter","Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/anonymous_metrics_uuid"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/metrics_uuid"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/version"]]}]},{"Action":"ssm:PutParameter","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/metrics_uuid"]]}},{"Action":"ssm:DeleteParameter","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/anonymous_metrics_uuid"]]}},{"Action":["s3:GetObject*","s3:GetBucket*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]},"/*"]]}]},{"Action":["kms:Decrypt","kms:DescribeKey"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}}],"Version":"2012-10-17"},"PolicyName":"NotificationChannelFanoutSnsChannelFunctionServiceRoleDefaultPolicy260A305B","Roles":[{"Ref":"NotificationChannelFanoutSnsChannelFunctionServiceRoleAF73A299"}]}},"NotificationChannelFanoutSnsChannelFunctionE7D5D0FD":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/asr_lambdas-c8b90e4c.zip"},"Environment":{"Variables":{"SOLUTION_TRADEMARKEDNAME":"automated-security-response-on-aws","POWERTOOLS_LOG_LEVEL":"INFO","AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"AWS_PARTITION":{"Ref":"AWS::Partition"},"STACK_ID":{"Ref":"AWS::StackId"},"RESOURCE_NAME_PREFIX":"SO0111","WEB_UI_URL":{"Fn::If":["webUIEnabled",{"Fn::Join":["",["https://",{"Fn::GetAtt":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB","Outputs.FrontendDistributionDomainName"]}]]},{"Ref":"AWS::NoValue"}]},"IAC_TEMPLATES_BUCKET":{"Ref":"IaCTemplatesBucketResourceF771E4F3"},"POWERTOOLS_SERVICE_NAME":"notification_sns_channel"}},"FunctionName":"SO0111-ASR-SnsChannel","Handler":"notification-channels/sns-channel.handler","LoggingConfig":{"LogGroup":{"Ref":"NotificationChannelFanoutSnsChannelFunctionLogGroup63EC719F"}},"MemorySize":256,"ReservedConcurrentExecutions":10,"Role":{"Fn::GetAtt":["NotificationChannelFanoutSnsChannelFunctionServiceRoleAF73A299","Arn"]},"Runtime":"nodejs24.x","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":30,"TracingConfig":{"Mode":"Active"}},"DependsOn":["NotificationChannelFanoutSnsChannelFunctionServiceRoleDefaultPolicy260A305B","NotificationChannelFanoutSnsChannelFunctionServiceRoleAF73A299"],"Metadata":{"guard":{"SuppressedRules":["LAMBDA_INSIDE_VPC","CFN_NO_EXPLICIT_RESOURCE_NAMES"]}}},"NotificationChannelFanoutSnsChannelFunctionAllowInvokeSolutionDeployStackNotificationDispatcherConstructChannelFanoutTopic0F8E3E9EE508C8AF":{"Type":"AWS::Lambda::Permission","Properties":{"Action":"lambda:InvokeFunction","FunctionName":{"Fn::GetAtt":["NotificationChannelFanoutSnsChannelFunctionE7D5D0FD","Arn"]},"Principal":"sns.amazonaws.com","SourceArn":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}}},"NotificationChannelFanoutSnsChannelFunctionChannelFanoutTopic2B568761":{"Type":"AWS::SNS::Subscription","Properties":{"Endpoint":{"Fn::GetAtt":["NotificationChannelFanoutSnsChannelFunctionE7D5D0FD","Arn"]},"FilterPolicy":{"channelType":["sns"]},"Protocol":"lambda","RedrivePolicy":{"deadLetterTargetArn":{"Fn::GetAtt":["NotificationChannelFanoutSnsChannelDLQ12AFEB0F","Arn"]}},"TopicArn":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}}},"NotificationChannelFanoutSnsChannelDLQAlarm0B8609CC":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmDescription":"Automated Security Response on AWS: Messages in the sns notification channel DLQ. The channel Lambda failed to deliver notifications after SNS retries. Inspect the DLQ and CloudWatch logs for the SnsChannel Lambda.","AlarmName":"SO0111-ASR-SnsChannelDLQ","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"Dimensions":[{"Name":"QueueName","Value":{"Fn::GetAtt":["NotificationChannelFanoutSnsChannelDLQ12AFEB0F","QueueName"]}}],"EvaluationPeriods":1,"MetricName":"ApproximateNumberOfMessagesVisible","Namespace":"AWS/SQS","Period":60,"Statistic":"Sum","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":1,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}}},"BatchProcessorConstructBatchProcessorFunctionLogGroupB8160CA8":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"BatchProcessorConstructBatchProcessorFunctionServiceRole5A81E1CD":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"ManagedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]}},"BatchProcessorConstructBatchProcessorFunctionServiceRoleDefaultPolicyCF5E28F1":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords"],"Effect":"Allow","Resource":"*"},{"Action":"kms:Decrypt","Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},"/index/*"]]}]},{"Action":"dynamodb:Query","Effect":"Allow","Resource":{"Fn::Join":["",[{"Fn::GetAtt":["NotificationConfigTable85915FE5","Arn"]},"/index/*"]]}},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:BatchWriteItem","dynamodb:PutItem","dynamodb:UpdateItem","dynamodb:DeleteItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["NotificationBatchesTable7022E304","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["NotificationBatchesTable7022E304","Arn"]},"/index/*"]]}]},{"Action":["kms:Decrypt","kms:DescribeKey","kms:Encrypt","kms:ReEncrypt*","kms:GenerateDataKey*"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["NotificationBatchesTable7022E304","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["NotificationBatchesTable7022E304","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ResourceFiltersTable4266014F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ResourceFiltersTable4266014F","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ResourceFiltersTable4266014F","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ResourceFiltersTable4266014F","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:BatchWriteItem","dynamodb:PutItem","dynamodb:UpdateItem","dynamodb:DeleteItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ASRFindingsTable3FD52B9C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ASRFindingsTable3FD52B9C","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ASRFindingsTable3FD52B9C","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ASRFindingsTable3FD52B9C","Arn"]},"/index/*"]]}]},{"Action":"dynamodb:Query","Effect":"Allow","Resource":{"Fn::Join":["",[{"Fn::GetAtt":["ASRFindingsTable3FD52B9C","Arn"]},"/index/*"]]}},{"Action":["dynamodb:BatchGetItem","dynamodb:Query","dynamodb:GetItem","dynamodb:Scan","dynamodb:ConditionCheckItem","dynamodb:BatchWriteItem","dynamodb:PutItem","dynamodb:UpdateItem","dynamodb:DeleteItem","dynamodb:DescribeTable"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ASRRemediationHistoryTable3CA12E73","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ASRRemediationHistoryTable3CA12E73","Arn"]},"/index/*"]]}]},{"Action":["dynamodb:GetRecords","dynamodb:GetShardIterator"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["ASRRemediationHistoryTable3CA12E73","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["ASRRemediationHistoryTable3CA12E73","Arn"]},"/index/*"]]}]},{"Action":"dynamodb:Query","Effect":"Allow","Resource":{"Fn::Join":["",[{"Fn::GetAtt":["ASRRemediationHistoryTable3CA12E73","Arn"]},"/index/*"]]}},{"Action":"states:StartExecution","Effect":"Allow","Resource":{"Ref":"orchestratorStateMachine77C3F8FB"}},{"Action":"securityhub:GetFindings","Effect":"Allow","Resource":"*"},{"Action":"sns:Publish","Effect":"Allow","Resource":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"}},{"Action":["kms:Decrypt","kms:GenerateDataKey*"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}},{"Action":"ssm:GetParameter","Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/anonymous_metrics_uuid"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/metrics_uuid"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/version"]]}]},{"Action":"ssm:PutParameter","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/metrics_uuid"]]}},{"Action":"ssm:DeleteParameter","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":ssm:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":parameter/Solutions/SO0111/anonymous_metrics_uuid"]]}},{"Action":["s3:PutObject","s3:PutObjectLegalHold","s3:PutObjectRetention","s3:PutObjectTagging","s3:PutObjectVersionTagging","s3:Abort*"],"Effect":"Allow","Resource":{"Fn::Join":["",[{"Fn::GetAtt":["CSVExportBucket8BA09C35","Arn"]},"/*"]]}},{"Action":["kms:Encrypt","kms:ReEncrypt*","kms:GenerateDataKey*","kms:Decrypt"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}},{"Action":["s3:GetObject*","s3:GetBucket*","s3:List*"],"Effect":"Allow","Resource":[{"Fn::GetAtt":["CSVExportBucket8BA09C35","Arn"]},{"Fn::Join":["",[{"Fn::GetAtt":["CSVExportBucket8BA09C35","Arn"]},"/*"]]}]},{"Action":["kms:Decrypt","kms:DescribeKey"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}}],"Version":"2012-10-17"},"PolicyName":"BatchProcessorConstructBatchProcessorFunctionServiceRoleDefaultPolicyCF5E28F1","Roles":[{"Ref":"BatchProcessorConstructBatchProcessorFunctionServiceRole5A81E1CD"}]}},"BatchProcessorConstructBatchProcessorFunction2DB27687":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/asr_lambdas-c8b90e4c.zip"},"Environment":{"Variables":{"SOLUTION_TRADEMARKEDNAME":"automated-security-response-on-aws","POWERTOOLS_SERVICE_NAME":"batch_processor","POWERTOOLS_LOG_LEVEL":"INFO","NOTIFICATION_CONFIG_TABLE_NAME":{"Ref":"NotificationConfigTable85915FE5"},"NOTIFICATION_BATCHES_TABLE_NAME":{"Ref":"NotificationBatchesTable7022E304"},"RESOURCE_FILTERS_TABLE_NAME":{"Ref":"ResourceFiltersTable4266014F"},"FINDINGS_TABLE_NAME":{"Ref":"ASRFindingsTable3FD52B9C"},"REMEDIATION_HISTORY_TABLE_NAME":{"Ref":"ASRRemediationHistoryTable3CA12E73"},"AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"STACK_ID":{"Ref":"AWS::StackId"},"CHANNEL_FANOUT_TOPIC_ARN":{"Ref":"NotificationDispatcherConstructChannelFanoutTopicDDB6FA79"},"CSV_EXPORT_BUCKET_NAME":{"Ref":"CSVExportBucket8BA09C35"},"LAMBDA_TIMEOUT_SECONDS":"300","WEB_UI_URL":{"Fn::If":["webUIEnabled",{"Fn::Join":["",["https://",{"Fn::GetAtt":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB","Outputs.FrontendDistributionDomainName"]}]]},{"Ref":"AWS::NoValue"}]},"ORCHESTRATOR_ARN":{"Ref":"orchestratorStateMachine77C3F8FB"}}},"FunctionName":"SO0111-ASR-BatchProcessor","Handler":"batch-processor/batchProcessor.handler","KmsKeyArn":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"LoggingConfig":{"LogGroup":{"Ref":"BatchProcessorConstructBatchProcessorFunctionLogGroupB8160CA8"}},"MemorySize":1024,"ReservedConcurrentExecutions":1,"Role":{"Fn::GetAtt":["BatchProcessorConstructBatchProcessorFunctionServiceRole5A81E1CD","Arn"]},"Runtime":"nodejs24.x","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":300,"TracingConfig":{"Mode":"Active"}},"DependsOn":["BatchProcessorConstructBatchProcessorFunctionServiceRoleDefaultPolicyCF5E28F1","BatchProcessorConstructBatchProcessorFunctionServiceRole5A81E1CD"],"Metadata":{"guard":{"SuppressedRules":["LAMBDA_INSIDE_VPC","CFN_NO_EXPLICIT_RESOURCE_NAMES"]}}},"BatchProcessorConstructBatchProcessorSecurityHubV2Policy92B028C7":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":"securityhub:DescribeSecurityHubV2","Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"PolicyName":"BatchProcessorConstructBatchProcessorSecurityHubV2Policy92B028C7","Roles":[{"Ref":"BatchProcessorConstructBatchProcessorFunctionServiceRole5A81E1CD"}]},"Condition":"IsCommercialPartition"},"BatchProcessorConstructBatchProcessorScheduleA1A24D02":{"Type":"AWS::Events::Rule","Properties":{"Description":"Triggers the ASR Batch Processor Lambda every 5 minutes to process ready notification batches","Name":"SO0111-ASR-BatchProcessorSchedule","ScheduleExpression":"rate(5 minutes)","State":"ENABLED","Targets":[{"Arn":{"Fn::GetAtt":["BatchProcessorConstructBatchProcessorFunction2DB27687","Arn"]},"Id":"Target0"}]}},"BatchProcessorConstructBatchProcessorScheduleAllowEventRuleSolutionDeployStackBatchProcessorConstructBatchProcessorFunction488FF8FA5C133618":{"Type":"AWS::Lambda::Permission","Properties":{"Action":"lambda:InvokeFunction","FunctionName":{"Fn::GetAtt":["BatchProcessorConstructBatchProcessorFunction2DB27687","Arn"]},"Principal":"events.amazonaws.com","SourceArn":{"Fn::GetAtt":["BatchProcessorConstructBatchProcessorScheduleA1A24D02","Arn"]}}},"EmailTopicCleanupEmailTopicCleanupPolicy44DEBCEA":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":logs:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":log-group:*"]]}},{"Action":"sns:ListTopics","Effect":"Allow","Resource":"*"},{"Action":"sns:DeleteTopic","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":sns:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":asr-notifications-*"]]}}],"Version":"2012-10-17"},"PolicyName":"SO0111-ASR_EmailTopicCleanup","Roles":[{"Ref":"EmailTopicCleanupEmailTopicCleanupRole5E48CD53"}]},"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W12","reason":"Resource * is required for sns:ListTopics (does not support resource-level permissions) and for CloudWatch Logs."}]}}},"EmailTopicCleanupEmailTopicCleanupRole5E48CD53":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"Description":"Lambda role for ASR email topic cleanup custom resource","RoleName":"SO0111-ASR-EmailTopicCleanup","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W28","reason":"Static name chosen intentionally for email topic cleanup function."}]},"guard":{"SuppressedRules":["IAM_NO_INLINE_POLICY_CHECK"]}}},"EmailTopicCleanupEmailTopicCleanupRoleDefaultPolicy34350E68":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"PolicyName":"EmailTopicCleanupEmailTopicCleanupRoleDefaultPolicy34350E68","Roles":[{"Ref":"EmailTopicCleanupEmailTopicCleanupRole5E48CD53"}]}},"EmailTopicCleanupEmailTopicCleanupLogGroup51819AD7":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"EmailTopicCleanupEmailTopicCleanupLambda1EE2852A":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/asr_lambdas-c8b90e4c.zip"},"Description":"Custom resource to delete ASR email notification SNS topics on stack deletion","Environment":{"Variables":{"POWERTOOLS_SERVICE_NAME":"email_topic_cleanup","POWERTOOLS_LOG_LEVEL":"INFO","TOPIC_PREFIX":"asr-notifications-"}},"FunctionName":"SO0111-ASR-EmailTopicCleanup","Handler":"notification-channels/email-topic-cleanup-handler.handler","LoggingConfig":{"LogGroup":{"Ref":"EmailTopicCleanupEmailTopicCleanupLogGroup51819AD7"}},"MemorySize":128,"Role":{"Fn::GetAtt":["EmailTopicCleanupEmailTopicCleanupRole5E48CD53","Arn"]},"Runtime":"nodejs24.x","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":300,"TracingConfig":{"Mode":"Active"}},"DependsOn":["EmailTopicCleanupEmailTopicCleanupRoleDefaultPolicy34350E68","EmailTopicCleanupEmailTopicCleanupRole5E48CD53"],"Metadata":{"cfn_nag":{"rules_to_suppress":[{"id":"W58","reason":"False positive. Access is provided via a policy"},{"id":"W89","reason":"There is no need to run this lambda in a VPC"},{"id":"W92","reason":"There is no need for Reserved Concurrency"}]},"guard":{"SuppressedRules":["LAMBDA_INSIDE_VPC","LAMBDA_CONCURRENCY_CHECK"]}}},"EmailTopicCleanupEmailTopicCleanupResource25A3EF4D":{"Type":"Custom::EmailTopicCleanup","Properties":{"ServiceToken":{"Fn::GetAtt":["EmailTopicCleanupEmailTopicCleanupLambda1EE2852A","Arn"]}},"DependsOn":["EmailTopicCleanupEmailTopicCleanupPolicy44DEBCEA","EmailTopicCleanupEmailTopicCleanupRoleDefaultPolicy34350E68","EmailTopicCleanupEmailTopicCleanupRole5E48CD53"],"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"RemediationConfigPolicy4FBFA72E":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["logs:CreateLogGroup","logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":"*"},{"Action":["dynamodb:PutItem","dynamodb:UpdateItem","dynamodb:DeleteItem","dynamodb:Scan","dynamodb:BatchWriteItem"],"Effect":"Allow","Resource":{"Fn::GetAtt":["RemediationConfigTable24F19C3B","Arn"]}},{"Action":"s3:GetObject","Effect":"Allow","Resource":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::solutions-reference/automated-security-response-on-aws/v4.1.0/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::solutions-reference-cn/automated-security-response-on-aws/v4.1.0/*"]]},{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":s3:::solutions-reference-us-gov/automated-security-response-on-aws/v4.1.0/*"]]}]},{"Action":["securityhub:BatchGetSecurityControls","securityhub:DescribeStandardsControls"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"PolicyName":"SO0111-ASR_Remediation_Config","Roles":[{"Ref":"RemediationConfigRoleE527BA47"}]}},"RemediationConfigRoleE527BA47":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"Description":"Lambda role for remediation configuration table population","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]}},"RemediationConfigRoleDefaultPolicy922B08B0":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"PolicyName":"RemediationConfigRoleDefaultPolicy922B08B0","Roles":[{"Ref":"RemediationConfigRoleE527BA47"}]}},"RemediationConfigProviderLogGroup424DAB56":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"RemediationConfigProvider0B1658AD":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/remediation_config_provider-d30255c5.zip"},"Description":"Custom resource to populate remediation configuration table","Environment":{"Variables":{"POWERTOOLS_SERVICE_NAME":"action_target_provider","POWERTOOLS_LOG_LEVEL":"INFO","POWERTOOLS_LOGGER_LOG_EVENT":"false","POWERTOOLS_TRACER_CAPTURE_RESPONSE":"true","POWERTOOLS_TRACER_CAPTURE_ERROR":"true","SOLUTION_ID":"SO0111","SOLUTION_VERSION":"v4.1.0","SOLUTION_TMN":"automated-security-response-on-aws","REFERENCE_BUCKET_NAME":"solutions-reference","REFERENCE_BUCKET_PARTITION":{"Ref":"AWS::Partition"},"CUSTOM_REFERENCE_BUCKET_REGION":"","AWS_ACCOUNT_ID":{"Ref":"AWS::AccountId"},"STACK_ID":{"Ref":"AWS::StackId"}}},"FunctionName":"SO0111-ASR-RemediationConfigProvider","Handler":"remediation_config_provider.lambda_handler","Layers":[{"Ref":"ASRLambdaLayerDAD507E4"}],"LoggingConfig":{"LogGroup":{"Ref":"RemediationConfigProviderLogGroup424DAB56"}},"MemorySize":256,"Role":{"Fn::GetAtt":["RemediationConfigRoleE527BA47","Arn"]},"Runtime":"python3.11","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":300,"TracingConfig":{"Mode":"Active"}},"DependsOn":["RemediationConfigRoleDefaultPolicy922B08B0","RemediationConfigRoleE527BA47"],"Metadata":{"guard":{"SuppressedRules":["LAMBDA_INSIDE_VPC","LAMBDA_CONCURRENCY_CHECK"]}}},"RemediationConfigResource":{"Type":"AWS::CloudFormation::CustomResource","Properties":{"ServiceToken":{"Fn::GetAtt":["RemediationConfigProvider0B1658AD","Arn"]},"TableName":{"Ref":"RemediationConfigTable24F19C3B"},"SolutionVersion":"v4.1.0","DeployTimestamp":"2026-10-13T10:14:57.565Z"},"DependsOn":["RemediationConfigTable24F19C3B"],"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"MigrationAutoRemediationPolicyF93FB871":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":"events:ListRules","Effect":"Allow","Resource":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":events:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":rule/*"]]}},{"Action":"dynamodb:UpdateItem","Effect":"Allow","Resource":{"Fn::GetAtt":["RemediationConfigTable24F19C3B","Arn"]}},{"Action":"sns:Publish","Effect":"Allow","Resource":{"Ref":"SHARRTopic229CFB9E"}},{"Action":["kms:GenerateDataKey","kms:Decrypt"],"Effect":"Allow","Resource":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]}}],"Version":"2012-10-17"},"PolicyName":"SO0111-ASR_Migration_AutoRemediation","Roles":[{"Ref":"MigrationAutoRemediationRole6970DE93"}]}},"MigrationAutoRemediationRole6970DE93":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"Description":"Lambda role for v2 auto-remediation migration","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]}},"MigrationAutoRemediationRoleDefaultPolicyD05DB746":{"Type":"AWS::IAM::Policy","Properties":{"PolicyDocument":{"Statement":[{"Action":["logs:CreateLogStream","logs:PutLogEvents"],"Effect":"Allow","Resource":{"Fn::GetAtt":["MigrationAutoRemediationProviderLogGroup1FCAD736","Arn"]}},{"Action":["xray:PutTraceSegments","xray:PutTelemetryRecords"],"Effect":"Allow","Resource":"*"}],"Version":"2012-10-17"},"PolicyName":"MigrationAutoRemediationRoleDefaultPolicyD05DB746","Roles":[{"Ref":"MigrationAutoRemediationRole6970DE93"}]}},"MigrationAutoRemediationProviderLogGroup1FCAD736":{"Type":"AWS::Logs::LogGroup","Properties":{"RetentionInDays":3653,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"UpdateReplacePolicy":"Retain","DeletionPolicy":"Retain","Metadata":{"guard":{"SuppressedRules":["CLOUDWATCH_LOG_GROUP_ENCRYPTED"]}}},"MigrationAutoRemediationProviderEE90B4AC":{"Type":"AWS::Lambda::Function","Properties":{"Code":{"S3Bucket":{"Fn::Join":["",["solutions-",{"Ref":"AWS::Region"}]]},"S3Key":"automated-security-response-on-aws/v4.1.0/lambda/migration_auto_remediation_provider-e22e5601.zip"},"Description":"Migrates v2 EventBridge auto-remediation state to v3/v4 DynamoDB config table","Environment":{"Variables":{"POWERTOOLS_SERVICE_NAME":"migration_auto_remediation_provider","POWERTOOLS_LOG_LEVEL":"INFO","POWERTOOLS_LOGGER_LOG_EVENT":"false","POWERTOOLS_TRACER_CAPTURE_RESPONSE":"true","POWERTOOLS_TRACER_CAPTURE_ERROR":"true","MIGRATION_NOTIFICATION_TOPIC_ARN":{"Ref":"SHARRTopic229CFB9E"}}},"FunctionName":"SO0111-ASR-MigrationAutoRemediation","Handler":"migration_auto_remediation_provider.lambda_handler","Layers":[{"Ref":"ASRLambdaLayerDAD507E4"}],"LoggingConfig":{"LogGroup":{"Ref":"MigrationAutoRemediationProviderLogGroup1FCAD736"}},"MemorySize":256,"Role":{"Fn::GetAtt":["MigrationAutoRemediationRole6970DE93","Arn"]},"Runtime":"python3.11","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Timeout":120,"TracingConfig":{"Mode":"Active"}},"DependsOn":["MigrationAutoRemediationRoleDefaultPolicyD05DB746","MigrationAutoRemediationRole6970DE93"],"Metadata":{"guard":{"SuppressedRules":["LAMBDA_INSIDE_VPC","LAMBDA_CONCURRENCY_CHECK"]}}},"MigrationAutoRemediationResource":{"Type":"AWS::CloudFormation::CustomResource","Properties":{"ServiceToken":{"Fn::GetAtt":["MigrationAutoRemediationProviderEE90B4AC","Arn"]},"TableName":{"Ref":"RemediationConfigTable24F19C3B"},"DeployTimestamp":"2026-10-13T10:14:57.567Z"},"DependsOn":["RemediationConfigResource"],"UpdateReplacePolicy":"Delete","DeletionPolicy":"Delete"},"ASRSendCloudWatchMetricsD6C71A5B":{"Type":"AWS::SSM::Parameter","Properties":{"Description":"Flag to enable or disable sending cloudwatch metrics.","Name":"/Solutions/SO0111/sendCloudwatchMetrics","Tags":{"Solutions:SolutionID":"SO0111","Solutions:SolutionName":"automated-security-response-on-aws","Solutions:SolutionVersion":"v4.1.0"},"Type":"String","Value":"yes"},"Condition":"isUsingCloudWatchMetrics"},"ASRAlarmTopic7CEFBDF9":{"Type":"AWS::SNS::Topic","Properties":{"DisplayName":"ASR Alarm Topic (SO0111)","KmsMasterKeyId":{"Fn::GetAtt":["SHARRkeyE6BD0F56","Arn"]},"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"TopicName":"SO0111-ASR_Alarm_Topic"},"Condition":"isUsingCloudWatchMetricsAlarms"},"ASRAlarmTopicPolicyFA33FC24":{"Type":"AWS::SNS::TopicPolicy","Properties":{"PolicyDocument":{"Statement":[{"Action":"sns:Publish","Condition":{"ArnLike":{"aws:SourceArn":{"Fn::GetAtt":["IaCTemplatesBucketResourceF771E4F3","Arn"]}}},"Effect":"Allow","Principal":{"Service":"s3.amazonaws.com"},"Resource":{"Ref":"ASRAlarmTopic7CEFBDF9"},"Sid":"0"}],"Version":"2012-10-17"},"Topics":[{"Ref":"ASRAlarmTopic7CEFBDF9"}]},"Condition":"isUsingCloudWatchMetricsAlarms"},"NoRemediationErrorAlarm20FFD8DF":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"Remediation failed with NO_RUNBOOK result. This indicates a remediation was attempted and an ASR runbook could not be found. This can happen if the member stack is not deployed in the account & region where the finding was generated, or ASR does not support the control ID.","AlarmName":"ASR-NoRunbook","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Id":"m1","Label":"No Remediation","MetricStat":{"Metric":{"Dimensions":[{"Name":"Outcome","Value":"NO_RUNBOOK"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Sum"},"ReturnData":true}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":1,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"isUsingCloudWatchMetricsAlarms"},"FailedAssumeRoleAlarm06397028":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"ASR Runbook Failed to assume role in an account. This indicates that a remediation was attempted in an account that does not have ASR deployed.","AlarmName":"ASR-RunbookAssumeRoleFailure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Id":"m1","Label":"Runbook Assume Role Failures","MetricStat":{"Metric":{"MetricName":"AssumeRoleFailure","Namespace":"ASR"},"Period":86400,"Stat":"Sum"},"ReturnData":true}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":1,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"isUsingCloudWatchMetricsAlarms"},"PreProcessorDLQAlarm908FB774":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"Automated Security Response on AWS: Messages have been sent to the Pre-processor Dead Letter Queue. This indicates that the Pre-processor Lambda function failed to process Security Hub findings after multiple retry attempts.","AlarmName":"ASR-PreProcessorDLQ","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Id":"m1","Label":"Automated Security Response on AWS: Pre-processor DLQ Messages","MetricStat":{"Metric":{"Dimensions":[{"Name":"QueueName","Value":{"Fn::GetAtt":["PreProcessorConstructPreProcessorDLQC3A75225","QueueName"]}}],"MetricName":"ApproximateNumberOfMessagesVisible","Namespace":"AWS/SQS"},"Period":60,"Stat":"Maximum"},"ReturnData":true}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":1,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"isUsingCloudWatchMetricsAlarms"},"FindingsTableItemCollectionLimitAlarm0C6A4FCF":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"Automated Security Response on AWS: The Pre-processor dropped Security Hub findings because the findings table partition for their control has reached the DynamoDB 10 GB item collection limit. New findings for that control are not stored or remediated until the partition shrinks. The dropped finding ids are in the Pre-processor log; delete or archive stale items for that findingType to restore ingestion.","AlarmName":"ASR-FindingsTableItemCollectionLimit","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Id":"m1","Label":"Automated Security Response on AWS: Findings dropped (findings table partition full)","MetricStat":{"Metric":{"Dimensions":[{"Name":"Source","Value":"PreProcessor"}],"MetricName":"FindingsTableItemCollectionLimitExceeded","Namespace":"ASR"},"Period":300,"Stat":"Sum"},"ReturnData":true}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":1,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"isUsingCloudWatchMetricsAlarms"},"NotificationDLQAlarmC1060D21":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"Automated Security Response on AWS: Messages have been sent to the notification dispatcher Dead Letter Queue. This indicates that the notification dispatcher Lambda function failed to deliver notification events after multiple retry attempts.","AlarmName":"ASR-NotificationDLQ","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Id":"m1","Label":"Automated Security Response on AWS: Notification dispatcher DLQ Messages","MetricStat":{"Metric":{"Dimensions":[{"Name":"QueueName","Value":{"Fn::GetAtt":["NotificationDispatcherConstructNotificationDLQ5AF0A402","QueueName"]}}],"MetricName":"ApproximateNumberOfMessagesVisible","Namespace":"AWS/SQS"},"Period":60,"Stat":"Maximum"},"ReturnData":true}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":1,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"isUsingCloudWatchMetricsAlarms"},"SchedulingDLQAlarmFD8EB77D":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"Automated Security Response on AWS: Messages have been sent to the remediation scheduling Dead Letter Queue. This indicates that scheduled remediations failed to reach the Orchestrator after multiple retry attempts.","AlarmName":"ASR-SchedulingDLQ","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Id":"m1","Label":"Automated Security Response on AWS: Scheduling DLQ Messages","MetricStat":{"Metric":{"Dimensions":[{"Name":"QueueName","Value":{"Fn::GetAtt":["deadLetterSchedulingQueue9BCE9EA8","QueueName"]}}],"MetricName":"ApproximateNumberOfMessagesVisible","Namespace":"AWS/SQS"},"Period":60,"Stat":"Maximum"},"ReturnData":true}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":1,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"isUsingCloudWatchMetricsAlarms"},"SynchronizationErrorAlarmD891B871":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"Automated Security Response on AWS: The synchronization Lambda function has failed. This indicates that the synchronization process for Security Hub findings may not be working correctly and findings displayed in the UI may contain outdated information. Please see the function's log group for more information.","AlarmName":"ASR-SynchronizationError","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Id":"m1","Label":"Synchronization Lambda Errors","MetricStat":{"Metric":{"Dimensions":[{"Name":"FunctionName","Value":{"Ref":"SynchronizationFindingsConstructSynchronizationFindingsLambda0E312918"}}],"MetricName":"Errors","Namespace":"AWS/Lambda"},"Period":300,"Stat":"Sum"},"ReturnData":true}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":1,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"isUsingCloudWatchMetricsAlarms"},"RollbackRateLimitAlarm99E93693":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"Automated Security Response on AWS: Unusual rollback activity detected. The daily rollback count exceeded the configured threshold, which may indicate unauthorized or automated rollback abuse.","AlarmName":"ASR-RollbackRateLimit","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Id":"m1","Label":"Daily Rollback Executions","MetricStat":{"Metric":{"Dimensions":[{"Name":"Outcome","Value":"Success"}],"MetricName":"RollbackExecutionOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Sum"},"ReturnData":true}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RollbackRateLimitThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"rollbackAlarmEnabled"},"SnapshotCaptureFailureAlarm00B4291C":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"Automated Security Response on AWS: A pre-remediation snapshot capture failed, so the affected remediation is not rollback-capable. Remediation still proceeds (fail-open); this alarm surfaces the loss of rollback coverage.","AlarmName":"ASR-Rollback-SnapshotCaptureFailure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Id":"m1","Label":"Snapshot Capture Failures","MetricStat":{"Metric":{"MetricName":"SnapshotCaptureFailure","Namespace":"ASR"},"Period":300,"Stat":"Sum"},"ReturnData":true}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":1,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"rollbackAlarmEnabled"},"RollbackExecutionFailureAlarmD7966D4D":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"Automated Security Response on AWS: More than 20% of rollback executions failed over a 15-minute window. This can indicate a broken rollback path, missing member-account permissions, or snapshot drift.","AlarmName":"ASR-Rollback-ExecutionFailureRate","ComparisonOperator":"GreaterThanThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"IF((FILL(failed,0) + FILL(succeeded,0)) >= 3, 100 * FILL(failed,0) / (FILL(failed,0) + FILL(succeeded,0)), 0)","Id":"expr_1","Label":"Rollback failure rate (%)","ReturnData":true},{"Id":"failed","MetricStat":{"Metric":{"Dimensions":[{"Name":"Outcome","Value":"Failed"}],"MetricName":"RollbackExecutionOutcome","Namespace":"ASR"},"Period":900,"Stat":"Sum"},"ReturnData":false},{"Id":"succeeded","MetricStat":{"Metric":{"Dimensions":[{"Name":"Outcome","Value":"Success"}],"MetricName":"RollbackExecutionOutcome","Namespace":"ASR"},"Period":900,"Stat":"Sum"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":20,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"rollbackAlarmEnabled"},"AutoScaling1remediationfailureC7E7A88A":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for AutoScaling.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-AutoScaling.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1AutoScaling1 / (m1AutoScaling1+m2AutoScaling1)) * 100","Id":"expr_1","Label":"AutoScaling.1 Failure Percentage","ReturnData":true},{"Id":"m1AutoScaling1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"AutoScaling.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2AutoScaling1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"AutoScaling.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudFront1remediationfailure98E16C0F":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudFront.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudFront.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudFront1 / (m1CloudFront1+m2CloudFront1)) * 100","Id":"expr_1","Label":"CloudFront.1 Failure Percentage","ReturnData":true},{"Id":"m1CloudFront1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudFront.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudFront1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudFront.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudFront12remediationfailure4C20F867":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudFront.12 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudFront.12-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudFront12 / (m1CloudFront12+m2CloudFront12)) * 100","Id":"expr_1","Label":"CloudFront.12 Failure Percentage","ReturnData":true},{"Id":"m1CloudFront12","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudFront.12"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudFront12","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudFront.12"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudTrail1remediationfailure5EC81199":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudTrail.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudTrail.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudTrail1 / (m1CloudTrail1+m2CloudTrail1)) * 100","Id":"expr_1","Label":"CloudTrail.1 Failure Percentage","ReturnData":true},{"Id":"m1CloudTrail1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudTrail.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudTrail1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudTrail.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudTrail2remediationfailureC4D3FD6A":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudTrail.2 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudTrail.2-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudTrail2 / (m1CloudTrail2+m2CloudTrail2)) * 100","Id":"expr_1","Label":"CloudTrail.2 Failure Percentage","ReturnData":true},{"Id":"m1CloudTrail2","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudTrail.2"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudTrail2","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudTrail.2"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudTrail3remediationfailure3F152EE6":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudTrail.3 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudTrail.3-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudTrail3 / (m1CloudTrail3+m2CloudTrail3)) * 100","Id":"expr_1","Label":"CloudTrail.3 Failure Percentage","ReturnData":true},{"Id":"m1CloudTrail3","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudTrail.3"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudTrail3","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudTrail.3"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudTrail4remediationfailure2EEBDAC7":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudTrail.4 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudTrail.4-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudTrail4 / (m1CloudTrail4+m2CloudTrail4)) * 100","Id":"expr_1","Label":"CloudTrail.4 Failure Percentage","ReturnData":true},{"Id":"m1CloudTrail4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudTrail.4"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudTrail4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudTrail.4"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudTrail5remediationfailureDD55E093":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudTrail.5 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudTrail.5-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudTrail5 / (m1CloudTrail5+m2CloudTrail5)) * 100","Id":"expr_1","Label":"CloudTrail.5 Failure Percentage","ReturnData":true},{"Id":"m1CloudTrail5","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudTrail.5"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudTrail5","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudTrail.5"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudTrail6remediationfailureE6F95F7A":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudTrail.6 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudTrail.6-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudTrail6 / (m1CloudTrail6+m2CloudTrail6)) * 100","Id":"expr_1","Label":"CloudTrail.6 Failure Percentage","ReturnData":true},{"Id":"m1CloudTrail6","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudTrail.6"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudTrail6","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudTrail.6"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudTrail7remediationfailureB9E46CED":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudTrail.7 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudTrail.7-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudTrail7 / (m1CloudTrail7+m2CloudTrail7)) * 100","Id":"expr_1","Label":"CloudTrail.7 Failure Percentage","ReturnData":true},{"Id":"m1CloudTrail7","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudTrail.7"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudTrail7","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudTrail.7"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudWatch1remediationfailureA3222459":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudWatch.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudWatch.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudWatch1 / (m1CloudWatch1+m2CloudWatch1)) * 100","Id":"expr_1","Label":"CloudWatch.1 Failure Percentage","ReturnData":true},{"Id":"m1CloudWatch1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudWatch1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudWatch2remediationfailureC6478DD1":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudWatch.2 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudWatch.2-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudWatch2 / (m1CloudWatch2+m2CloudWatch2)) * 100","Id":"expr_1","Label":"CloudWatch.2 Failure Percentage","ReturnData":true},{"Id":"m1CloudWatch2","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.2"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudWatch2","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.2"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudWatch3remediationfailureE29A880E":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudWatch.3 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudWatch.3-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudWatch3 / (m1CloudWatch3+m2CloudWatch3)) * 100","Id":"expr_1","Label":"CloudWatch.3 Failure Percentage","ReturnData":true},{"Id":"m1CloudWatch3","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.3"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudWatch3","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.3"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudWatch4remediationfailureB37F01BB":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudWatch.4 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudWatch.4-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudWatch4 / (m1CloudWatch4+m2CloudWatch4)) * 100","Id":"expr_1","Label":"CloudWatch.4 Failure Percentage","ReturnData":true},{"Id":"m1CloudWatch4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.4"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudWatch4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.4"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudWatch5remediationfailure5FFB8EE6":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudWatch.5 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudWatch.5-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudWatch5 / (m1CloudWatch5+m2CloudWatch5)) * 100","Id":"expr_1","Label":"CloudWatch.5 Failure Percentage","ReturnData":true},{"Id":"m1CloudWatch5","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.5"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudWatch5","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.5"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudWatch6remediationfailureD02B331F":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudWatch.6 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudWatch.6-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudWatch6 / (m1CloudWatch6+m2CloudWatch6)) * 100","Id":"expr_1","Label":"CloudWatch.6 Failure Percentage","ReturnData":true},{"Id":"m1CloudWatch6","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.6"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudWatch6","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.6"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudWatch7remediationfailure01058B9A":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudWatch.7 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudWatch.7-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudWatch7 / (m1CloudWatch7+m2CloudWatch7)) * 100","Id":"expr_1","Label":"CloudWatch.7 Failure Percentage","ReturnData":true},{"Id":"m1CloudWatch7","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.7"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudWatch7","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.7"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudWatch8remediationfailureA037492F":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudWatch.8 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudWatch.8-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudWatch8 / (m1CloudWatch8+m2CloudWatch8)) * 100","Id":"expr_1","Label":"CloudWatch.8 Failure Percentage","ReturnData":true},{"Id":"m1CloudWatch8","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.8"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudWatch8","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.8"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudWatch9remediationfailure562F387A":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudWatch.9 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudWatch.9-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudWatch9 / (m1CloudWatch9+m2CloudWatch9)) * 100","Id":"expr_1","Label":"CloudWatch.9 Failure Percentage","ReturnData":true},{"Id":"m1CloudWatch9","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.9"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudWatch9","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.9"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudWatch10remediationfailureA1CC894D":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudWatch.10 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudWatch.10-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudWatch10 / (m1CloudWatch10+m2CloudWatch10)) * 100","Id":"expr_1","Label":"CloudWatch.10 Failure Percentage","ReturnData":true},{"Id":"m1CloudWatch10","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.10"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudWatch10","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.10"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudWatch11remediationfailure4111C675":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudWatch.11 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudWatch.11-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudWatch11 / (m1CloudWatch11+m2CloudWatch11)) * 100","Id":"expr_1","Label":"CloudWatch.11 Failure Percentage","ReturnData":true},{"Id":"m1CloudWatch11","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.11"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudWatch11","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.11"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudWatch12remediationfailure8A3F8B50":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudWatch.12 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudWatch.12-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudWatch12 / (m1CloudWatch12+m2CloudWatch12)) * 100","Id":"expr_1","Label":"CloudWatch.12 Failure Percentage","ReturnData":true},{"Id":"m1CloudWatch12","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.12"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudWatch12","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.12"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudWatch13remediationfailure36140E73":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudWatch.13 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudWatch.13-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudWatch13 / (m1CloudWatch13+m2CloudWatch13)) * 100","Id":"expr_1","Label":"CloudWatch.13 Failure Percentage","ReturnData":true},{"Id":"m1CloudWatch13","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.13"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudWatch13","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.13"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudWatch14remediationfailure521B8DEE":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudWatch.14 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudWatch.14-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudWatch14 / (m1CloudWatch14+m2CloudWatch14)) * 100","Id":"expr_1","Label":"CloudWatch.14 Failure Percentage","ReturnData":true},{"Id":"m1CloudWatch14","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.14"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudWatch14","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.14"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CodeBuild2remediationfailure64A628E5":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CodeBuild.2 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CodeBuild.2-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CodeBuild2 / (m1CodeBuild2+m2CodeBuild2)) * 100","Id":"expr_1","Label":"CodeBuild.2 Failure Percentage","ReturnData":true},{"Id":"m1CodeBuild2","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CodeBuild.2"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CodeBuild2","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CodeBuild.2"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"Config1remediationfailureE4D16D46":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for Config.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-Config.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1Config1 / (m1Config1+m2Config1)) * 100","Id":"expr_1","Label":"Config.1 Failure Percentage","ReturnData":true},{"Id":"m1Config1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Config.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2Config1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Config.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"EC21remediationfailureA39DC3F3":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for EC2.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-EC2.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1EC21 / (m1EC21+m2EC21)) * 100","Id":"expr_1","Label":"EC2.1 Failure Percentage","ReturnData":true},{"Id":"m1EC21","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2EC21","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"EC22remediationfailure139C6D03":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for EC2.2 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-EC2.2-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1EC22 / (m1EC22+m2EC22)) * 100","Id":"expr_1","Label":"EC2.2 Failure Percentage","ReturnData":true},{"Id":"m1EC22","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.2"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2EC22","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.2"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"EC24remediationfailure05EF2E7C":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for EC2.4 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-EC2.4-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1EC24 / (m1EC24+m2EC24)) * 100","Id":"expr_1","Label":"EC2.4 Failure Percentage","ReturnData":true},{"Id":"m1EC24","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.4"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2EC24","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.4"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"EC26remediationfailure8729950E":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for EC2.6 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-EC2.6-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1EC26 / (m1EC26+m2EC26)) * 100","Id":"expr_1","Label":"EC2.6 Failure Percentage","ReturnData":true},{"Id":"m1EC26","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.6"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2EC26","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.6"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"EC27remediationfailure27FDB86C":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for EC2.7 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-EC2.7-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1EC27 / (m1EC27+m2EC27)) * 100","Id":"expr_1","Label":"EC2.7 Failure Percentage","ReturnData":true},{"Id":"m1EC27","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.7"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2EC27","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.7"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"EC28remediationfailureEFD81795":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for EC2.8 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-EC2.8-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1EC28 / (m1EC28+m2EC28)) * 100","Id":"expr_1","Label":"EC2.8 Failure Percentage","ReturnData":true},{"Id":"m1EC28","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.8"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2EC28","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.8"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"EC213remediationfailure9DCB9763":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for EC2.13 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-EC2.13-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1EC213 / (m1EC213+m2EC213)) * 100","Id":"expr_1","Label":"EC2.13 Failure Percentage","ReturnData":true},{"Id":"m1EC213","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.13"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2EC213","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.13"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"EC214remediationfailure577055FE":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for EC2.14 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-EC2.14-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1EC214 / (m1EC214+m2EC214)) * 100","Id":"expr_1","Label":"EC2.14 Failure Percentage","ReturnData":true},{"Id":"m1EC214","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.14"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2EC214","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.14"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"EC215remediationfailure4AB5BA3A":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for EC2.15 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-EC2.15-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1EC215 / (m1EC215+m2EC215)) * 100","Id":"expr_1","Label":"EC2.15 Failure Percentage","ReturnData":true},{"Id":"m1EC215","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.15"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2EC215","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.15"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"EC218remediationfailureE48F10E6":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for EC2.18 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-EC2.18-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1EC218 / (m1EC218+m2EC218)) * 100","Id":"expr_1","Label":"EC2.18 Failure Percentage","ReturnData":true},{"Id":"m1EC218","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.18"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2EC218","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.18"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"EC219remediationfailure72615DA1":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for EC2.19 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-EC2.19-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1EC219 / (m1EC219+m2EC219)) * 100","Id":"expr_1","Label":"EC2.19 Failure Percentage","ReturnData":true},{"Id":"m1EC219","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.19"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2EC219","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.19"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"EC223remediationfailureF683E720":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for EC2.23 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-EC2.23-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1EC223 / (m1EC223+m2EC223)) * 100","Id":"expr_1","Label":"EC2.23 Failure Percentage","ReturnData":true},{"Id":"m1EC223","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.23"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2EC223","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.23"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"IAM3remediationfailure2E706636":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for IAM.3 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-IAM.3-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1IAM3 / (m1IAM3+m2IAM3)) * 100","Id":"expr_1","Label":"IAM.3 Failure Percentage","ReturnData":true},{"Id":"m1IAM3","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.3"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2IAM3","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.3"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"IAM7remediationfailure00B58B57":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for IAM.7 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-IAM.7-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1IAM7 / (m1IAM7+m2IAM7)) * 100","Id":"expr_1","Label":"IAM.7 Failure Percentage","ReturnData":true},{"Id":"m1IAM7","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.7"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2IAM7","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.7"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"IAM8remediationfailure3EA89A13":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for IAM.8 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-IAM.8-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1IAM8 / (m1IAM8+m2IAM8)) * 100","Id":"expr_1","Label":"IAM.8 Failure Percentage","ReturnData":true},{"Id":"m1IAM8","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.8"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2IAM8","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.8"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"IAM11remediationfailure9E3E82DD":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for IAM.11 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-IAM.11-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1IAM11 / (m1IAM11+m2IAM11)) * 100","Id":"expr_1","Label":"IAM.11 Failure Percentage","ReturnData":true},{"Id":"m1IAM11","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.11"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2IAM11","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.11"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"IAM12remediationfailure12CE48BC":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for IAM.12 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-IAM.12-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1IAM12 / (m1IAM12+m2IAM12)) * 100","Id":"expr_1","Label":"IAM.12 Failure Percentage","ReturnData":true},{"Id":"m1IAM12","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.12"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2IAM12","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.12"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"IAM13remediationfailureE1876212":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for IAM.13 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-IAM.13-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1IAM13 / (m1IAM13+m2IAM13)) * 100","Id":"expr_1","Label":"IAM.13 Failure Percentage","ReturnData":true},{"Id":"m1IAM13","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.13"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2IAM13","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.13"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"IAM14remediationfailure962E22F8":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for IAM.14 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-IAM.14-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1IAM14 / (m1IAM14+m2IAM14)) * 100","Id":"expr_1","Label":"IAM.14 Failure Percentage","ReturnData":true},{"Id":"m1IAM14","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.14"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2IAM14","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.14"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"IAM15remediationfailureC2E57C72":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for IAM.15 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-IAM.15-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1IAM15 / (m1IAM15+m2IAM15)) * 100","Id":"expr_1","Label":"IAM.15 Failure Percentage","ReturnData":true},{"Id":"m1IAM15","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.15"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2IAM15","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.15"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"IAM16remediationfailure7119F86F":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for IAM.16 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-IAM.16-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1IAM16 / (m1IAM16+m2IAM16)) * 100","Id":"expr_1","Label":"IAM.16 Failure Percentage","ReturnData":true},{"Id":"m1IAM16","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.16"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2IAM16","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.16"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"IAM17remediationfailure48871BBA":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for IAM.17 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-IAM.17-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1IAM17 / (m1IAM17+m2IAM17)) * 100","Id":"expr_1","Label":"IAM.17 Failure Percentage","ReturnData":true},{"Id":"m1IAM17","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.17"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2IAM17","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.17"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"IAM18remediationfailure4EE420C4":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for IAM.18 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-IAM.18-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1IAM18 / (m1IAM18+m2IAM18)) * 100","Id":"expr_1","Label":"IAM.18 Failure Percentage","ReturnData":true},{"Id":"m1IAM18","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.18"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2IAM18","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.18"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"IAM22remediationfailure81BDDC78":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for IAM.22 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-IAM.22-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1IAM22 / (m1IAM22+m2IAM22)) * 100","Id":"expr_1","Label":"IAM.22 Failure Percentage","ReturnData":true},{"Id":"m1IAM22","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.22"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2IAM22","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"IAM.22"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"KMS4remediationfailure02F98C5F":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for KMS.4 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-KMS.4-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1KMS4 / (m1KMS4+m2KMS4)) * 100","Id":"expr_1","Label":"KMS.4 Failure Percentage","ReturnData":true},{"Id":"m1KMS4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"KMS.4"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2KMS4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"KMS.4"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"Lambda1remediationfailure861B6E34":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for Lambda.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-Lambda.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1Lambda1 / (m1Lambda1+m2Lambda1)) * 100","Id":"expr_1","Label":"Lambda.1 Failure Percentage","ReturnData":true},{"Id":"m1Lambda1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Lambda.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2Lambda1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Lambda.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"RDS1remediationfailure3C44B261":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for RDS.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-RDS.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1RDS1 / (m1RDS1+m2RDS1)) * 100","Id":"expr_1","Label":"RDS.1 Failure Percentage","ReturnData":true},{"Id":"m1RDS1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2RDS1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"RDS2remediationfailure7C383121":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for RDS.2 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-RDS.2-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1RDS2 / (m1RDS2+m2RDS2)) * 100","Id":"expr_1","Label":"RDS.2 Failure Percentage","ReturnData":true},{"Id":"m1RDS2","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.2"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2RDS2","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.2"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"RDS4remediationfailure155A6D2A":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for RDS.4 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-RDS.4-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1RDS4 / (m1RDS4+m2RDS4)) * 100","Id":"expr_1","Label":"RDS.4 Failure Percentage","ReturnData":true},{"Id":"m1RDS4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.4"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2RDS4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.4"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"RDS5remediationfailureBB1AD637":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for RDS.5 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-RDS.5-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1RDS5 / (m1RDS5+m2RDS5)) * 100","Id":"expr_1","Label":"RDS.5 Failure Percentage","ReturnData":true},{"Id":"m1RDS5","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.5"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2RDS5","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.5"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"RDS6remediationfailureD43BC115":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for RDS.6 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-RDS.6-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1RDS6 / (m1RDS6+m2RDS6)) * 100","Id":"expr_1","Label":"RDS.6 Failure Percentage","ReturnData":true},{"Id":"m1RDS6","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.6"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2RDS6","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.6"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"RDS7remediationfailureAFFAD4B5":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for RDS.7 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-RDS.7-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1RDS7 / (m1RDS7+m2RDS7)) * 100","Id":"expr_1","Label":"RDS.7 Failure Percentage","ReturnData":true},{"Id":"m1RDS7","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.7"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2RDS7","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.7"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"RDS8remediationfailureBE84F743":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for RDS.8 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-RDS.8-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1RDS8 / (m1RDS8+m2RDS8)) * 100","Id":"expr_1","Label":"RDS.8 Failure Percentage","ReturnData":true},{"Id":"m1RDS8","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.8"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2RDS8","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.8"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"RDS13remediationfailure15C4FA2F":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for RDS.13 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-RDS.13-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1RDS13 / (m1RDS13+m2RDS13)) * 100","Id":"expr_1","Label":"RDS.13 Failure Percentage","ReturnData":true},{"Id":"m1RDS13","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.13"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2RDS13","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.13"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"RDS16remediationfailureC76518D0":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for RDS.16 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-RDS.16-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1RDS16 / (m1RDS16+m2RDS16)) * 100","Id":"expr_1","Label":"RDS.16 Failure Percentage","ReturnData":true},{"Id":"m1RDS16","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.16"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2RDS16","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"RDS.16"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"Redshift1remediationfailureA218AFB4":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for Redshift.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-Redshift.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1Redshift1 / (m1Redshift1+m2Redshift1)) * 100","Id":"expr_1","Label":"Redshift.1 Failure Percentage","ReturnData":true},{"Id":"m1Redshift1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Redshift.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2Redshift1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Redshift.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"Redshift3remediationfailureA005CBF8":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for Redshift.3 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-Redshift.3-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1Redshift3 / (m1Redshift3+m2Redshift3)) * 100","Id":"expr_1","Label":"Redshift.3 Failure Percentage","ReturnData":true},{"Id":"m1Redshift3","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Redshift.3"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2Redshift3","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Redshift.3"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"Redshift4remediationfailure0C7EB0E5":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for Redshift.4 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-Redshift.4-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1Redshift4 / (m1Redshift4+m2Redshift4)) * 100","Id":"expr_1","Label":"Redshift.4 Failure Percentage","ReturnData":true},{"Id":"m1Redshift4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Redshift.4"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2Redshift4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Redshift.4"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"Redshift6remediationfailure4CEC2AB4":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for Redshift.6 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-Redshift.6-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1Redshift6 / (m1Redshift6+m2Redshift6)) * 100","Id":"expr_1","Label":"Redshift.6 Failure Percentage","ReturnData":true},{"Id":"m1Redshift6","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Redshift.6"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2Redshift6","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Redshift.6"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"S31remediationfailureB1E0E788":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for S3.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-S3.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1S31 / (m1S31+m2S31)) * 100","Id":"expr_1","Label":"S3.1 Failure Percentage","ReturnData":true},{"Id":"m1S31","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2S31","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"S32remediationfailure0CB179A0":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for S3.2 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-S3.2-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1S32 / (m1S32+m2S32)) * 100","Id":"expr_1","Label":"S3.2 Failure Percentage","ReturnData":true},{"Id":"m1S32","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.2"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2S32","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.2"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"S33remediationfailureEBC2F987":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for S3.3 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-S3.3-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1S33 / (m1S33+m2S33)) * 100","Id":"expr_1","Label":"S3.3 Failure Percentage","ReturnData":true},{"Id":"m1S33","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.3"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2S33","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.3"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"S35remediationfailureCA1065E4":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for S3.5 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-S3.5-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1S35 / (m1S35+m2S35)) * 100","Id":"expr_1","Label":"S3.5 Failure Percentage","ReturnData":true},{"Id":"m1S35","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.5"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2S35","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.5"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"S36remediationfailure4C0080B5":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for S3.6 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-S3.6-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1S36 / (m1S36+m2S36)) * 100","Id":"expr_1","Label":"S3.6 Failure Percentage","ReturnData":true},{"Id":"m1S36","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.6"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2S36","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.6"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"S38remediationfailure8CD77EFB":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for S3.8 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-S3.8-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1S38 / (m1S38+m2S38)) * 100","Id":"expr_1","Label":"S3.8 Failure Percentage","ReturnData":true},{"Id":"m1S38","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.8"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2S38","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.8"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"S39remediationfailure46C7021F":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for S3.9 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-S3.9-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1S39 / (m1S39+m2S39)) * 100","Id":"expr_1","Label":"S3.9 Failure Percentage","ReturnData":true},{"Id":"m1S39","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.9"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2S39","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.9"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"S311remediationfailure33527D1F":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for S3.11 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-S3.11-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1S311 / (m1S311+m2S311)) * 100","Id":"expr_1","Label":"S3.11 Failure Percentage","ReturnData":true},{"Id":"m1S311","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.11"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2S311","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.11"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"S313remediationfailureC0DAC9F7":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for S3.13 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-S3.13-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1S313 / (m1S313+m2S313)) * 100","Id":"expr_1","Label":"S3.13 Failure Percentage","ReturnData":true},{"Id":"m1S313","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.13"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2S313","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.13"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"SecretsManager1remediationfailureA2711A50":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for SecretsManager.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-SecretsManager.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1SecretsManager1 / (m1SecretsManager1+m2SecretsManager1)) * 100","Id":"expr_1","Label":"SecretsManager.1 Failure Percentage","ReturnData":true},{"Id":"m1SecretsManager1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"SecretsManager.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2SecretsManager1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"SecretsManager.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"SecretsManager3remediationfailureE72F1B56":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for SecretsManager.3 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-SecretsManager.3-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1SecretsManager3 / (m1SecretsManager3+m2SecretsManager3)) * 100","Id":"expr_1","Label":"SecretsManager.3 Failure Percentage","ReturnData":true},{"Id":"m1SecretsManager3","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"SecretsManager.3"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2SecretsManager3","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"SecretsManager.3"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"SecretsManager4remediationfailure993A7849":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for SecretsManager.4 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-SecretsManager.4-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1SecretsManager4 / (m1SecretsManager4+m2SecretsManager4)) * 100","Id":"expr_1","Label":"SecretsManager.4 Failure Percentage","ReturnData":true},{"Id":"m1SecretsManager4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"SecretsManager.4"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2SecretsManager4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"SecretsManager.4"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"SNS1remediationfailure98EE4220":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for SNS.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-SNS.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1SNS1 / (m1SNS1+m2SNS1)) * 100","Id":"expr_1","Label":"SNS.1 Failure Percentage","ReturnData":true},{"Id":"m1SNS1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"SNS.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2SNS1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"SNS.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"SQS1remediationfailureEC77DCB5":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for SQS.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-SQS.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1SQS1 / (m1SQS1+m2SQS1)) * 100","Id":"expr_1","Label":"SQS.1 Failure Percentage","ReturnData":true},{"Id":"m1SQS1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"SQS.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2SQS1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"SQS.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"SSM4remediationfailure020A5786":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for SSM.4 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-SSM.4-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1SSM4 / (m1SSM4+m2SSM4)) * 100","Id":"expr_1","Label":"SSM.4 Failure Percentage","ReturnData":true},{"Id":"m1SSM4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"SSM.4"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2SSM4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"SSM.4"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"GuardDuty1remediationfailure95EB4B34":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for GuardDuty.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-GuardDuty.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1GuardDuty1 / (m1GuardDuty1+m2GuardDuty1)) * 100","Id":"expr_1","Label":"GuardDuty.1 Failure Percentage","ReturnData":true},{"Id":"m1GuardDuty1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"GuardDuty.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2GuardDuty1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"GuardDuty.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"Athena4remediationfailure49AC87AE":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for Athena.4 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-Athena.4-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1Athena4 / (m1Athena4+m2Athena4)) * 100","Id":"expr_1","Label":"Athena.4 Failure Percentage","ReturnData":true},{"Id":"m1Athena4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Athena.4"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2Athena4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Athena.4"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"APIGateway1remediationfailure9061CEDD":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for APIGateway.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-APIGateway.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1APIGateway1 / (m1APIGateway1+m2APIGateway1)) * 100","Id":"expr_1","Label":"APIGateway.1 Failure Percentage","ReturnData":true},{"Id":"m1APIGateway1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"APIGateway.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2APIGateway1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"APIGateway.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"APIGateway5remediationfailure4708254C":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for APIGateway.5 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-APIGateway.5-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1APIGateway5 / (m1APIGateway5+m2APIGateway5)) * 100","Id":"expr_1","Label":"APIGateway.5 Failure Percentage","ReturnData":true},{"Id":"m1APIGateway5","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"APIGateway.5"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2APIGateway5","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"APIGateway.5"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"AutoScaling3remediationfailure685B64A8":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for AutoScaling.3 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-AutoScaling.3-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1AutoScaling3 / (m1AutoScaling3+m2AutoScaling3)) * 100","Id":"expr_1","Label":"AutoScaling.3 Failure Percentage","ReturnData":true},{"Id":"m1AutoScaling3","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"AutoScaling.3"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2AutoScaling3","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"AutoScaling.3"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"Autoscaling5remediationfailure49EC2C6E":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for Autoscaling.5 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-Autoscaling.5-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1Autoscaling5 / (m1Autoscaling5+m2Autoscaling5)) * 100","Id":"expr_1","Label":"Autoscaling.5 Failure Percentage","ReturnData":true},{"Id":"m1Autoscaling5","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Autoscaling.5"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2Autoscaling5","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Autoscaling.5"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudWatch16remediationfailure009FD0F8":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudWatch.16 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudWatch.16-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudWatch16 / (m1CloudWatch16+m2CloudWatch16)) * 100","Id":"expr_1","Label":"CloudWatch.16 Failure Percentage","ReturnData":true},{"Id":"m1CloudWatch16","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.16"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudWatch16","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudWatch.16"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"EC210remediationfailure7C88B08D":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for EC2.10 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-EC2.10-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1EC210 / (m1EC210+m2EC210)) * 100","Id":"expr_1","Label":"EC2.10 Failure Percentage","ReturnData":true},{"Id":"m1EC210","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.10"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2EC210","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"EC2.10"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"SSM1remediationfailureD6F27915":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for SSM.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-SSM.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1SSM1 / (m1SSM1+m2SSM1)) * 100","Id":"expr_1","Label":"SSM.1 Failure Percentage","ReturnData":true},{"Id":"m1SSM1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"SSM.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2SSM1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"SSM.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"GuardDuty2remediationfailure520214BF":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for GuardDuty.2 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-GuardDuty.2-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1GuardDuty2 / (m1GuardDuty2+m2GuardDuty2)) * 100","Id":"expr_1","Label":"GuardDuty.2 Failure Percentage","ReturnData":true},{"Id":"m1GuardDuty2","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"GuardDuty.2"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2GuardDuty2","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"GuardDuty.2"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"GuardDuty4remediationfailureE51E53EC":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for GuardDuty.4 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-GuardDuty.4-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1GuardDuty4 / (m1GuardDuty4+m2GuardDuty4)) * 100","Id":"expr_1","Label":"GuardDuty.4 Failure Percentage","ReturnData":true},{"Id":"m1GuardDuty4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"GuardDuty.4"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2GuardDuty4","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"GuardDuty.4"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"Macie1remediationfailure50CC251B":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for Macie.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-Macie.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1Macie1 / (m1Macie1+m2Macie1)) * 100","Id":"expr_1","Label":"Macie.1 Failure Percentage","ReturnData":true},{"Id":"m1Macie1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Macie.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2Macie1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Macie.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"DynamoDB1remediationfailureC2826724":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for DynamoDB.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-DynamoDB.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1DynamoDB1 / (m1DynamoDB1+m2DynamoDB1)) * 100","Id":"expr_1","Label":"DynamoDB.1 Failure Percentage","ReturnData":true},{"Id":"m1DynamoDB1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"DynamoDB.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2DynamoDB1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"DynamoDB.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"DynamoDB5remediationfailure5A9D1618":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for DynamoDB.5 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-DynamoDB.5-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1DynamoDB5 / (m1DynamoDB5+m2DynamoDB5)) * 100","Id":"expr_1","Label":"DynamoDB.5 Failure Percentage","ReturnData":true},{"Id":"m1DynamoDB5","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"DynamoDB.5"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2DynamoDB5","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"DynamoDB.5"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"DynamoDB6remediationfailureDAB6ED61":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for DynamoDB.6 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-DynamoDB.6-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1DynamoDB6 / (m1DynamoDB6+m2DynamoDB6)) * 100","Id":"expr_1","Label":"DynamoDB.6 Failure Percentage","ReturnData":true},{"Id":"m1DynamoDB6","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"DynamoDB.6"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2DynamoDB6","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"DynamoDB.6"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"ElastiCache1remediationfailureD82AA5E2":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for ElastiCache.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-ElastiCache.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1ElastiCache1 / (m1ElastiCache1+m2ElastiCache1)) * 100","Id":"expr_1","Label":"ElastiCache.1 Failure Percentage","ReturnData":true},{"Id":"m1ElastiCache1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"ElastiCache.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2ElastiCache1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"ElastiCache.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"ElastiCache2remediationfailureAFB8E4AE":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for ElastiCache.2 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-ElastiCache.2-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1ElastiCache2 / (m1ElastiCache2+m2ElastiCache2)) * 100","Id":"expr_1","Label":"ElastiCache.2 Failure Percentage","ReturnData":true},{"Id":"m1ElastiCache2","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"ElastiCache.2"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2ElastiCache2","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"ElastiCache.2"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"ElastiCache3remediationfailure85F41AF1":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for ElastiCache.3 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-ElastiCache.3-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1ElastiCache3 / (m1ElastiCache3+m2ElastiCache3)) * 100","Id":"expr_1","Label":"ElastiCache.3 Failure Percentage","ReturnData":true},{"Id":"m1ElastiCache3","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"ElastiCache.3"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2ElastiCache3","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"ElastiCache.3"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"ECS5remediationfailure9BD08802":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for ECS.5 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-ECS.5-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1ECS5 / (m1ECS5+m2ECS5)) * 100","Id":"expr_1","Label":"ECS.5 Failure Percentage","ReturnData":true},{"Id":"m1ECS5","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"ECS.5"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2ECS5","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"ECS.5"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"ELB1remediationfailure2CFB0757":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for ELB.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-ELB.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1ELB1 / (m1ELB1+m2ELB1)) * 100","Id":"expr_1","Label":"ELB.1 Failure Percentage","ReturnData":true},{"Id":"m1ELB1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"ELB.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2ELB1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"ELB.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"ECR1remediationfailureAD78C4E8":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for ECR.1 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-ECR.1-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1ECR1 / (m1ECR1+m2ECR1)) * 100","Id":"expr_1","Label":"ECR.1 Failure Percentage","ReturnData":true},{"Id":"m1ECR1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"ECR.1"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2ECR1","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"ECR.1"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"SSM7remediationfailureBCF0D2A7":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for SSM.7 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-SSM.7-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1SSM7 / (m1SSM7+m2SSM7)) * 100","Id":"expr_1","Label":"SSM.7 Failure Percentage","ReturnData":true},{"Id":"m1SSM7","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"SSM.7"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2SSM7","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"SSM.7"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"CloudFormation3remediationfailure6FA1AE66":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for CloudFormation.3 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-CloudFormation.3-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1CloudFormation3 / (m1CloudFormation3+m2CloudFormation3)) * 100","Id":"expr_1","Label":"CloudFormation.3 Failure Percentage","ReturnData":true},{"Id":"m1CloudFormation3","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudFormation.3"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2CloudFormation3","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"CloudFormation.3"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"S314remediationfailure3668F6D4":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for S3.14 reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-S3.14-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1S314 / (m1S314+m2S314)) * 100","Id":"expr_1","Label":"S3.14 Failure Percentage","ReturnData":true},{"Id":"m1S314","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.14"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2S314","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"S3.14"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"InspectorInstanceVulnerabilityremediationfailureE692BF14":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for Inspector.InstanceVulnerability reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-Inspector.InstanceVulnerability-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1InspectorInstanceVulnerability / (m1InspectorInstanceVulnerability+m2InspectorInstanceVulnerability)) * 100","Id":"expr_1","Label":"Inspector.InstanceVulnerability Failure Percentage","ReturnData":true},{"Id":"m1InspectorInstanceVulnerability","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Inspector.InstanceVulnerability"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2InspectorInstanceVulnerability","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Inspector.InstanceVulnerability"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"GuardDutyIAMUserremediationfailure8570A324":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for GuardDuty.IAMUser reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-GuardDuty.IAMUser-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1GuardDutyIAMUser / (m1GuardDutyIAMUser+m2GuardDutyIAMUser)) * 100","Id":"expr_1","Label":"GuardDuty.IAMUser Failure Percentage","ReturnData":true},{"Id":"m1GuardDutyIAMUser","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"GuardDuty.IAMUser"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2GuardDutyIAMUser","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"GuardDuty.IAMUser"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"MacieSensitiveDataS3ObjectremediationfailureF946EC62":{"Type":"AWS::CloudWatch::Alarm","Properties":{"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"This alarm triggers when the percentage of remediation failures for Macie.SensitiveDataS3Object reaches above the configured threshold. \n        This indicates that there may be a problem remediating this control ID in your AWS environment. Check the most recent failed execution of this control's runbook in the target account to identify potential issues.","AlarmName":"ASR-Macie.SensitiveDataS3Object-remediation-failure","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"(m1MacieSensitiveDataS3Object / (m1MacieSensitiveDataS3Object+m2MacieSensitiveDataS3Object)) * 100","Id":"expr_1","Label":"Macie.SensitiveDataS3Object Failure Percentage","ReturnData":true},{"Id":"m1MacieSensitiveDataS3Object","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Macie.SensitiveDataS3Object"},{"Name":"Outcome","Value":"FAILED"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false},{"Id":"m2MacieSensitiveDataS3Object","MetricStat":{"Metric":{"Dimensions":[{"Name":"ControlId","Value":"Macie.SensitiveDataS3Object"},{"Name":"Outcome","Value":"SUCCESS"}],"MetricName":"RemediationOutcome","Namespace":"ASR"},"Period":86400,"Stat":"Average"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":{"Ref":"RemediationFailureAlarmThreshold"},"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"enhancedAlarmsEnabled"},"RemediationDashboard7EC0D4B1":{"Type":"AWS::CloudWatch::Dashboard","Properties":{"DashboardBody":{"Fn::Join":["",["{\"start\":\"-P7D\",\"widgets\":[{\"type\":\"text\",\"width\":24,\"height\":3,\"x\":0,\"y\":0,\"properties\":{\"markdown\":\"\\n## Total Successful Remediations\\nThis widget displays the total number of successful remediations executed and total developer hours saved in the last 3 months.\\n\\nWe estimate that, on average, it takes 30 minutes of developer time to investigate & remediate a Security Hub finding. The \\\"Estimated Hours Saved\\\" widget uses this to estimate how many developer hours were saved by using ASR in the last 3 months.\\n\"}},{\"type\":\"metric\",\"width\":6,\"height\":6,\"x\":0,\"y\":3,\"properties\":{\"view\":\"singleValue\",\"title\":\"Total Successful Remediations\",\"region\":\"",{"Ref":"AWS::Region"},"\",\"metrics\":[[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"SUCCESS\",{\"label\":\"Successful Remediations\",\"period\":7776000,\"stat\":\"Sum\"}]],\"setPeriodToTimeRange\":true}},{\"type\":\"metric\",\"width\":6,\"height\":6,\"x\":6,\"y\":3,\"properties\":{\"view\":\"singleValue\",\"title\":\"Estimated Hours Saved\",\"region\":\"",{"Ref":"AWS::Region"},"\",\"metrics\":[[{\"label\":\"Estimated Hours Saved\",\"expression\":\"(m1 * 10) / 60\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"SUCCESS\",{\"label\":\"Successful Remediations\",\"id\":\"m1\",\"visible\":false,\"period\":86400,\"stat\":\"Sum\"}]],\"setPeriodToTimeRange\":true}},{\"type\":\"text\",\"width\":24,\"height\":6,\"x\":0,\"y\":9,\"properties\":{\"markdown\":\"\\n## Remediation Failures by Type\\nThis widget displays the frequency of various remediation failures. \\n* `Lambda Error`: One or more of the solution's Lambda Functions failed to execute. See the Orchestrator step function execution for details.\\n* `Runbook Not Active`: The runbook associated with this remediation is not properly deployed in the solution's Admin and/or Member stack. Verify the solution's parameters.\\n* `No Runbook`: This indicates a remediation was attempted and an ASR runbook could not be found.\\n* `Playbook Not Enabled`: The ASR playbook associated with the finding is not enabled. Ensure that the correct playbook parameter is enabled in the Admin & Member stacks.\\n* `SSM Doc Failed`: The remediation script failed to execute. Check the Orchestrator step function to determine which account the remediation was executed in, then view the SSM automation execution history for failures.\\n\\nIf there is an increase in `NO_RUNBOOK` results, this indicates that (1) the account/region where findings are being generated does not have the member stack installed, or (2) ASR does not implement a remediation for the findings being executed. You should also verify that this is not caused by a malformed event pattern in the automatic remediation EventBridge rules.\\n\"}},{\"type\":\"metric\",\"width\":6,\"height\":6,\"x\":0,\"y\":15,\"properties\":{\"view\":\"timeSeries\",\"title\":\"Remediation Failures\",\"region\":\"",{"Ref":"AWS::Region"},"\",\"metrics\":[[{\"label\":\"FAILURE\",\"expression\":\"SUM([m1+m2+m3+m4+m5])\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"LAMBDA_ERROR\",{\"label\":\"Lambda Error\",\"id\":\"m1\",\"visible\":false,\"period\":86400,\"stat\":\"Sum\"}],[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"RUNBOOK_NOT_ACTIVE\",{\"label\":\"Runbook Not Active\",\"id\":\"m2\",\"visible\":false,\"period\":86400,\"stat\":\"Sum\"}],[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"NO_RUNBOOK\",{\"label\":\"No Remediation\",\"id\":\"m3\",\"visible\":false,\"period\":86400,\"stat\":\"Sum\"}],[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"PLAYBOOK_NOT_ENABLED\",{\"label\":\"Playbook Not Enabled\",\"id\":\"m4\",\"visible\":false,\"period\":86400,\"stat\":\"Sum\"}],[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"FAILED\",{\"label\":\"SSM Doc Failed\",\"id\":\"m5\",\"visible\":false,\"period\":86400,\"stat\":\"Sum\"}]],\"yAxis\":{\"left\":{\"showUnits\":false}}}},{\"type\":\"metric\",\"width\":6,\"height\":6,\"x\":6,\"y\":15,\"properties\":{\"view\":\"timeSeries\",\"title\":\"Remediation Failures by Type\",\"region\":\"",{"Ref":"AWS::Region"},"\",\"metrics\":[[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"LAMBDA_ERROR\",{\"label\":\"Lambda Error\",\"period\":86400,\"stat\":\"Sum\"}],[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"RUNBOOK_NOT_ACTIVE\",{\"label\":\"Runbook Not Active\",\"period\":86400,\"stat\":\"Sum\"}],[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"NO_RUNBOOK\",{\"label\":\"No Remediation\",\"period\":86400,\"stat\":\"Sum\"}],[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"PLAYBOOK_NOT_ENABLED\",{\"label\":\"Playbook Not Enabled\",\"period\":86400,\"stat\":\"Sum\"}],[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"FAILED\",{\"label\":\"SSM Doc Failed\",\"period\":86400,\"stat\":\"Sum\"}]],\"yAxis\":{\"left\":{\"showUnits\":false}}}},{\"type\":\"metric\",\"width\":6,\"height\":6,\"x\":12,\"y\":15,\"properties\":{\"view\":\"timeSeries\",\"title\":\"Remediation Failure Rate\",\"region\":\"",{"Ref":"AWS::Region"},"\",\"metrics\":[[{\"label\":\"Overall Failure Rate\",\"expression\":\"(failuresByType / (failuresByType + successMetric)) * 100\",\"period\":86400}],[{\"label\":\"FAILURE\",\"expression\":\"SUM([m1+m2+m3+m4+m5])\",\"period\":86400,\"visible\":false,\"id\":\"failuresByType\"}],[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"LAMBDA_ERROR\",{\"label\":\"Lambda Error\",\"id\":\"m1\",\"visible\":false,\"period\":86400,\"stat\":\"Sum\"}],[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"RUNBOOK_NOT_ACTIVE\",{\"label\":\"Runbook Not Active\",\"id\":\"m2\",\"visible\":false,\"period\":86400,\"stat\":\"Sum\"}],[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"NO_RUNBOOK\",{\"label\":\"No Remediation\",\"id\":\"m3\",\"visible\":false,\"period\":86400,\"stat\":\"Sum\"}],[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"PLAYBOOK_NOT_ENABLED\",{\"label\":\"Playbook Not Enabled\",\"id\":\"m4\",\"visible\":false,\"period\":86400,\"stat\":\"Sum\"}],[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"FAILED\",{\"label\":\"SSM Doc Failed\",\"id\":\"m5\",\"visible\":false,\"period\":86400,\"stat\":\"Sum\"}],[\"ASR\",\"RemediationOutcome\",\"Outcome\",\"SUCCESS\",{\"label\":\"Successful Remediations\",\"id\":\"successMetric\",\"visible\":false,\"period\":86400,\"stat\":\"Sum\"}]],\"yAxis\":{\"left\":{\"showUnits\":false}}}},{\"type\":\"text\",\"width\":24,\"height\":3,\"x\":0,\"y\":21,\"properties\":{\"markdown\":\"\\n## Remediation Success/Failure by Control ID\\nThis widget displays the number of successful and failed remediations by Control ID. You must select \\\"Yes\\\" for EnableEnhancedCloudWatchMetrics when deploying the Admin stack to view these metrics.\\n\\nThe number of failed remediations per Control ID can inform you of frequent issues that arise when ASR attempts to remediate a specific finding in your AWS environment. If a high number of failures occur on a small subset of controls, you can investigate the issue by navigating to `Systems Manager > Automation` to search for recent executions of the control runbook associated with the failing Control ID. \\n\"}},{\"type\":\"metric\",\"width\":6,\"height\":6,\"x\":0,\"y\":24,\"properties\":{\"view\":\"bar\",\"title\":\"Successful remediations by Control Id\",\"region\":\"",{"Ref":"AWS::Region"},"\",\"metrics\":[[{\"expression\":\"SORT(SEARCH('{ASR,ControlId,Outcome} Outcome=\\\"SUCCESS\\\"', 'Sum'), SUM, ASC)\",\"period\":86400}]],\"yAxis\":{},\"stat\":\"Sum\"}},{\"type\":\"metric\",\"width\":6,\"height\":6,\"x\":6,\"y\":24,\"properties\":{\"view\":\"bar\",\"title\":\"Failed remediations by Control Id\",\"region\":\"",{"Ref":"AWS::Region"},"\",\"metrics\":[[{\"expression\":\"SORT(SEARCH('{ASR,ControlId,Outcome} Outcome=\\\"FAILED\\\"', 'Sum'), SUM, ASC)\",\"period\":86400}]],\"yAxis\":{},\"stat\":\"Sum\"}},{\"type\":\"metric\",\"width\":6,\"height\":6,\"x\":12,\"y\":24,\"properties\":{\"view\":\"timeSeries\",\"title\":\"Remediation Failure Rate by Control Id\",\"region\":\"",{"Ref":"AWS::Region"},"\",\"metrics\":[[{\"label\":\"AutoScaling.1 Failure Percentage\",\"expression\":\"(m1AutoScaling1 / (m1AutoScaling1+m2AutoScaling1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"AutoScaling.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1AutoScaling1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"AutoScaling.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2AutoScaling1\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudFront.1 Failure Percentage\",\"expression\":\"(m1CloudFront1 / (m1CloudFront1+m2CloudFront1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudFront.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudFront1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudFront.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudFront1\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudFront.12 Failure Percentage\",\"expression\":\"(m1CloudFront12 / (m1CloudFront12+m2CloudFront12)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudFront.12\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudFront12\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudFront.12\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudFront12\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudTrail.1 Failure Percentage\",\"expression\":\"(m1CloudTrail1 / (m1CloudTrail1+m2CloudTrail1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudTrail.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudTrail1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudTrail.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudTrail1\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudTrail.2 Failure Percentage\",\"expression\":\"(m1CloudTrail2 / (m1CloudTrail2+m2CloudTrail2)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudTrail.2\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudTrail2\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudTrail.2\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudTrail2\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudTrail.3 Failure Percentage\",\"expression\":\"(m1CloudTrail3 / (m1CloudTrail3+m2CloudTrail3)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudTrail.3\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudTrail3\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudTrail.3\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudTrail3\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudTrail.4 Failure Percentage\",\"expression\":\"(m1CloudTrail4 / (m1CloudTrail4+m2CloudTrail4)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudTrail.4\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudTrail4\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudTrail.4\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudTrail4\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudTrail.5 Failure Percentage\",\"expression\":\"(m1CloudTrail5 / (m1CloudTrail5+m2CloudTrail5)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudTrail.5\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudTrail5\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudTrail.5\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudTrail5\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudTrail.6 Failure Percentage\",\"expression\":\"(m1CloudTrail6 / (m1CloudTrail6+m2CloudTrail6)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudTrail.6\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudTrail6\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudTrail.6\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudTrail6\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudTrail.7 Failure Percentage\",\"expression\":\"(m1CloudTrail7 / (m1CloudTrail7+m2CloudTrail7)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudTrail.7\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudTrail7\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudTrail.7\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudTrail7\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudWatch.1 Failure Percentage\",\"expression\":\"(m1CloudWatch1 / (m1CloudWatch1+m2CloudWatch1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudWatch1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudWatch1\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudWatch.2 Failure Percentage\",\"expression\":\"(m1CloudWatch2 / (m1CloudWatch2+m2CloudWatch2)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.2\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudWatch2\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.2\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudWatch2\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudWatch.3 Failure Percentage\",\"expression\":\"(m1CloudWatch3 / (m1CloudWatch3+m2CloudWatch3)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.3\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudWatch3\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.3\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudWatch3\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudWatch.4 Failure Percentage\",\"expression\":\"(m1CloudWatch4 / (m1CloudWatch4+m2CloudWatch4)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.4\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudWatch4\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.4\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudWatch4\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudWatch.5 Failure Percentage\",\"expression\":\"(m1CloudWatch5 / (m1CloudWatch5+m2CloudWatch5)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.5\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudWatch5\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.5\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudWatch5\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudWatch.6 Failure Percentage\",\"expression\":\"(m1CloudWatch6 / (m1CloudWatch6+m2CloudWatch6)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.6\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudWatch6\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.6\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudWatch6\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudWatch.7 Failure Percentage\",\"expression\":\"(m1CloudWatch7 / (m1CloudWatch7+m2CloudWatch7)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.7\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudWatch7\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.7\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudWatch7\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudWatch.8 Failure Percentage\",\"expression\":\"(m1CloudWatch8 / (m1CloudWatch8+m2CloudWatch8)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.8\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudWatch8\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.8\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudWatch8\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudWatch.9 Failure Percentage\",\"expression\":\"(m1CloudWatch9 / (m1CloudWatch9+m2CloudWatch9)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.9\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudWatch9\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.9\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudWatch9\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudWatch.10 Failure Percentage\",\"expression\":\"(m1CloudWatch10 / (m1CloudWatch10+m2CloudWatch10)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.10\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudWatch10\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.10\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudWatch10\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudWatch.11 Failure Percentage\",\"expression\":\"(m1CloudWatch11 / (m1CloudWatch11+m2CloudWatch11)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.11\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudWatch11\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.11\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudWatch11\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudWatch.12 Failure Percentage\",\"expression\":\"(m1CloudWatch12 / (m1CloudWatch12+m2CloudWatch12)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.12\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudWatch12\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.12\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudWatch12\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudWatch.13 Failure Percentage\",\"expression\":\"(m1CloudWatch13 / (m1CloudWatch13+m2CloudWatch13)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.13\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudWatch13\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.13\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudWatch13\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudWatch.14 Failure Percentage\",\"expression\":\"(m1CloudWatch14 / (m1CloudWatch14+m2CloudWatch14)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.14\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudWatch14\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.14\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudWatch14\",\"visible\":false,\"period\":86400}],[{\"label\":\"CodeBuild.2 Failure Percentage\",\"expression\":\"(m1CodeBuild2 / (m1CodeBuild2+m2CodeBuild2)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CodeBuild.2\",\"Outcome\",\"FAILED\",{\"id\":\"m1CodeBuild2\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CodeBuild.2\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CodeBuild2\",\"visible\":false,\"period\":86400}],[{\"label\":\"Config.1 Failure Percentage\",\"expression\":\"(m1Config1 / (m1Config1+m2Config1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Config.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1Config1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Config.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2Config1\",\"visible\":false,\"period\":86400}],[{\"label\":\"EC2.1 Failure Percentage\",\"expression\":\"(m1EC21 / (m1EC21+m2EC21)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1EC21\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2EC21\",\"visible\":false,\"period\":86400}],[{\"label\":\"EC2.2 Failure Percentage\",\"expression\":\"(m1EC22 / (m1EC22+m2EC22)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.2\",\"Outcome\",\"FAILED\",{\"id\":\"m1EC22\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.2\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2EC22\",\"visible\":false,\"period\":86400}],[{\"label\":\"EC2.4 Failure Percentage\",\"expression\":\"(m1EC24 / (m1EC24+m2EC24)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.4\",\"Outcome\",\"FAILED\",{\"id\":\"m1EC24\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.4\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2EC24\",\"visible\":false,\"period\":86400}],[{\"label\":\"EC2.6 Failure Percentage\",\"expression\":\"(m1EC26 / (m1EC26+m2EC26)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.6\",\"Outcome\",\"FAILED\",{\"id\":\"m1EC26\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.6\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2EC26\",\"visible\":false,\"period\":86400}],[{\"label\":\"EC2.7 Failure Percentage\",\"expression\":\"(m1EC27 / (m1EC27+m2EC27)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.7\",\"Outcome\",\"FAILED\",{\"id\":\"m1EC27\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.7\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2EC27\",\"visible\":false,\"period\":86400}],[{\"label\":\"EC2.8 Failure Percentage\",\"expression\":\"(m1EC28 / (m1EC28+m2EC28)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.8\",\"Outcome\",\"FAILED\",{\"id\":\"m1EC28\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.8\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2EC28\",\"visible\":false,\"period\":86400}],[{\"label\":\"EC2.13 Failure Percentage\",\"expression\":\"(m1EC213 / (m1EC213+m2EC213)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.13\",\"Outcome\",\"FAILED\",{\"id\":\"m1EC213\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.13\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2EC213\",\"visible\":false,\"period\":86400}],[{\"label\":\"EC2.14 Failure Percentage\",\"expression\":\"(m1EC214 / (m1EC214+m2EC214)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.14\",\"Outcome\",\"FAILED\",{\"id\":\"m1EC214\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.14\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2EC214\",\"visible\":false,\"period\":86400}],[{\"label\":\"EC2.15 Failure Percentage\",\"expression\":\"(m1EC215 / (m1EC215+m2EC215)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.15\",\"Outcome\",\"FAILED\",{\"id\":\"m1EC215\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.15\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2EC215\",\"visible\":false,\"period\":86400}],[{\"label\":\"EC2.18 Failure Percentage\",\"expression\":\"(m1EC218 / (m1EC218+m2EC218)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.18\",\"Outcome\",\"FAILED\",{\"id\":\"m1EC218\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.18\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2EC218\",\"visible\":false,\"period\":86400}],[{\"label\":\"EC2.19 Failure Percentage\",\"expression\":\"(m1EC219 / (m1EC219+m2EC219)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.19\",\"Outcome\",\"FAILED\",{\"id\":\"m1EC219\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.19\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2EC219\",\"visible\":false,\"period\":86400}],[{\"label\":\"EC2.23 Failure Percentage\",\"expression\":\"(m1EC223 / (m1EC223+m2EC223)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.23\",\"Outcome\",\"FAILED\",{\"id\":\"m1EC223\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.23\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2EC223\",\"visible\":false,\"period\":86400}],[{\"label\":\"IAM.3 Failure Percentage\",\"expression\":\"(m1IAM3 / (m1IAM3+m2IAM3)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.3\",\"Outcome\",\"FAILED\",{\"id\":\"m1IAM3\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.3\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2IAM3\",\"visible\":false,\"period\":86400}],[{\"label\":\"IAM.7 Failure Percentage\",\"expression\":\"(m1IAM7 / (m1IAM7+m2IAM7)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.7\",\"Outcome\",\"FAILED\",{\"id\":\"m1IAM7\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.7\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2IAM7\",\"visible\":false,\"period\":86400}],[{\"label\":\"IAM.8 Failure Percentage\",\"expression\":\"(m1IAM8 / (m1IAM8+m2IAM8)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.8\",\"Outcome\",\"FAILED\",{\"id\":\"m1IAM8\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.8\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2IAM8\",\"visible\":false,\"period\":86400}],[{\"label\":\"IAM.11 Failure Percentage\",\"expression\":\"(m1IAM11 / (m1IAM11+m2IAM11)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.11\",\"Outcome\",\"FAILED\",{\"id\":\"m1IAM11\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.11\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2IAM11\",\"visible\":false,\"period\":86400}],[{\"label\":\"IAM.12 Failure Percentage\",\"expression\":\"(m1IAM12 / (m1IAM12+m2IAM12)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.12\",\"Outcome\",\"FAILED\",{\"id\":\"m1IAM12\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.12\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2IAM12\",\"visible\":false,\"period\":86400}],[{\"label\":\"IAM.13 Failure Percentage\",\"expression\":\"(m1IAM13 / (m1IAM13+m2IAM13)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.13\",\"Outcome\",\"FAILED\",{\"id\":\"m1IAM13\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.13\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2IAM13\",\"visible\":false,\"period\":86400}],[{\"label\":\"IAM.14 Failure Percentage\",\"expression\":\"(m1IAM14 / (m1IAM14+m2IAM14)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.14\",\"Outcome\",\"FAILED\",{\"id\":\"m1IAM14\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.14\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2IAM14\",\"visible\":false,\"period\":86400}],[{\"label\":\"IAM.15 Failure Percentage\",\"expression\":\"(m1IAM15 / (m1IAM15+m2IAM15)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.15\",\"Outcome\",\"FAILED\",{\"id\":\"m1IAM15\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.15\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2IAM15\",\"visible\":false,\"period\":86400}],[{\"label\":\"IAM.16 Failure Percentage\",\"expression\":\"(m1IAM16 / (m1IAM16+m2IAM16)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.16\",\"Outcome\",\"FAILED\",{\"id\":\"m1IAM16\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.16\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2IAM16\",\"visible\":false,\"period\":86400}],[{\"label\":\"IAM.17 Failure Percentage\",\"expression\":\"(m1IAM17 / (m1IAM17+m2IAM17)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.17\",\"Outcome\",\"FAILED\",{\"id\":\"m1IAM17\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.17\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2IAM17\",\"visible\":false,\"period\":86400}],[{\"label\":\"IAM.18 Failure Percentage\",\"expression\":\"(m1IAM18 / (m1IAM18+m2IAM18)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.18\",\"Outcome\",\"FAILED\",{\"id\":\"m1IAM18\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.18\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2IAM18\",\"visible\":false,\"period\":86400}],[{\"label\":\"IAM.22 Failure Percentage\",\"expression\":\"(m1IAM22 / (m1IAM22+m2IAM22)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.22\",\"Outcome\",\"FAILED\",{\"id\":\"m1IAM22\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"IAM.22\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2IAM22\",\"visible\":false,\"period\":86400}],[{\"label\":\"KMS.4 Failure Percentage\",\"expression\":\"(m1KMS4 / (m1KMS4+m2KMS4)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"KMS.4\",\"Outcome\",\"FAILED\",{\"id\":\"m1KMS4\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"KMS.4\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2KMS4\",\"visible\":false,\"period\":86400}],[{\"label\":\"Lambda.1 Failure Percentage\",\"expression\":\"(m1Lambda1 / (m1Lambda1+m2Lambda1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Lambda.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1Lambda1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Lambda.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2Lambda1\",\"visible\":false,\"period\":86400}],[{\"label\":\"RDS.1 Failure Percentage\",\"expression\":\"(m1RDS1 / (m1RDS1+m2RDS1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1RDS1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2RDS1\",\"visible\":false,\"period\":86400}],[{\"label\":\"RDS.2 Failure Percentage\",\"expression\":\"(m1RDS2 / (m1RDS2+m2RDS2)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.2\",\"Outcome\",\"FAILED\",{\"id\":\"m1RDS2\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.2\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2RDS2\",\"visible\":false,\"period\":86400}],[{\"label\":\"RDS.4 Failure Percentage\",\"expression\":\"(m1RDS4 / (m1RDS4+m2RDS4)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.4\",\"Outcome\",\"FAILED\",{\"id\":\"m1RDS4\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.4\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2RDS4\",\"visible\":false,\"period\":86400}],[{\"label\":\"RDS.5 Failure Percentage\",\"expression\":\"(m1RDS5 / (m1RDS5+m2RDS5)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.5\",\"Outcome\",\"FAILED\",{\"id\":\"m1RDS5\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.5\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2RDS5\",\"visible\":false,\"period\":86400}],[{\"label\":\"RDS.6 Failure Percentage\",\"expression\":\"(m1RDS6 / (m1RDS6+m2RDS6)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.6\",\"Outcome\",\"FAILED\",{\"id\":\"m1RDS6\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.6\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2RDS6\",\"visible\":false,\"period\":86400}],[{\"label\":\"RDS.7 Failure Percentage\",\"expression\":\"(m1RDS7 / (m1RDS7+m2RDS7)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.7\",\"Outcome\",\"FAILED\",{\"id\":\"m1RDS7\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.7\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2RDS7\",\"visible\":false,\"period\":86400}],[{\"label\":\"RDS.8 Failure Percentage\",\"expression\":\"(m1RDS8 / (m1RDS8+m2RDS8)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.8\",\"Outcome\",\"FAILED\",{\"id\":\"m1RDS8\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.8\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2RDS8\",\"visible\":false,\"period\":86400}],[{\"label\":\"RDS.13 Failure Percentage\",\"expression\":\"(m1RDS13 / (m1RDS13+m2RDS13)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.13\",\"Outcome\",\"FAILED\",{\"id\":\"m1RDS13\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.13\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2RDS13\",\"visible\":false,\"period\":86400}],[{\"label\":\"RDS.16 Failure Percentage\",\"expression\":\"(m1RDS16 / (m1RDS16+m2RDS16)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.16\",\"Outcome\",\"FAILED\",{\"id\":\"m1RDS16\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"RDS.16\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2RDS16\",\"visible\":false,\"period\":86400}],[{\"label\":\"Redshift.1 Failure Percentage\",\"expression\":\"(m1Redshift1 / (m1Redshift1+m2Redshift1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Redshift.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1Redshift1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Redshift.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2Redshift1\",\"visible\":false,\"period\":86400}],[{\"label\":\"Redshift.3 Failure Percentage\",\"expression\":\"(m1Redshift3 / (m1Redshift3+m2Redshift3)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Redshift.3\",\"Outcome\",\"FAILED\",{\"id\":\"m1Redshift3\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Redshift.3\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2Redshift3\",\"visible\":false,\"period\":86400}],[{\"label\":\"Redshift.4 Failure Percentage\",\"expression\":\"(m1Redshift4 / (m1Redshift4+m2Redshift4)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Redshift.4\",\"Outcome\",\"FAILED\",{\"id\":\"m1Redshift4\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Redshift.4\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2Redshift4\",\"visible\":false,\"period\":86400}],[{\"label\":\"Redshift.6 Failure Percentage\",\"expression\":\"(m1Redshift6 / (m1Redshift6+m2Redshift6)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Redshift.6\",\"Outcome\",\"FAILED\",{\"id\":\"m1Redshift6\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Redshift.6\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2Redshift6\",\"visible\":false,\"period\":86400}],[{\"label\":\"S3.1 Failure Percentage\",\"expression\":\"(m1S31 / (m1S31+m2S31)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1S31\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2S31\",\"visible\":false,\"period\":86400}],[{\"label\":\"S3.2 Failure Percentage\",\"expression\":\"(m1S32 / (m1S32+m2S32)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.2\",\"Outcome\",\"FAILED\",{\"id\":\"m1S32\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.2\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2S32\",\"visible\":false,\"period\":86400}],[{\"label\":\"S3.3 Failure Percentage\",\"expression\":\"(m1S33 / (m1S33+m2S33)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.3\",\"Outcome\",\"FAILED\",{\"id\":\"m1S33\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.3\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2S33\",\"visible\":false,\"period\":86400}],[{\"label\":\"S3.5 Failure Percentage\",\"expression\":\"(m1S35 / (m1S35+m2S35)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.5\",\"Outcome\",\"FAILED\",{\"id\":\"m1S35\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.5\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2S35\",\"visible\":false,\"period\":86400}],[{\"label\":\"S3.6 Failure Percentage\",\"expression\":\"(m1S36 / (m1S36+m2S36)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.6\",\"Outcome\",\"FAILED\",{\"id\":\"m1S36\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.6\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2S36\",\"visible\":false,\"period\":86400}],[{\"label\":\"S3.8 Failure Percentage\",\"expression\":\"(m1S38 / (m1S38+m2S38)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.8\",\"Outcome\",\"FAILED\",{\"id\":\"m1S38\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.8\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2S38\",\"visible\":false,\"period\":86400}],[{\"label\":\"S3.9 Failure Percentage\",\"expression\":\"(m1S39 / (m1S39+m2S39)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.9\",\"Outcome\",\"FAILED\",{\"id\":\"m1S39\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.9\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2S39\",\"visible\":false,\"period\":86400}],[{\"label\":\"S3.11 Failure Percentage\",\"expression\":\"(m1S311 / (m1S311+m2S311)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.11\",\"Outcome\",\"FAILED\",{\"id\":\"m1S311\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.11\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2S311\",\"visible\":false,\"period\":86400}],[{\"label\":\"S3.13 Failure Percentage\",\"expression\":\"(m1S313 / (m1S313+m2S313)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.13\",\"Outcome\",\"FAILED\",{\"id\":\"m1S313\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.13\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2S313\",\"visible\":false,\"period\":86400}],[{\"label\":\"SecretsManager.1 Failure Percentage\",\"expression\":\"(m1SecretsManager1 / (m1SecretsManager1+m2SecretsManager1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"SecretsManager.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1SecretsManager1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"SecretsManager.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2SecretsManager1\",\"visible\":false,\"period\":86400}],[{\"label\":\"SecretsManager.3 Failure Percentage\",\"expression\":\"(m1SecretsManager3 / (m1SecretsManager3+m2SecretsManager3)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"SecretsManager.3\",\"Outcome\",\"FAILED\",{\"id\":\"m1SecretsManager3\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"SecretsManager.3\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2SecretsManager3\",\"visible\":false,\"period\":86400}],[{\"label\":\"SecretsManager.4 Failure Percentage\",\"expression\":\"(m1SecretsManager4 / (m1SecretsManager4+m2SecretsManager4)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"SecretsManager.4\",\"Outcome\",\"FAILED\",{\"id\":\"m1SecretsManager4\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"SecretsManager.4\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2SecretsManager4\",\"visible\":false,\"period\":86400}],[{\"label\":\"SNS.1 Failure Percentage\",\"expression\":\"(m1SNS1 / (m1SNS1+m2SNS1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"SNS.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1SNS1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"SNS.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2SNS1\",\"visible\":false,\"period\":86400}],[{\"label\":\"SQS.1 Failure Percentage\",\"expression\":\"(m1SQS1 / (m1SQS1+m2SQS1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"SQS.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1SQS1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"SQS.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2SQS1\",\"visible\":false,\"period\":86400}],[{\"label\":\"SSM.4 Failure Percentage\",\"expression\":\"(m1SSM4 / (m1SSM4+m2SSM4)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"SSM.4\",\"Outcome\",\"FAILED\",{\"id\":\"m1SSM4\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"SSM.4\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2SSM4\",\"visible\":false,\"period\":86400}],[{\"label\":\"GuardDuty.1 Failure Percentage\",\"expression\":\"(m1GuardDuty1 / (m1GuardDuty1+m2GuardDuty1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"GuardDuty.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1GuardDuty1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"GuardDuty.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2GuardDuty1\",\"visible\":false,\"period\":86400}],[{\"label\":\"Athena.4 Failure Percentage\",\"expression\":\"(m1Athena4 / (m1Athena4+m2Athena4)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Athena.4\",\"Outcome\",\"FAILED\",{\"id\":\"m1Athena4\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Athena.4\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2Athena4\",\"visible\":false,\"period\":86400}],[{\"label\":\"APIGateway.1 Failure Percentage\",\"expression\":\"(m1APIGateway1 / (m1APIGateway1+m2APIGateway1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"APIGateway.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1APIGateway1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"APIGateway.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2APIGateway1\",\"visible\":false,\"period\":86400}],[{\"label\":\"APIGateway.5 Failure Percentage\",\"expression\":\"(m1APIGateway5 / (m1APIGateway5+m2APIGateway5)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"APIGateway.5\",\"Outcome\",\"FAILED\",{\"id\":\"m1APIGateway5\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"APIGateway.5\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2APIGateway5\",\"visible\":false,\"period\":86400}],[{\"label\":\"AutoScaling.3 Failure Percentage\",\"expression\":\"(m1AutoScaling3 / (m1AutoScaling3+m2AutoScaling3)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"AutoScaling.3\",\"Outcome\",\"FAILED\",{\"id\":\"m1AutoScaling3\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"AutoScaling.3\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2AutoScaling3\",\"visible\":false,\"period\":86400}],[{\"label\":\"Autoscaling.5 Failure Percentage\",\"expression\":\"(m1Autoscaling5 / (m1Autoscaling5+m2Autoscaling5)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Autoscaling.5\",\"Outcome\",\"FAILED\",{\"id\":\"m1Autoscaling5\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Autoscaling.5\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2Autoscaling5\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudWatch.16 Failure Percentage\",\"expression\":\"(m1CloudWatch16 / (m1CloudWatch16+m2CloudWatch16)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.16\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudWatch16\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudWatch.16\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudWatch16\",\"visible\":false,\"period\":86400}],[{\"label\":\"EC2.10 Failure Percentage\",\"expression\":\"(m1EC210 / (m1EC210+m2EC210)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.10\",\"Outcome\",\"FAILED\",{\"id\":\"m1EC210\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"EC2.10\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2EC210\",\"visible\":false,\"period\":86400}],[{\"label\":\"SSM.1 Failure Percentage\",\"expression\":\"(m1SSM1 / (m1SSM1+m2SSM1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"SSM.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1SSM1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"SSM.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2SSM1\",\"visible\":false,\"period\":86400}],[{\"label\":\"GuardDuty.2 Failure Percentage\",\"expression\":\"(m1GuardDuty2 / (m1GuardDuty2+m2GuardDuty2)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"GuardDuty.2\",\"Outcome\",\"FAILED\",{\"id\":\"m1GuardDuty2\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"GuardDuty.2\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2GuardDuty2\",\"visible\":false,\"period\":86400}],[{\"label\":\"GuardDuty.4 Failure Percentage\",\"expression\":\"(m1GuardDuty4 / (m1GuardDuty4+m2GuardDuty4)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"GuardDuty.4\",\"Outcome\",\"FAILED\",{\"id\":\"m1GuardDuty4\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"GuardDuty.4\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2GuardDuty4\",\"visible\":false,\"period\":86400}],[{\"label\":\"Macie.1 Failure Percentage\",\"expression\":\"(m1Macie1 / (m1Macie1+m2Macie1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Macie.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1Macie1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Macie.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2Macie1\",\"visible\":false,\"period\":86400}],[{\"label\":\"DynamoDB.1 Failure Percentage\",\"expression\":\"(m1DynamoDB1 / (m1DynamoDB1+m2DynamoDB1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"DynamoDB.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1DynamoDB1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"DynamoDB.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2DynamoDB1\",\"visible\":false,\"period\":86400}],[{\"label\":\"DynamoDB.5 Failure Percentage\",\"expression\":\"(m1DynamoDB5 / (m1DynamoDB5+m2DynamoDB5)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"DynamoDB.5\",\"Outcome\",\"FAILED\",{\"id\":\"m1DynamoDB5\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"DynamoDB.5\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2DynamoDB5\",\"visible\":false,\"period\":86400}],[{\"label\":\"DynamoDB.6 Failure Percentage\",\"expression\":\"(m1DynamoDB6 / (m1DynamoDB6+m2DynamoDB6)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"DynamoDB.6\",\"Outcome\",\"FAILED\",{\"id\":\"m1DynamoDB6\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"DynamoDB.6\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2DynamoDB6\",\"visible\":false,\"period\":86400}],[{\"label\":\"ElastiCache.1 Failure Percentage\",\"expression\":\"(m1ElastiCache1 / (m1ElastiCache1+m2ElastiCache1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"ElastiCache.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1ElastiCache1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"ElastiCache.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2ElastiCache1\",\"visible\":false,\"period\":86400}],[{\"label\":\"ElastiCache.2 Failure Percentage\",\"expression\":\"(m1ElastiCache2 / (m1ElastiCache2+m2ElastiCache2)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"ElastiCache.2\",\"Outcome\",\"FAILED\",{\"id\":\"m1ElastiCache2\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"ElastiCache.2\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2ElastiCache2\",\"visible\":false,\"period\":86400}],[{\"label\":\"ElastiCache.3 Failure Percentage\",\"expression\":\"(m1ElastiCache3 / (m1ElastiCache3+m2ElastiCache3)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"ElastiCache.3\",\"Outcome\",\"FAILED\",{\"id\":\"m1ElastiCache3\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"ElastiCache.3\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2ElastiCache3\",\"visible\":false,\"period\":86400}],[{\"label\":\"ECS.5 Failure Percentage\",\"expression\":\"(m1ECS5 / (m1ECS5+m2ECS5)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"ECS.5\",\"Outcome\",\"FAILED\",{\"id\":\"m1ECS5\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"ECS.5\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2ECS5\",\"visible\":false,\"period\":86400}],[{\"label\":\"ELB.1 Failure Percentage\",\"expression\":\"(m1ELB1 / (m1ELB1+m2ELB1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"ELB.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1ELB1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"ELB.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2ELB1\",\"visible\":false,\"period\":86400}],[{\"label\":\"ECR.1 Failure Percentage\",\"expression\":\"(m1ECR1 / (m1ECR1+m2ECR1)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"ECR.1\",\"Outcome\",\"FAILED\",{\"id\":\"m1ECR1\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"ECR.1\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2ECR1\",\"visible\":false,\"period\":86400}],[{\"label\":\"SSM.7 Failure Percentage\",\"expression\":\"(m1SSM7 / (m1SSM7+m2SSM7)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"SSM.7\",\"Outcome\",\"FAILED\",{\"id\":\"m1SSM7\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"SSM.7\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2SSM7\",\"visible\":false,\"period\":86400}],[{\"label\":\"CloudFormation.3 Failure Percentage\",\"expression\":\"(m1CloudFormation3 / (m1CloudFormation3+m2CloudFormation3)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudFormation.3\",\"Outcome\",\"FAILED\",{\"id\":\"m1CloudFormation3\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"CloudFormation.3\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2CloudFormation3\",\"visible\":false,\"period\":86400}],[{\"label\":\"S3.14 Failure Percentage\",\"expression\":\"(m1S314 / (m1S314+m2S314)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.14\",\"Outcome\",\"FAILED\",{\"id\":\"m1S314\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"S3.14\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2S314\",\"visible\":false,\"period\":86400}],[{\"label\":\"Inspector.InstanceVulnerability Failure Percentage\",\"expression\":\"(m1InspectorInstanceVulnerability / (m1InspectorInstanceVulnerability+m2InspectorInstanceVulnerability)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Inspector.InstanceVulnerability\",\"Outcome\",\"FAILED\",{\"id\":\"m1InspectorInstanceVulnerability\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Inspector.InstanceVulnerability\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2InspectorInstanceVulnerability\",\"visible\":false,\"period\":86400}],[{\"label\":\"GuardDuty.IAMUser Failure Percentage\",\"expression\":\"(m1GuardDutyIAMUser / (m1GuardDutyIAMUser+m2GuardDutyIAMUser)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"GuardDuty.IAMUser\",\"Outcome\",\"FAILED\",{\"id\":\"m1GuardDutyIAMUser\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"GuardDuty.IAMUser\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2GuardDutyIAMUser\",\"visible\":false,\"period\":86400}],[{\"label\":\"Macie.SensitiveDataS3Object Failure Percentage\",\"expression\":\"(m1MacieSensitiveDataS3Object / (m1MacieSensitiveDataS3Object+m2MacieSensitiveDataS3Object)) * 100\",\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Macie.SensitiveDataS3Object\",\"Outcome\",\"FAILED\",{\"id\":\"m1MacieSensitiveDataS3Object\",\"visible\":false,\"period\":86400}],[\"ASR\",\"RemediationOutcome\",\"ControlId\",\"Macie.SensitiveDataS3Object\",\"Outcome\",\"SUCCESS\",{\"id\":\"m2MacieSensitiveDataS3Object\",\"visible\":false,\"period\":86400}]],\"annotations\":{\"horizontal\":[{\"value\":",{"Ref":"RemediationFailureAlarmThreshold"},",\"label\":\"S3.9 Failure Percentage >= threshold for 1 datapoints within 1 day\",\"color\":\"#d62728\",\"visible\":true,\"yAxis\":\"left\"}]},\"yAxis\":{}}},{\"type\":\"text\",\"width\":24,\"height\":3,\"x\":0,\"y\":30,\"properties\":{\"markdown\":\"\\n## Runbook Assume Role Failures\\nThis widget displays the frequency of the remediation lambda failing to assume the role necessary to remediate on a different account.\\n\\nThis may indicate that ASR is attempting to remediate on a spoke account that does not have ASR installed.\\n\"}},{\"type\":\"metric\",\"width\":6,\"height\":6,\"x\":0,\"y\":33,\"properties\":{\"view\":\"timeSeries\",\"title\":\"Runbook Assume Role Failures\",\"region\":\"",{"Ref":"AWS::Region"},"\",\"metrics\":[[\"ASR\",\"AssumeRoleFailure\",{\"label\":\"Runbook Assume Role Failures\",\"period\":86400,\"stat\":\"Sum\"}]],\"annotations\":{\"horizontal\":[{\"label\":\"Runbook Assume Role Failures >= 1 for 1 datapoints within 1440 minutes\",\"value\":1,\"yAxis\":\"left\"}]},\"yAxis\":{\"left\":{\"showUnits\":false}}}},{\"type\":\"text\",\"width\":24,\"height\":3,\"x\":0,\"y\":39,\"properties\":{\"markdown\":\"\\n## Action Log\\nThis widget displays AWS resource changes that ASR has conducted in member accounts.\\n\\nThe actions shown are based on CloudTrail management events in the member accounts. Actions are only reported if the member stack is deployed with \\\"Create Action Log CloudTrail\\\" set to \\\"Yes\\\".\\n\"}},{\"type\":\"log\",\"width\":24,\"height\":8,\"x\":0,\"y\":42,\"properties\":{\"view\":\"table\",\"title\":\"CloudTrail Management Actions by ASR\",\"region\":\"",{"Ref":"AWS::Region"},"\",\"query\":\"SOURCE '/aws/lambda/SO0111-ASR-CloudTrailEvents' | fields @timestamp, eventSource, eventName, awsRegion, recipientAccountId, resources.0.ARN, @message\\n| sort @timestamp desc\\n| limit 20\"}},{\"type\":\"text\",\"width\":24,\"height\":2,\"x\":0,\"y\":50,\"properties\":{\"markdown\":\"\\n## Rollback\\nPre-remediation snapshot capture and one-click rollback execution activity. Populated only when rollback is enabled (EnableRollback=yes). The Snapshot Capture Outcomes widget sums the per-ControlId series, so it also requires EnableEnhancedCloudWatchMetrics=yes; without it only the aggregate SnapshotCaptureFailure alarm is populated.\\n\"}},{\"type\":\"metric\",\"width\":12,\"height\":6,\"x\":0,\"y\":52,\"properties\":{\"view\":\"timeSeries\",\"title\":\"Snapshot Capture Outcomes\",\"region\":\"",{"Ref":"AWS::Region"},"\",\"metrics\":[[{\"label\":\"Captured\",\"expression\":\"SUM(SEARCH('{ASR,ControlId} MetricName=\\\"SnapshotCaptureSuccess\\\"', 'Sum', 300))\"}],[{\"label\":\"Failed\",\"expression\":\"SUM(SEARCH('{ASR,ControlId} MetricName=\\\"SnapshotCaptureFailure\\\"', 'Sum', 300))\"}],[{\"label\":\"Skipped (not eligible)\",\"expression\":\"SUM(SEARCH('{ASR,ControlId} MetricName=\\\"SnapshotCaptureSkipped\\\"', 'Sum', 300))\"}]],\"yAxis\":{}}},{\"type\":\"metric\",\"width\":12,\"height\":6,\"x\":12,\"y\":52,\"properties\":{\"view\":\"timeSeries\",\"title\":\"Rollback Executions by Outcome\",\"region\":\"",{"Ref":"AWS::Region"},"\",\"metrics\":[[\"ASR\",\"RollbackExecutionOutcome\",\"Outcome\",\"Success\",{\"label\":\"Success\",\"stat\":\"Sum\"}],[\"ASR\",\"RollbackExecutionOutcome\",\"Outcome\",\"Failed\",{\"label\":\"Failed\",\"stat\":\"Sum\"}]],\"yAxis\":{}}}]}"]]},"DashboardName":"ASR-Remediation-Metrics-Dashboard","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"Condition":"isUsingCloudWatchMetrics"},"CognitoRiskAlarm186179D3":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"Alarm for the Automated Security Response on AWS Cognito User Pool: Requests that Amazon Cognito marked as risky","AlarmName":"ASR-Cognito-Risk","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"Dimensions":[{"Name":"UserPool","Value":{"Fn::GetAtt":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB","Outputs.SolutionDeployStackWebUINestedStackCognitoConstructASRUserPool51186313Ref"]}}],"EvaluationPeriods":5,"MetricName":"Risk","Namespace":"AWS/Cognito","Period":60,"Statistic":"Sum","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":1,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"cognitoAlarmsEnabled"},"CognitoOverrideBlockAlarm65C6E1D5":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"Alarm for the Automated Security Response on AWS Cognito User Pool: Requests that Amazon Cognito blocked because of the configuration provided by the developer","AlarmName":"ASR-Cognito-OverrideBlock","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":5,"Dimensions":[{"Name":"UserPool","Value":{"Fn::GetAtt":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB","Outputs.SolutionDeployStackWebUINestedStackCognitoConstructASRUserPool51186313Ref"]}}],"EvaluationPeriods":5,"MetricName":"OverrideBlock","Namespace":"AWS/Cognito","Period":60,"Statistic":"Sum","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":1,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"cognitoAlarmsEnabled"},"CognitoSignInThrottlesAlarm8626B280":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"Alarm for the Automated Security Response on AWS Cognito User Pool: Total number of throttled user authentication requests made to the Amazon Cognito user pool","AlarmName":"ASR-Cognito-SignInThrottles","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":5,"Dimensions":[{"Name":"UserPool","Value":{"Fn::GetAtt":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB","Outputs.SolutionDeployStackWebUINestedStackCognitoConstructASRUserPool51186313Ref"]}}],"EvaluationPeriods":5,"MetricName":"SignInThrottles","Namespace":"AWS/Cognito","Period":60,"Statistic":"Sum","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":1,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"cognitoAlarmsEnabled"},"CognitoM2MForbiddenAlarm39BEE7BD":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"Alarm for the Automated Security Response on AWS Cognito User Pool: a machine-to-machine (M2M) token was denied Full Access for lacking the asr-api/full-access scope. A non-zero count indicates a misconfigured M2M client or probing against the API.","AlarmName":"ASR-Cognito-M2MForbidden","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"Dimensions":[{"Name":"UserPool","Value":{"Fn::GetAtt":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB","Outputs.SolutionDeployStackWebUINestedStackCognitoConstructASRUserPool51186313Ref"]}}],"EvaluationPeriods":5,"MetricName":"M2MForbiddenAuthorization","Namespace":"ASR","Period":60,"Statistic":"Sum","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":1,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"cognitoAlarmsEnabled"},"ApiControlStateChangeAlarmBBC89AE4":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"Automated Security Response on AWS: An unusually high number of control state-change (bulk-edit) requests occurred within one minute. This can indicate a compromised credential rapidly enabling or disabling automated remediation controls.","AlarmName":"ASR-Api-ControlStateChangeSpike","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"MetricName":"ControlStateChangeRequest","Namespace":"ASR","Period":60,"Statistic":"Sum","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":5,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"apiRateLimitAlarmsEnabled"},"ApiSensitiveWriteAlarmAB2825CC":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"Automated Security Response on AWS: An unusually high number of sensitive write requests (user, filter, notification, or finding-action changes) occurred within one minute.","AlarmName":"ASR-Api-SensitiveWriteSpike","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"Metrics":[{"Expression":"SUM([FILL(critical,0),FILL(sensitive,0)])","Id":"expr_1","Label":"Sensitive write requests","ReturnData":true},{"Id":"critical","MetricStat":{"Metric":{"Dimensions":[{"Name":"Category","Value":"critical"}],"MetricName":"SensitiveWriteRequest","Namespace":"ASR"},"Period":60,"Stat":"Sum"},"ReturnData":false},{"Id":"sensitive","MetricStat":{"Metric":{"Dimensions":[{"Name":"Category","Value":"sensitiveWrite"}],"MetricName":"SensitiveWriteRequest","Namespace":"ASR"},"Period":60,"Stat":"Sum"},"ReturnData":false}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":20,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"apiRateLimitAlarmsEnabled"},"McpToolErrorAlarmEE3C7CA5":{"Type":"AWS::CloudWatch::Alarm","Properties":{"ActionsEnabled":true,"AlarmActions":[{"Ref":"ASRAlarmTopic7CEFBDF9"}],"AlarmDescription":"Automated Security Response on AWS: An unusually high number of MCP tool invocations failed with server errors within five minutes. This can indicate a misbehaving MCP client, a broken tool, an attempt to probe the MCP server, or a transient dependency failure (for example, being unable to read the Cognito signing keys or the caller's authorization data).","AlarmName":"ASR-Mcp-ToolErrorSpike","ComparisonOperator":"GreaterThanOrEqualToThreshold","DatapointsToAlarm":1,"EvaluationPeriods":1,"MetricName":"McpToolError","Namespace":"ASR","Period":300,"Statistic":"Sum","Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}],"Threshold":5,"TreatMissingData":"notBreaching"},"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES"]}},"Condition":"mcpServerAlarmsEnabled"},"BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC":{"Type":"AWS::IAM::Role","Properties":{"AssumeRolePolicyDocument":{"Statement":[{"Action":"sts:AssumeRole","Effect":"Allow","Principal":{"Service":"lambda.amazonaws.com"}}],"Version":"2012-10-17"},"ManagedPolicyArns":[{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"]]}],"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"Condition":"isUsingCloudWatchMetricsAlarms"},"BucketNotificationsHandler050a0587b7544547bf325f094a3db8347ECC3691":{"Type":"AWS::Lambda::Function","Properties":{"Description":"AWS CloudFormation handler for \"Custom::S3BucketNotifications\" resources (@aws-cdk/aws-s3)","Code":{"ZipFile":"import boto3  # type: ignore\nimport json\nimport logging\nimport urllib.request\n\ns3 = boto3.client(\"s3\")\n\nEVENTBRIDGE_CONFIGURATION = 'EventBridgeConfiguration'\nCONFIGURATION_TYPES = [\"TopicConfigurations\", \"QueueConfigurations\", \"LambdaFunctionConfigurations\"]\n\ndef handler(event: dict, context):\n  response_status = \"SUCCESS\"\n  error_message = \"\"\n  try:\n    props = event[\"ResourceProperties\"]\n    notification_configuration = props[\"NotificationConfiguration\"]\n    managed = props.get('Managed', 'true').lower() == 'true'\n    skipDestinationValidation = props.get('SkipDestinationValidation', 'false').lower() == 'true'\n    stack_id = event['StackId']\n    old = event.get(\"OldResourceProperties\", {}).get(\"NotificationConfiguration\", {})\n    if managed:\n      config = handle_managed(event[\"RequestType\"], notification_configuration)\n    else:\n      config = handle_unmanaged(props[\"BucketName\"], stack_id, event[\"RequestType\"], notification_configuration, old)\n    s3.put_bucket_notification_configuration(Bucket=props[\"BucketName\"], NotificationConfiguration=config, SkipDestinationValidation=skipDestinationValidation)\n  except Exception as e:\n    logging.exception(\"Failed to put bucket notification configuration\")\n    response_status = \"FAILED\"\n    error_message = f\"Error: {str(e)}. \"\n  finally:\n    submit_response(event, context, response_status, error_message)\n\ndef handle_managed(request_type, notification_configuration):\n  if request_type == 'Delete':\n    return {}\n  return notification_configuration\n\ndef handle_unmanaged(bucket, stack_id, request_type, notification_configuration, old):\n  def get_id(n):\n    n['Id'] = ''\n    sorted_notifications = sort_filter_rules(n)\n    strToHash=json.dumps(sorted_notifications, sort_keys=True).replace('\"Name\": \"prefix\"', '\"Name\": \"Prefix\"').replace('\"Name\": \"suffix\"', '\"Name\": \"Suffix\"')\n    return f\"{stack_id}-{hash(strToHash)}\"\n  def with_id(n):\n    n['Id'] = get_id(n)\n    return n\n\n  external_notifications = {}\n  existing_notifications = s3.get_bucket_notification_configuration(Bucket=bucket)\n  for t in CONFIGURATION_TYPES:\n    if request_type == 'Update':\n        old_incoming_ids = [get_id(n) for n in old.get(t, [])]\n        external_notifications[t] = [n for n in existing_notifications.get(t, []) if not get_id(n) in old_incoming_ids]      \n    elif request_type == 'Delete':\n        external_notifications[t] = [n for n in existing_notifications.get(t, []) if not n['Id'].startswith(f\"{stack_id}-\")]\n    elif request_type == 'Create':\n        external_notifications[t] = [n for n in existing_notifications.get(t, [])]\n  if EVENTBRIDGE_CONFIGURATION in existing_notifications:\n    external_notifications[EVENTBRIDGE_CONFIGURATION] = existing_notifications[EVENTBRIDGE_CONFIGURATION]\n\n  if request_type == 'Delete':\n    return external_notifications\n\n  notifications = {}\n  for t in CONFIGURATION_TYPES:\n    external = external_notifications.get(t, [])\n    incoming = [with_id(n) for n in notification_configuration.get(t, [])]\n    notifications[t] = external + incoming\n\n  if EVENTBRIDGE_CONFIGURATION in notification_configuration:\n    notifications[EVENTBRIDGE_CONFIGURATION] = notification_configuration[EVENTBRIDGE_CONFIGURATION]\n  elif EVENTBRIDGE_CONFIGURATION in external_notifications:\n    notifications[EVENTBRIDGE_CONFIGURATION] = external_notifications[EVENTBRIDGE_CONFIGURATION]\n\n  return notifications\n\ndef submit_response(event: dict, context, response_status: str, error_message: str):\n  response_body = json.dumps(\n    {\n      \"Status\": response_status,\n      \"Reason\": f\"{error_message}See the details in CloudWatch Log Stream: {context.log_stream_name}\",\n      \"PhysicalResourceId\": event.get(\"PhysicalResourceId\") or event[\"LogicalResourceId\"],\n      \"StackId\": event[\"StackId\"],\n      \"RequestId\": event[\"RequestId\"],\n      \"LogicalResourceId\": event[\"LogicalResourceId\"],\n      \"NoEcho\": False,\n    }\n  ).encode(\"utf-8\")\n  headers = {\"content-type\": \"\", \"content-length\": str(len(response_body))}\n  try:\n    req = urllib.request.Request(url=event[\"ResponseURL\"], headers=headers, data=response_body, method=\"PUT\")\n    with urllib.request.urlopen(req) as response:\n      print(response.read().decode(\"utf-8\"))\n    print(\"Status code: \" + response.reason)\n  except Exception as e:\n      print(\"send(..) failed executing request.urlopen(..): \" + str(e))\n\ndef sort_filter_rules(json_obj):\n  if not isinstance(json_obj, dict):\n      return json_obj\n  for key, value in json_obj.items():\n      if isinstance(value, dict):\n          json_obj[key] = sort_filter_rules(value)\n      elif isinstance(value, list):\n          json_obj[key] = [sort_filter_rules(item) for item in value]\n  if \"Filter\" in json_obj and \"Key\" in json_obj[\"Filter\"] and \"FilterRules\" in json_obj[\"Filter\"][\"Key\"]:\n      filter_rules = json_obj[\"Filter\"][\"Key\"][\"FilterRules\"]\n      sorted_filter_rules = sorted(filter_rules, key=lambda x: x[\"Name\"])\n      json_obj[\"Filter\"][\"Key\"][\"FilterRules\"] = sorted_filter_rules\n  return json_obj"},"Handler":"index.handler","Role":{"Fn::GetAtt":["BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC","Arn"]},"Runtime":"python3.13","Timeout":300,"Tags":[{"Key":"Solutions:SolutionID","Value":"SO0111"},{"Key":"Solutions:SolutionName","Value":"automated-security-response-on-aws"},{"Key":"Solutions:SolutionVersion","Value":"v4.1.0"}]},"DependsOn":["BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC"],"Metadata":{"guard":{"SuppressedRules":["CFN_NO_EXPLICIT_RESOURCE_NAMES","LAMBDA_CONCURRENCY_CHECK","LAMBDA_INSIDE_VPC"]}},"Condition":"isUsingCloudWatchMetricsAlarms"}},"Parameters":{"EnableRollback":{"Type":"String","Default":"no","AllowedValues":["yes","no"],"Description":"Enable the rollback feature. When set to \"no\", the API rejects rollback requests, the Orchestrator refuses to start a rollback execution, and the UI hides rollback controls. Remediations still record a pre-remediation snapshot in each member account. Select \"yes\" to allow one-click rollback for supported controls."},"EnableEnhancedCloudWatchMetrics":{"Type":"String","Default":"no","AllowedValues":["yes","no"],"Description":"Enable collection of metrics per Control ID in addition to standard metrics. You must also select 'yes' for UseCloudWatchMetrics to enable enhanced metric collection. The added cost of these additional custom metrics could be up to $67.20/month."},"ShouldDeployWebUI":{"Type":"String","Default":"yes","AllowedValues":["yes","no"],"Description":"Deploy the Web UI components including API Gateway, Lambda functions, and CloudFront distribution. Select \"yes\" to enable the web-based dashboard for viewing findings and remediation status."},"EnableMcpServer":{"Type":"String","Default":"no","AllowedValues":["yes","no"],"Description":"Deploy the optional MCP server (AgentCore Gateway) as an MCP front door for AI agents. Requires an AWS Region that supports Amazon Bedrock AgentCore."},"AdditionalMcpCallbackUrls":{"Type":"CommaDelimitedList","Default":"","Description":"Additional OAuth callback URLs for MCP clients. Each URL must use HTTPS, or HTTP on a loopback host. Leave blank to use only the built-in Kiro, Claude Code, and Codex callbacks."},"MFAConfiguration":{"Type":"String","Default":"OFF","AllowedValues":["OFF","OPTIONAL","REQUIRED"],"Description":"MFA configuration for the ASR Web UI. OFF: no MFA. OPTIONAL: users can self-enroll in TOTP MFA. REQUIRED: all users must have MFA (recommended only for new deployments)."},"AdminUserEmail":{"Type":"String","Default":"","Description":"Email address for the initial admin user. This user will have full administrative access to the ASR Web UI. Required when Web UI is enabled."},"TicketGenFunctionName":{"Type":"String","Default":"","AllowedPattern":"^$|^([a-zA-Z0-9\\-_]{1,64})?$","Description":"Enter the name of the Lambda function you would like to use to generate tickets when remediations are successfully completed. This function must be in the same region where you are deploying this stack. Leave this field blank if you do not want to enable ticketing. The function you provide should be implemented to create a ticket in your service of choice based on input from the Orchestrator step function. To reference or use the provided Ticket Generator function for Jira or ServiceNow, see the Blueprint stacks in the solution's implementation guide."},"ReuseOrchestratorLogGroup":{"Type":"String","Default":"no","AllowedValues":["yes","no"],"Description":"Reuse existing Orchestrator Log Group? Choose \"yes\" if the log group already exists, else \"no\".\n       If you are upgrading to v2.3.0+ from an earlier version choose \"no\"."},"Namespace":{"Type":"String","AllowedPattern":"(?!(^xn--|^sthree-|^sthree-configurator|^amzn-s3-demo-|.+-s3alias|.+--ol-s3|.+.mrap|.+--x-s3$))^[a-z0-9][a-z0-9-]{1,7}[a-z0-9]$","ConstraintDescription":"The Namespace parameter must follow naming restrictions for S3 buckets and have a minimum length of 3 and a maximum length of 9. https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html","Description":"Choose a unique namespace to be added as a suffix to remediation IAM role names. The same namespace should be used in the Member Roles and Member stacks. This string should be unique for each solution deployment, but does not need to be changed during stack updates.","MaxLength":9,"MinLength":3},"SynchronizationFindingsConstructSyncMaxAttemptsPerAccount7CF7E97B":{"Type":"Number","Default":5,"Description":"Circuit breaker: the maximum number of times the import of security findings re-runs a single account before giving up on that account for this run. Each slice imports up to ~10k findings, so the default of 5 covers >50k findings per account. Raise it only for accounts with an exceptionally large backlog.","MaxValue":100,"MinValue":1},"LoadAFSBPAdminStack":{"Type":"String","Default":"no","AllowedValues":["yes","no"],"Description":"Install the admin components to enable automated remediation for AFSBP controls. To activate automated remediations, ensure the corresponding EventBridge rules are enabled after deployment."},"LoadCIS120AdminStack":{"Type":"String","Default":"no","AllowedValues":["yes","no"],"Description":"Install the admin components to enable automated remediation for CIS120 controls. To activate automated remediations, ensure the corresponding EventBridge rules are enabled after deployment."},"LoadCIS140AdminStack":{"Type":"String","Default":"no","AllowedValues":["yes","no"],"Description":"Install the admin components to enable automated remediation for CIS140 controls. To activate automated remediations, ensure the corresponding EventBridge rules are enabled after deployment."},"LoadNIST80053AdminStack":{"Type":"String","Default":"no","AllowedValues":["yes","no"],"Description":"Install the admin components to enable automated remediation for NIST80053 controls. To activate automated remediations, ensure the corresponding EventBridge rules are enabled after deployment."},"LoadPCI321AdminStack":{"Type":"String","Default":"no","AllowedValues":["yes","no"],"Description":"Install the admin components to enable automated remediation for PCI321 controls. To activate automated remediations, ensure the corresponding EventBridge rules are enabled after deployment."},"LoadCIS300AdminStack":{"Type":"String","Default":"no","AllowedValues":["yes","no"],"Description":"Install the admin components to enable automated remediation for CIS300 controls. To activate automated remediations, ensure the corresponding EventBridge rules are enabled after deployment."},"LoadSCAdminStack":{"Type":"String","Default":"yes","AllowedValues":["yes","no"],"Description":"If the consolidated control findings feature is turned on in Security Hub, only enable the Security Control (SC) playbook. If the feature is not turned on, enable the playbooks for the security standards that are enabled in Security Hub. Enabling additional playbooks can result in reaching the quota for EventBridge Rules."},"UseCloudWatchMetrics":{"Type":"String","Default":"yes","AllowedValues":["yes","no"],"Description":"Enable collection of operational metrics and create a CloudWatch dashboard to monitor solution operations"},"UseCloudWatchMetricsAlarms":{"Type":"String","Default":"yes","AllowedValues":["yes","no"],"Description":"Create CloudWatch Alarms for gathered metrics"},"RemediationFailureAlarmThreshold":{"Type":"Number","Default":5,"Description":"Percentage of failures in one period (1 day) to trigger the remediation failures alarm for a given control ID. E.g., to specify 20% then enter the number 20. These alarms will not be created if you select \"no\" for either of the following standardMetricParameters: UseCloudWatchMetricsAlarms, EnableEnhancedCloudWatchMetrics."},"RollbackRateLimitThreshold":{"Type":"Number","Default":10,"Description":"Number of rollback executions in one period (1 day) to trigger the rollback rate-limit alarm. E.g., to alarm on 10 or more rollbacks per day, enter 10."}},"Conditions":{"enhancedMetricsEnabled":{"Fn::Equals":[{"Ref":"EnableEnhancedCloudWatchMetrics"},"yes"]},"webUIEnabled":{"Fn::Equals":[{"Ref":"ShouldDeployWebUI"},"yes"]},"agentCoreGatewayEnabled":{"Fn::Equals":[{"Ref":"EnableMcpServer"},"yes"]},"coreServicesEnabled":{"Fn::Or":[{"Fn::Equals":[{"Ref":"ShouldDeployWebUI"},"yes"]},{"Fn::Equals":[{"Ref":"EnableMcpServer"},"yes"]}]},"IsCommercialPartition":{"Fn::Equals":[{"Ref":"AWS::Partition"},"aws"]},"orchestratorTicketingEnabledConditionEE999626":{"Fn::Not":[{"Fn::Equals":[{"Ref":"TicketGenFunctionName"},""]}]},"loadAFSBPCond":{"Fn::Equals":[{"Ref":"LoadAFSBPAdminStack"},"yes"]},"loadCIS120Cond":{"Fn::Equals":[{"Ref":"LoadCIS120AdminStack"},"yes"]},"loadCIS140Cond":{"Fn::Equals":[{"Ref":"LoadCIS140AdminStack"},"yes"]},"loadNIST80053Cond":{"Fn::Equals":[{"Ref":"LoadNIST80053AdminStack"},"yes"]},"loadPCI321Cond":{"Fn::Equals":[{"Ref":"LoadPCI321AdminStack"},"yes"]},"loadCIS300Cond":{"Fn::Equals":[{"Ref":"LoadCIS300AdminStack"},"yes"]},"loadSCCond":{"Fn::Equals":[{"Ref":"LoadSCAdminStack"},"yes"]},"isUsingCloudWatchMetrics":{"Fn::Equals":[{"Ref":"UseCloudWatchMetrics"},"yes"]},"isUsingCloudWatchMetricsAlarms":{"Fn::And":[{"Condition":"isUsingCloudWatchMetrics"},{"Fn::Equals":[{"Ref":"UseCloudWatchMetricsAlarms"},"yes"]}]},"enhancedAlarmsEnabled":{"Fn::And":[{"Condition":"enhancedMetricsEnabled"},{"Condition":"isUsingCloudWatchMetricsAlarms"}]},"rollbackAlarmEnabled":{"Fn::And":[{"Condition":"isUsingCloudWatchMetricsAlarms"},{"Fn::Equals":[{"Ref":"EnableRollback"},"yes"]}]},"cognitoAlarmsEnabled":{"Fn::And":[{"Condition":"isUsingCloudWatchMetricsAlarms"},{"Condition":"webUIEnabled"}]},"apiRateLimitAlarmsEnabled":{"Fn::And":[{"Condition":"isUsingCloudWatchMetricsAlarms"},{"Condition":"webUIEnabled"}]},"mcpServerAlarmsEnabled":{"Fn::And":[{"Condition":"isUsingCloudWatchMetricsAlarms"},{"Condition":"agentCoreGatewayEnabled"}]}},"Rules":{"AdminUserEmailValidation":{"RuleCondition":{"Fn::Or":[{"Fn::Equals":[{"Ref":"ShouldDeployWebUI"},"yes"]},{"Fn::Equals":[{"Ref":"EnableMcpServer"},"yes"]}]},"Assertions":[{"Assert":{"Fn::Not":[{"Fn::Equals":[{"Ref":"AdminUserEmail"},""]}]},"AssertDescription":"AdminUserEmail is required when the Web UI or the MCP server is enabled"}]}},"Outputs":{"McpGatewayUrl":{"Description":"MCP server endpoint URL. Register this in your MCP client / DevOps Agent console.","Value":{"Fn::Join":["",["https://",{"Fn::GetAtt":["McpGatewayNestedStackNestedStackMcpGatewayNestedStackNestedStackResource8AA8EED2","Outputs.SolutionDeployStackMcpGatewayNestedStackMcpGatewayBC17F7A2GatewayIdentifier"]},".gateway.bedrock-agentcore.",{"Ref":"AWS::Region"},".amazonaws.com/mcp"]]},"Condition":"agentCoreGatewayEnabled"},"McpGatewayClientId":{"Description":"Public Cognito OAuth client ID for native MCP clients.","Value":{"Fn::GetAtt":["McpGatewayNestedStackNestedStackMcpGatewayNestedStackNestedStackResource8AA8EED2","Outputs.SolutionDeployStackMcpGatewayNestedStackMcpGatewayMcpGatewayClient96055B8ARef"]},"Condition":"agentCoreGatewayEnabled"},"McpGatewayScopes":{"Description":"Space-delimited OAuth scopes native MCP clients must request during login.","Value":"openid email profile","Condition":"agentCoreGatewayEnabled"},"McpCodexCallbackUrl":{"Description":"Exact Codex OAuth callback URL registered for this MCP gateway deployment.","Value":{"Fn::GetAtt":["McpGatewayNestedStackNestedStackMcpGatewayNestedStackNestedStackResource8AA8EED2","Outputs.SolutionDeployStackMcpGatewayNestedStackMcpGatewayMcpNativeClientCallbackRegistration2CF59A07CodexCallbackUrl"]},"Condition":"agentCoreGatewayEnabled"},"GeneratedTicketingLambdafunctionARN":{"Description":"The Lambda ARN constructed from the Ticket Generator Function Name you have provided as input to the stack. This ARN is used by the solution to plug your ticketing function into the Orchestrator step function. This field will be empty if you did not provide a ticketing Lambda Function name.","Value":{"Fn::Join":["",["arn:",{"Ref":"AWS::Partition"},":lambda:",{"Ref":"AWS::Region"},":",{"Ref":"AWS::AccountId"},":function:",{"Ref":"TicketGenFunctionName"}]]}},"ASRFindingsDynamoDBTable":{"Description":"Table used to store findings that ASR supports for remediation.","Value":{"Ref":"ASRFindingsTable3FD52B9C"}},"RemediationConfigurationDynamoDBTable":{"Description":"Table used to control the enablement of automatic remediations for a given control.","Value":{"Ref":"RemediationConfigTable24F19C3B"}},"ResourceFiltersDynamoDBTable":{"Description":"Table used to store reusable resource filter definitions for scoping automated remediations.","Value":{"Ref":"ResourceFiltersTable4266014F"}},"UserAccountMappingDynamoDBTable":{"Description":"Table used to store user account access permissions for Account Operator users.","Value":{"Fn::GetAtt":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB","Outputs.SolutionDeployStackWebUINestedStackUserAccountMappingTable3A0161FEArn"]},"Condition":"webUIEnabled"},"WebUIURL":{"Description":"URL for the Web UI","Value":{"Fn::Join":["",["https://",{"Fn::GetAtt":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB","Outputs.FrontendDistributionDomainName"]}]]},"Condition":"webUIEnabled"},"APIEndpoint":{"Description":"API Gateway endpoint URL","Value":{"Fn::GetAtt":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB","Outputs.ApiEndpoint"]},"Condition":"webUIEnabled"},"UserPoolId":{"Description":"Cognito User Pool ID for the Web UI","Value":{"Fn::GetAtt":["WebUINestedStackNestedStackWebUINestedStackNestedStackResourceEF0A1EDB","Outputs.SolutionDeployStackWebUINestedStackCognitoConstructASRUserPool51186313Ref"]},"Condition":"webUIEnabled"}}}