Skip to content

Commit 0467b3c

Browse files
committed
feat: generate permission for dynamodb:Query and for GSIs
1 parent 5e81304 commit 0467b3c

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

lib/deploy/stepFunctions/compileIamRole.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,9 +186,19 @@ function getDynamoDBPermissions(action, state) {
186186
? '*'
187187
: getDynamoDBArn(state.Parameters.TableName);
188188

189+
const indexName = state.Parameters['IndexName.$']
190+
? '*'
191+
: state.Parameters.IndexName;
192+
193+
let resource;
194+
if (indexName) {
195+
resource = `${tableArn}/index/${indexName}`;
196+
} else {
197+
resource = tableArn;
198+
}
189199
return [{
190200
action,
191-
resource: tableArn,
201+
resource,
192202
}];
193203
}
194204

@@ -466,6 +476,8 @@ function getIamPermissions(taskStates) {
466476
return getDynamoDBPermissions('dynamodb:DeleteItem', state);
467477
case 'arn:aws:states:::aws-sdk:dynamodb:updateTable':
468478
return getDynamoDBPermissions('dynamodb:UpdateTable', state);
479+
case 'arn:aws:states:::aws-sdk:dynamodb:query':
480+
return getDynamoDBPermissions('dynamodb:Query', state);
469481

470482
case 'arn:aws:states:::aws-sdk:redshiftdata:executeStatement':
471483
return getRedshiftDataPermissions('redshift-data:ExecuteStatement', state);

0 commit comments

Comments
 (0)