@@ -4,6 +4,7 @@ import * as apigateway from "aws-cdk-lib/aws-apigateway";
44import { Certificate } from "aws-cdk-lib/aws-certificatemanager" ;
55import * as ec2 from "aws-cdk-lib/aws-ec2" ;
66import * as efs from "aws-cdk-lib/aws-efs" ;
7+ import * as iam from "aws-cdk-lib/aws-iam" ;
78import * as lambda from "aws-cdk-lib/aws-lambda" ;
89import { LogGroup , RetentionDays } from "aws-cdk-lib/aws-logs" ;
910import { ARecord , HostedZone , RecordTarget } from "aws-cdk-lib/aws-route53" ;
@@ -125,6 +126,25 @@ export class FaiScribeStack extends Stack {
125126 filesystem : lambda . FileSystem . fromEfsAccessPoint ( accessPoint , "/mnt/efs" )
126127 } ) ;
127128
129+ // Grant SQS permissions for editing session queues
130+ // These queues are created dynamically by the FAI server per editing session
131+ lambdaFunction . addToRolePolicy (
132+ new iam . PolicyStatement ( {
133+ effect : iam . Effect . ALLOW ,
134+ actions : [
135+ "sqs:ReceiveMessage" ,
136+ "sqs:DeleteMessage" ,
137+ "sqs:GetQueueAttributes" ,
138+ "sqs:GetQueueUrl" ,
139+ "sqs:ChangeMessageVisibility"
140+ ] ,
141+ resources : [
142+ // Allow access to all editing-session queues in this region
143+ `arn:aws:sqs:${ this . region } :${ this . account } :editing-session-*.fifo`
144+ ]
145+ } )
146+ ) ;
147+
128148 const apiName = `${ lambdaName } -${ environmentType . toLowerCase ( ) } ` ;
129149
130150 const api = new apigateway . RestApi ( this , `${ lambdaName } -api` , {
0 commit comments