AWS Lambda関数(Python)からGraphQL(AppSync)を利用してDynamoDBにアクセスしようとした時の失敗について紹介します。
当初、Pythonからは、boto3を利用してDynamoDBのテーブルにアクセスしていました。その後、どうしてもGraphQLを利用する必要があり、IAMを利用してアクセスすることにしました。
しかし、IAMに権限を与えた上でアクセスしても権限エラーが発生してしまいました。
結論は、
amplify/backend/api/プロジェクト名/の配下にcustom-roles.jsonを作成する必要がある
でした。
詳細は、こちらのサイトをご覧下さい。
custom-roles.jsonの内容は、以下の通りです。
{
"adminRoleNames": ["<YOUR_IAM_USER_OR_ROLE_NAME>"]
}
お恥ずかしい話ですが、IAMさえ設定すれば大丈夫と思い込んでいたため、この対応が必要な所を見落としていました。情けないですが。。。
何かの参考になれば幸いです。
(本記事にたいする質問やお問合せ・IT改善のご相談はこちら)