amplify configure
を実行するとIAMユーザが作られます。
Specify the username of the new IAM user:
? user name: amplify-AAAAA
amplifyチュートリアル的な記事などでは、このIAMユーザに管理者権限を振っていることが多い気がします。でも、なんかちょっと気持ち悪いですよね。適当に権限を制限しておきたいと思って調べたところ、以下を見つけました。
ADVANCED WORKFLOWS IAM Policy
https://docs.amplify.aws/cli/usage/iam
The Amplify CLI requires the below IAM policies for performing actions across all categories. You can grant or restrict category permissions by including or removing items from the Action section as appropriate. For example, if you wish to restrict operations on the Auth category you can remove any of the lines starting with cognito.
このページに書かれているJSONで権限を制限してみたところ、amplify push
で以下のエラーが発生。
Following resources failed
Resource Name: GraphQLAPI (AWS::AppSync::GraphQLApi)
Event Type: create
Reason: User: arn:aws:iam::xxx:user/amplify-AAAAA is not authorized to perform: appsync:TagResource on resource: arn:aws:appsync:ap-northeast-1:xxx:* (Service: AWSAppSync; Status Code: 403; Error Code: AccessDeniedException; Request ID: xxx; Proxy: null)
確かにJSONにはappsync:TagResource
が記載されていなかったので追加したところ、無事にpushも成功しました。