Skip to content

Commit 5c0bb4f

Browse files
muakvikcyphronix
andauthored
docs: Add AWS Control Tower 4.0 compatibility notice to README (#341)
* docs: Add AWS Control Tower 4.0 compatibility notice to README * removing unused license * remove duplicate alarm email * remove unused ignore * update checkov exceptions --------- Co-authored-by: cyphronix <57731583+cyphronix@users.noreply.github.com>
1 parent f3c57b7 commit 5c0bb4f

7 files changed

Lines changed: 45 additions & 7 deletions

File tree

README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,33 @@ Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-
1010

1111
## <!-- omit in toc -->
1212

13+
---
14+
15+
## ⚠️ AWS SRA Code Library & Control Tower 4.0: Compatibility Notice<!-- omit in toc -->
16+
17+
AWS Control Tower 4.0 introduces architectural changes that affect the existing SRA code library, including how AWS Config, CloudTrail, and S3 log buckets are structured and referenced. If you're upgrading to CT 4.0 or have already done so, follow the steps below to restore compatibility.
18+
19+
### Steps to Resolve<!-- omit in toc -->
20+
21+
**Step 1: Follow the Upgrade Instructions**
22+
23+
Review the key CT 4.0 changes that impact SRA and apply the corresponding updates to your local deployment:
24+
25+
- Enable AWS Config and CloudTrail via Control Tower before deploying SRA — these are now optional integrations in CT 4.0 and must be explicitly enabled.
26+
- Update your local SRA templates to reference the new dedicated S3 buckets for Config logs (`aws-controltower-config-logs-{LogArchiveAccountId}-{suffix}`) instead of the legacy shared CT logs bucket.
27+
28+
For full migration details, refer to the [Control Tower 4.0 migration guide](https://docs.aws.amazon.com/controltower/latest/userguide/ct-migrate.html) and [Upgrading to CT 4.0 best practices](https://docs.aws.amazon.com/controltower/latest/userguide/ct-update.html).
29+
30+
**Step 2: Reach Out to Your AWS Account Manager**
31+
32+
If you've followed the instructions above and are still experiencing issues, contact your AWS Account Manager. They can connect you with the right AWS support resources for further troubleshooting.
33+
34+
**Step 3: Don't Have an Account Manager? Cut Us a Ticket**
35+
36+
If you don't have an AWS Account Manager, [submit a GitHub issue](https://github.com/aws-samples/aws-security-reference-architecture-examples/issues) directly to the SRA team. We'll provide support on a best-effort basis.
37+
38+
---
39+
1340
## Table of Contents<!-- omit in toc -->
1441

1542
- [Introduction](#introduction)

aws_sra_examples/solutions/account/account_alternate_contacts/lambda/src/app.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ def process_accounts(event: Union[CloudFormationCustomResourceEvent, dict], para
330330
if is_account_with_exclude_tags(account, params):
331331
continue
332332

333-
if event.get("local_testing") == "true" or event.get("ResourceProperties", {}).get("local_testing") == "true": # type: ignore
333+
if event.get("local_testing") == "true" or event.get("ResourceProperties", {}).get("local_testing") == "true":
334334
local_testing(account, params)
335335
else:
336336
sns_message = {"Action": params["action"], "AccountId": account["Id"]}

aws_sra_examples/solutions/genai/bedrock_guardrails/templates/sra-bedrock-guardrails-main.yaml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,13 @@ Parameters:
277277

278278
Resources:
279279
rBedrockGuardrailsLambdaRole:
280+
Metadata:
281+
checkov:
282+
skip:
283+
- id: CKV_AWS_107
284+
comment: "No credentials are exposed to the Lambda function."
285+
- id: CKV_AWS_111
286+
comment: "IAM write actions require wildcard in resource."
280287
Type: AWS::IAM::Role
281288
Properties:
282289
RoleName: !Ref pBedrockGuardrailLambdaRoleName
@@ -471,4 +478,4 @@ Resources:
471478
Outputs:
472479
BedrockGuardrailsLambdaFunctionArn:
473480
Description: ARN of the Lambda function
474-
Value: !GetAtt rBedrockGuardrailsLambdaFunction.Arn
481+
Value: !GetAtt rBedrockGuardrailsLambdaFunction.Arn

aws_sra_examples/solutions/genai/bedrock_org/templates/sra-bedrock-org-main.yaml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,13 @@ Metadata:
464464

465465
Resources:
466466
rBedrockOrgLambdaRole:
467+
Metadata:
468+
checkov:
469+
skip:
470+
- id: CKV_AWS_107
471+
comment: "No credentials are exposed to the Lambda function."
472+
- id: CKV_AWS_111
473+
comment: "IAM write actions require wildcard in resource."
467474
Type: AWS::IAM::Role
468475
Properties:
469476
RoleName: !Ref pBedrockOrgLambdaRoleName
@@ -768,4 +775,4 @@ Resources:
768775
Outputs:
769776
BedrockOrgLambdaFunctionArn:
770777
Description: ARN of the Lambda function
771-
Value: !GetAtt rBedrockOrgLambdaFunction.Arn
778+
Value: !GetAtt rBedrockOrgLambdaFunction.Arn

aws_sra_examples/solutions/s3/s3_block_account_public_access/lambda/src/app.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ def process_accounts(event: Union[CloudFormationCustomResourceEvent, dict], para
298298
if is_account_with_exclude_tags(account, params):
299299
continue
300300

301-
if event.get("local_testing") == "true" or event.get("ResourceProperties", {}).get("local_testing") == "true": # type: ignore
301+
if event.get("local_testing") == "true" or event.get("ResourceProperties", {}).get("local_testing") == "true":
302302
local_testing(account, params)
303303
else:
304304
sns_message = {"Action": params["action"], "AccountId": account["Id"]}

aws_sra_examples/solutions/shield_advanced/shield_advanced/templates/sra-shield-advanced-main-ssm.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,6 @@ Metadata:
150150
default: SRA Solution Version
151151
pSRAStagingS3BucketName:
152152
default: SRA Staging S3 Bucket Name
153-
pSRAAlarmEmail:
154-
default: (Optional) SRA Alarm Email
155153
pProtectionGroup0AccountId:
156154
default: AWS Account Id where the Protection Group is created
157155
pProtectionGroup0Id:

pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,6 @@ safe_licenses = [
133133
"MIT License",
134134
"BSD License",
135135
"Apache Software License",
136-
"PSF-2.0",
137136
"ISC License (ISCL)"
138137
]
139138

0 commit comments

Comments
 (0)