Skip to content

Commit f14cc54

Browse files
committed
updated to legacy bucketPermissions
1 parent 27b9006 commit f14cc54

File tree

4 files changed

+16
-4
lines changed

4 files changed

+16
-4
lines changed

source/patterns/@aws-solutions-constructs/aws-fargate-s3/lib/index.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import * as s3 from "@aws-cdk/aws-s3";
1717
import { Construct } from "@aws-cdk/core";
1818
import * as defaults from "@aws-solutions-constructs/core";
1919
import * as ecs from "@aws-cdk/aws-ecs";
20+
import * as iam from "@aws-cdk/aws-iam";
2021

2122
export interface FargateToS3Props {
2223
/**
@@ -211,11 +212,21 @@ export class FargateToS3 extends Construct {
211212
if (props.bucketPermissions.includes('Read')) {
212213
bucket.grantRead(this.service.taskDefinition.taskRole);
213214
}
215+
// Sticking with legacy v1 permissions s3:PutObject* instead of CDK v2 s3:PutObject
216+
// to prevent build failures for both versions
214217
if (props.bucketPermissions.includes('Write')) {
215-
bucket.grantWrite(this.service.taskDefinition.taskRole);
218+
this.service.taskDefinition.taskRole.addToPrincipalPolicy(new iam.PolicyStatement({
219+
effect: iam.Effect.ALLOW,
220+
resources: [bucket.bucketArn, `${bucket.bucketArn}/*`],
221+
actions: ['s3:DeleteObject*', 's3:PutObject*', 's3:Abort*']
222+
}));
216223
}
217224
} else {
218-
bucket.grantReadWrite(this.service.taskDefinition.taskRole);
225+
this.service.taskDefinition.taskRole.addToPrincipalPolicy(new iam.PolicyStatement({
226+
effect: iam.Effect.ALLOW,
227+
resources: [bucket.bucketArn, `${bucket.bucketArn}/*` ],
228+
actions: ['s3:GetObject*', 's3:GetBucket*', 's3:List*', 's3:DeleteObject*', 's3:PutObject*', 's3:Abort*']
229+
}));
219230
}
220231

221232
// Add environment variables

source/patterns/@aws-solutions-constructs/aws-fargate-s3/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
"@aws-cdk/aws-ec2": "0.0.0",
6767
"@aws-cdk/aws-s3": "0.0.0",
6868
"@aws-cdk/aws-ecs": "0.0.0",
69+
"@aws-cdk/aws-iam": "0.0.0",
6970
"@types/jest": "^26.0.22",
7071
"@aws-solutions-constructs/core": "0.0.0",
7172
"@types/node": "^10.3.0",

source/patterns/@aws-solutions-constructs/aws-fargate-s3/test/integ.existing-resources.expected.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -988,7 +988,7 @@
988988
{
989989
"Action": [
990990
"s3:DeleteObject*",
991-
"s3:PutObject",
991+
"s3:PutObject*",
992992
"s3:Abort*"
993993
],
994994
"Effect": "Allow",

source/patterns/@aws-solutions-constructs/aws-fargate-s3/test/integ.new-resources.expected.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1079,7 +1079,7 @@
10791079
"s3:GetBucket*",
10801080
"s3:List*",
10811081
"s3:DeleteObject*",
1082-
"s3:PutObject",
1082+
"s3:PutObject*",
10831083
"s3:Abort*"
10841084
],
10851085
"Effect": "Allow",

0 commit comments

Comments
 (0)