Lambda関数からStep Functionsを実行させたいと思い、IAM Policyを設定しようとしたところ、2016年12月29日現在、Policy GeneratorにStep Functionsが含まれておらず、PolicyのAction
の値をどう設定すれば良いかわかりませんでした。
結論としては下記のように、states:StartExecution
をAction
に設定すればStep Functionsが実行可能になりました。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "states:StartExecution",
"Resource": "*"
}
]
}
設定すべき値がstates:StartExecution
であることがわかったのは、Step Functionsを実行するためのLambda関数のIAM Roleに、Step Functionsの実行権限をつけていない状態で実行したときのエラーログからでした。
下記のようなログが出ていたので、必要な権限はstates:StartExecution
であると気づけました。
- エラーログ
[AccessDeniedException:
User: arn:aws:sts::<アカウントID>:assumed-role/<Lambda関数名>
is not authorized to perform:
states:StartExecution on resource:
arn:aws:states:ap-northeast-1:<アカウントID>:execution:
<Step FunctionsのState Machine名>:xxxxxxxxxxxx]