IAM
https://gyazo.com/f3e2ffd425716a4d6f3b249f201de291
AWSリソースへのアクセス権限管理機能を提供するサービス。 https://scrapbox.io/files/66c354bbf5718d001c0de946.png
IAMユーザ:アクセスキー、パスワードおよび多要素認証で認証される主体
IAMグループ:IAMユーザのグループ
IAMロール:AWSのエンティティに対して適用し、そのエンティティからのアクセス許可を定義するIAMエンティティ
IAMポリシー:アクセス許可の定義。ユーザ、グループ、ロールにアタッチできる。
この辺の用語が最初はいまいちピンときてなかったんだけど、ロールベースアクセス制御という概念を知って「そういう感じか〜」となった。 Lambdaの場合はLambda関数作成時にRoleを設定する必要がある。(手動で設定する場合は AWSLambdaBasicExecutionRole を使うのが無難な選択肢)(serverless frameworkを使っているとprovider.iamRoleStatementsに設定したロールを自動的に {service}-{stage}-{region}-lambdaRole という名前で作ってくれる) 実行時にはLambdaがSecurity Token Serivce (STS) に権限をもらいにいく。もらった権限をsts:AssumeRole (引き受けた役割)という。まぁSTSはほとんど意識することはないけど、エラーメッセージにたまに出てきたりするので内部でそういうことをやってるんだ程度。 参考: