@@ -523,7 +523,8 @@ export class StacksCloud extends Stack {
523
523
this . storage . emailBucket = this . createBucket ( 'email' )
524
524
525
525
const sesPrincipal = new iam . ServicePrincipal ( 'ses.amazonaws.com' )
526
- const bucketPolicyStatement = new iam . PolicyStatement ( {
526
+
527
+ this . storage . emailBucket . addToResourcePolicy ( new iam . PolicyStatement ( {
527
528
sid : 'AllowSESPuts' ,
528
529
effect : iam . Effect . ALLOW ,
529
530
principals : [ sesPrincipal ] ,
@@ -537,9 +538,19 @@ export class StacksCloud extends Stack {
537
538
'aws:Referer' : this . account ,
538
539
} ,
539
540
} ,
540
- } )
541
+ } ) )
541
542
542
- this . storage . emailBucket . addToResourcePolicy ( bucketPolicyStatement )
543
+ // Grant SES permission to write to the S3 bucket
544
+ this . storage . emailBucket . addToResourcePolicy ( new iam . PolicyStatement ( {
545
+ principals : [ sesPrincipal ] ,
546
+ actions : [ 's3:PutObject' ] ,
547
+ resources : [ this . storage . emailBucket . arnForObjects ( '*' ) ] ,
548
+ conditions : {
549
+ StringEquals : {
550
+ 'aws:Referer' : this . account ,
551
+ } ,
552
+ } ,
553
+ } ) )
543
554
544
555
const iamGroup = new iam . Group ( this , 'IAMGroup' , {
545
556
groupName : `${ this . appName } -${ appEnv } -email-management-s3-group` ,
@@ -657,6 +668,7 @@ export class StacksCloud extends Stack {
657
668
{
658
669
s3Action : {
659
670
bucketName : this . storage . emailBucket . bucketName ,
671
+ // kmsKeyArn: this.storage.emailBucket.encryptionKey?.keyArn,
660
672
objectKeyPrefix : 'tmp/email_in' ,
661
673
} ,
662
674
} ,
0 commit comments