Skip to content

Commit ca79b79

Browse files
committed
fix: support IAM role deleteSchedule
1 parent 313355a commit ca79b79

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

lib/deploy/stepFunctions/compileIamRole.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ function sqsQueueUrlToArn(serverless, queueUrl) {
7272

7373
function getSqsPermissions(serverless, state) {
7474
if (_.has(state, 'Parameters.QueueUrl')
75-
|| _.has(state, ['Parameters', 'QueueUrl.$'])) {
75+
|| _.has(state, ['Parameters', 'QueueUrl.$'])) {
7676
// if queue URL is provided by input, then need pervasive permissions (i.e. '*')
7777
const queueArn = state.Parameters['QueueUrl.$']
7878
? '*'
@@ -85,7 +85,7 @@ function getSqsPermissions(serverless, state) {
8585

8686
function getSnsPermissions(serverless, state) {
8787
if (_.has(state, 'Parameters.TopicArn')
88-
|| _.has(state, ['Parameters', 'TopicArn.$'])) {
88+
|| _.has(state, ['Parameters', 'TopicArn.$'])) {
8989
// if topic ARN is provided by input, then need pervasive permissions
9090
const topicArn = state.Parameters['TopicArn.$'] ? '*' : state.Parameters.TopicArn;
9191
return [{ action: 'sns:Publish', resource: topicArn }];
@@ -561,13 +561,13 @@ function getEventBridgePermissions(state) {
561561
];
562562
}
563563

564-
function getEventBridgeSchedulerPermissions(state) {
564+
function getEventBridgeSchedulerPermissions(action, state) {
565565
const scheduleGroupName = state.Parameters.GroupName;
566566
const scheduleTargetRoleArn = state.Parameters.Target.RoleArn;
567567

568568
return [
569569
{
570-
action: 'scheduler:CreateSchedule',
570+
action,
571571
resource: {
572572
'Fn::Sub': [
573573
'arn:${AWS::Partition}:scheduler:${AWS::Region}:${AWS::AccountId}:schedule/${scheduleGroupName}/*',
@@ -748,7 +748,9 @@ function getIamPermissions(taskStates) {
748748
return getEventBridgePermissions(state);
749749

750750
case 'arn:aws:states:::aws-sdk:scheduler:createSchedule':
751-
return getEventBridgeSchedulerPermissions(state);
751+
return getEventBridgeSchedulerPermissions("scheduler:CreateSchedule", state);
752+
case 'arn:aws:states:::aws-sdk:scheduler:deleteSchedule':
753+
return getEventBridgeSchedulerPermissions("scheduler:DeleteSchedule", state);
752754

753755
case 'arn:aws:states:::s3:getObject':
754756
case 'arn:aws:states:::aws-sdk:s3:getObject':

0 commit comments

Comments
 (0)