Skip to content

Commit c51ecfd

Browse files
committed
Add CDK nag suppression directly to S3 policy statement to handle wildcard resource pattern
1 parent 818f649 commit c51ecfd

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

packages/cdk/nagSuppressions.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ export const nagSuppressions = (stack: Stack) => {
9696
reason: "Bedrock Knowledge Base requires these permissions to access S3 documents and OpenSearch collection.",
9797
appliesTo: [
9898
"Action::bedrock:Delete*",
99-
"Resource::<StorageDocsBucket*>/*",
10099
"Resource::arn:aws:bedrock:eu-west-2:undefined:knowledge-base/*",
101100
"Resource::arn:aws:bedrock:eu-west-2:591291862413:knowledge-base/*",
102101
"Resource::arn:aws:aoss:eu-west-2:undefined:collection/*",

packages/cdk/resources/IamResources.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
ManagedPolicy
77
} from "aws-cdk-lib/aws-iam"
88
import {Bucket} from "aws-cdk-lib/aws-s3"
9+
import {NagSuppressions} from "cdk-nag"
910

1011
// Amazon Titan embedding model for vector generation
1112
const EMBEDDING_MODEL = "amazon.titan-embed-text-v2:0"
@@ -66,6 +67,15 @@ export class IamResources extends Construct {
6667
conditions: {"StringEquals": {"aws:ResourceAccount": props.account}}
6768
})
6869

70+
// Suppress CDK-nag warning for S3 wildcard resource
71+
NagSuppressions.addResourceSuppressions(s3AccessGetPolicy, [
72+
{
73+
id: "AwsSolutions-IAM5",
74+
reason: "Bedrock Knowledge Base requires wildcard access to read all objects in the S3 bucket",
75+
appliesTo: [`Resource::${props.kbDocsBucket.bucketArn}/*`]
76+
}
77+
])
78+
6979
// KMS permissions for S3 bucket encryption
7080
const kmsAccessPolicy = new PolicyStatement({
7181
actions: ["kms:Decrypt", "kms:DescribeKey"],

0 commit comments

Comments
 (0)