Skip to content

Commit 23999a4

Browse files
authored
Merge pull request #229 from aws-solutions/release/v2.3.0
release v2.3.0
2 parents bae02d4 + e366cf3 commit 23999a4

File tree

293 files changed

+23951
-17037
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

293 files changed

+23951
-17037
lines changed

.gitignore

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44
/deployment/regional-s3-assets/
55
/deployment/setenv.sh
66
/deployment/temp/
7-
7+
/build
88
# test
99
/deployment/test/coverage-reports/
10+
requirements_dev.txt
1011

1112
# Typescript
1213
/source/dist/
@@ -43,4 +44,4 @@ requirements.txt
4344
.idea/
4445

4546
# system
46-
.DS_Store
47+
.DS_Store

AWSSD-DevNotes.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
# SHARR v1.3.0
1+
# ASR v2.3.0
22

33
## How it works
44

55
- Security Hub Custom Actions send selected finding events to CloudWatch Logs
6-
- EventBridge rules matching SHARR-supported findings send the findings to the SHARR Orchestrator
6+
- EventBridge rules matching ASR-supported findings send the findings to the ASR Orchestrator
77
- The Orchestrator, an AWS Step Function, uses finding data to determine which account and remediation to execute, verifies that the remediation is active in that account, executes it, and monitors until completion.
88

99
### SSM Parameters
1010
There are N parameters that control processing under /Solutions/SO0111:
11-
CMK_ARN - encryption key for the AWS FSBP runbooks
11+
CMK_ARN - encryption key for the AWS AFSBP runbooks
1212
CMK_ARN - Admin account only, KMS key for solution encryption
13-
SNS_Topic_Arn - arn of the SHARR topic
13+
SNS_Topic_Arn - arn of the ASR topic
1414
sendAnonymizedMetrics - controls whether the solution sends metrics
1515
version - solution version
1616

@@ -111,10 +111,10 @@ Need to enable AWS Config on all 5 accounts
111111

112112
- Verify it produces the expected results
113113

114-
- Verify logging to CloudWatch LogGroup "SHARR"
114+
- Verify logging to CloudWatch LogGroup "SO0111-ASR"
115115

116116
- Note: Lambda logs to the usual CW Logs prefix. Application data is
117-
logged to SHARR.
117+
logged to SO0111-ASR.
118118

119119
- Verify that remediated findings' workflow status is updated
120120

AWSSD-README.md

Lines changed: 41 additions & 41 deletions
Large diffs are not rendered by default.

CHANGELOG.md

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,57 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.3.0] - 2025-07-16
9+
10+
### Added
11+
12+
- Remediations for additional control ids, see `source/playbooks/SC/lib/sc_remediations.ts` for details
13+
- Filtering by Account ID for automated remediation executions
14+
- AssumeRoleFailure step to the Orchestrator Step Function for error handling
15+
- Enhanced failure metric states
16+
- Anonymized metrics for CloudFormation parameter selections
17+
- SSM parameters security validation
18+
19+
### Removed
20+
21+
- ServiceCatalog Application Registry integration
22+
- Deprecated `zlib` package from CloudTrail Event Processor lambda
23+
- `requirements_dev.txt` from version control
24+
- Redundant anonymized metric publishing from check_ssm_execution lambda
25+
26+
### Changed
27+
28+
- Upgraded NodeJS runtime for CloudTrail Event Processor lambda from 20->22
29+
- Refactored member roles & remediation runbook stacks into separate files
30+
- Replaced resource names and references to old solution name ("SHARR") with current solution name ("ASR")
31+
- Some logical IDs with references to "SHARR" were not changed to avoid breaking the update path
32+
- Any KMS key names/aliases/logical IDs were left unchanged to avoid disrupting encryption.
33+
- Renamed error strings published by Orchestrator steps as "States" and consumed in cloudwatch_metrics.ts
34+
- Removed AwsSolutionsChecks from CDK build
35+
- Updated grouping of CloudWatch metrics parameters for clarity
36+
- Updated dependencies: Jinja2, Cryptography, babel, aws-cdk-lib, aws-cdk, urllib3, moto, @cdklabs/cdk-ssm-documents, jest libs
37+
- Support for Poetry v2
38+
- Refactored lambdas and runbooks for code quality
39+
- 'Estimated Hours Saved' dashboard widget
40+
- Renamed CloudFormation templates to align with current solution name: Automated Security Response on AWS (ASR)
41+
- Appended account ID to action log ManagementEvents S3 bucket to avoid bucket name clashing among member stack deployments with the same `namespace`
42+
43+
### Fixed
44+
45+
- Python handler referenced in RevokeUnusedIAMUserCredentials.yaml to match RevokeUnusedIAMUserCredentials.py
46+
- Remediation runbooks that rely on unstable Resources.Details finding field
47+
- Regular expression patterns used in runbooks to match KMS Key ARNs
48+
- Race condition in applogger.py when two instances of SendNotifications lambda are running in parallel
49+
- Caused by lack of exception handling when log group does not yet exist
50+
851
## [2.2.1] - 2025-01-27
952

1053
### Changed
1154

1255
- Modified the org-id-lookup custom resource to avoid throwing an error when the Admin stack is deployed in a non-Organization account.
1356

1457
### Security
58+
1559
- Upgrade jinja2 to mitigate [CVE-2024-56201](https://avd.aquasec.com/nvd/cve-2024-56201)
1660

1761
## [2.2.0] - 2024-12-16
@@ -40,7 +84,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4084
- Config.1 remediation script to allow non-"default" Config recorder name
4185
- parse_non_string_types.py script to allow boolean values
4286

43-
4487
## [2.1.4] - 2024-11-18
4588

4689
### Changed

NOTICE.txt

Lines changed: 60 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ This software includes third party software subject to the following copyrights:
2121
@typescript-eslint/eslint-plugin under the MIT License
2222
aws-cdk under the Apache License 2.0
2323
aws-cdk-lib under the Apache License 2.0
24-
cdk-nag under the Apache License 2.0
2524
constructs under the Apache License 2.0
2625
eslint under the MIT License
2726
eslint-config-prettier under the MIT License
@@ -365,7 +364,6 @@ tslib under the 0BSD license.
365364
natural-compare-lite under the MIT license.
366365
aws-cdk under the Apache-2.0 license.
367366
fsevents under the MIT license.
368-
cdk-nag under the Apache-2.0 license.
369367
eslint-config-prettier under the MIT license.
370368
eslint-plugin-header under the MIT license.
371369
eslint-plugin-import under the MIT license.
@@ -631,7 +629,6 @@ yargs-parser under the ISC license.
631629
ts-jest under the MIT license.
632630
bs-logger under the MIT license.
633631
lodash.memoize under the MIT license.
634-
zlib license unknown or missing
635632
@aws-sdk/client-cloudwatch-logs under the Apache-2.0 license.
636633
@aws-crypto/sha256-browser under the Apache-2.0 license.
637634
@smithy/is-array-buffer under the Apache-2.0 license.
@@ -838,6 +835,65 @@ types-urllib3 under the Apache-2.0 license.
838835
virtualenv under the MIT license.
839836
werkzeug under the 0BSD license.
840837
xmltodict under the MIT license.
838+
pydantic-core under the MIT license.
839+
pydantic-settings under the MIT license.
840+
python-dotenv under the BSD-3-Clause license.
841+
typing-inspection under the MIT license.
842+
pygments under the 0BSD license.
843+
@aws-sdk/client-cloudformation under the Apache-2.0 license.
844+
@aws-sdk/client-cloudwatch under the Apache-2.0 license.
845+
@aws-sdk/client-ec2 under the Apache-2.0 license.
846+
@aws-sdk/client-iam under the Apache-2.0 license.
847+
@aws-sdk/client-lambda under the Apache-2.0 license.
848+
@aws-sdk/client-sns under the Apache-2.0 license.
849+
@aws-sdk/client-sqs under the Apache-2.0 license.
850+
@aws-sdk/client-ssm under the Apache-2.0 license.
851+
@aws-sdk/middleware-sdk-ec2 under the Apache-2.0 license.
852+
@aws-sdk/middleware-sdk-sqs under the Apache-2.0 license.
853+
@aws-sdk/nested-clients under the Apache-2.0 license.
854+
@aws-sdk/util-format-url under the Apache-2.0 license.
855+
@smithy/middleware-compression under the Apache-2.0 license.
856+
fflate under the MIT license.
857+
@ungap/structured-clone under the ISC license.
858+
@rtsao/scc under the MIT license.
859+
call-bind-apply-helpers under the MIT license.
860+
es-object-atoms under the MIT license.
861+
get-proto under the MIT license.
862+
dunder-proto under the MIT license.
863+
math-intrinsics under the MIT license.
864+
call-bound under the MIT license.
865+
data-view-buffer under the MIT license.
866+
is-data-view under the MIT license.
867+
data-view-byte-length under the MIT license.
868+
data-view-byte-offset under the MIT license.
869+
side-channel-list under the MIT license.
870+
side-channel-map under the MIT license.
871+
side-channel-weakmap under the MIT license.
872+
is-set under the MIT license.
873+
own-keys under the MIT license.
874+
safe-push-apply under the MIT license.
875+
set-proto under the MIT license.
876+
stop-iteration-iterator under the MIT license.
877+
reflect.getprototypeof under the MIT license.
878+
which-builtin-type under the MIT license.
879+
is-async-function under the MIT license.
880+
async-function under the MIT license.
881+
is-finalizationregistry under the MIT license.
882+
which-collection under the MIT license.
883+
is-map under the MIT license.
884+
is-weakmap under the MIT license.
885+
is-weakset under the MIT license.
886+
@pkgr/core under the MIT license.
887+
@babel/helper-globals under the MIT license.
888+
ejs under the Apache-2.0 license.
889+
jake under the Apache-2.0 license.
890+
async under the MIT license.
891+
filelist under the Apache-2.0 license.
892+
@types/chai under the MIT license.
893+
@types/deep-eql under the MIT license.
894+
@jest/get-type under the MIT license.
895+
@jest/diff-sequences under the MIT license.
896+
@jest/pattern under the MIT license.
841897

842898
********************
843899
OPEN SOURCE LICENSES
@@ -849,3 +905,4 @@ ISC - https://spdx.org/licenses/ISC.html
849905
MPL-2.0 - https://spdx.org/licenses/MPL-2.0.html
850906
Python-2.0 - https://spdx.org/licenses/Python-2.0.html
851907
Unlicense - https://spdx.org/licenses/Unlicense.html
908+
BSD-3-Clause - https://spdx.org/licenses/BSD-3-Clause.html

0 commit comments

Comments
 (0)