diff --git a/lib/deploy/stepFunctions/compileIamRole.js b/lib/deploy/stepFunctions/compileIamRole.js index c3675c8..d01a53e 100644 --- a/lib/deploy/stepFunctions/compileIamRole.js +++ b/lib/deploy/stepFunctions/compileIamRole.js @@ -176,7 +176,7 @@ function getGluePermissions() { function getEcsPermissions() { return [{ - action: 'ecs:RunTask,ecs:StopTask,ecs:DescribeTasks,iam:PassRole', + action: 'ecs:RunTask,ecs:StopTask,ecs:DescribeTasks,ecs:TagResource,iam:PassRole', resource: '*', }, { action: 'events:PutTargets,events:PutRule,events:DescribeRule', diff --git a/lib/deploy/stepFunctions/compileIamRole.test.js b/lib/deploy/stepFunctions/compileIamRole.test.js index 8bc28f7..ea92a91 100644 --- a/lib/deploy/stepFunctions/compileIamRole.test.js +++ b/lib/deploy/stepFunctions/compileIamRole.test.js @@ -1651,7 +1651,7 @@ describe('#compileIamRole', () => { .provider.compiledCloudFormationTemplate.Resources.StateMachine1Role .Properties.Policies[0].PolicyDocument.Statement; - const ecsPermissions = statements.filter(s => _.isEqual(s.Action, ['ecs:RunTask', 'ecs:StopTask', 'ecs:DescribeTasks', 'iam:PassRole'])); + const ecsPermissions = statements.filter(s => _.isEqual(s.Action, ['ecs:RunTask', 'ecs:StopTask', 'ecs:DescribeTasks', 'ecs:TagResource', 'iam:PassRole'])); expect(ecsPermissions).to.have.lengthOf(1); expect(ecsPermissions[0].Resource).to.equal('*'); @@ -2694,7 +2694,7 @@ describe('#compileIamRole', () => { const expectation = (policy, lambdaArns, sns, sqsArn) => { const statements = policy.PolicyDocument.Statement; - const ecsPermissions = statements.filter(s => _.isEqual(s.Action, ['ecs:RunTask', 'ecs:StopTask', 'ecs:DescribeTasks', 'iam:PassRole'])); + const ecsPermissions = statements.filter(s => _.isEqual(s.Action, ['ecs:RunTask', 'ecs:StopTask', 'ecs:DescribeTasks', 'ecs:TagResource', 'iam:PassRole'])); expect(ecsPermissions).to.have.lengthOf(1); expect(ecsPermissions[0].Resource).to.equal('*');