Serverless Framework関数のIAMロール分離の確認

共有ロールにより他の関数向けの権限まで付与される場合がある

説明

必要な権限が異なる関数でIAM実行ロールを共有すると、他の関数だけが必要とする権限も付与される場合があります。各関数の処理に合わせてロールとポリシーを分離してください。

想定される影響

侵害された関数が、その処理に関係のないAWSリソースにアクセスできる可能性があります。

対処方法

専用の role または対応する関数単位のIAM設定を使用してください。ロールを分けた場合も、各ポリシーのアクションとリソースを必要な範囲に限定してください。

例

次の例では、hello に専用ロールを割り当てています。例示のARNを実際のロールに置き換え、Lambda用の信頼ポリシーと必要な実行権限を構成してください。

変更前

yaml
service: service
frameworkVersion: "4"
provider:
  name: aws
  runtime: nodejs22.x

functions:
  hello:
    handler: handler.hello

変更後

yaml
service: service
frameworkVersion: "4"
provider:
  name: aws
  runtime: nodejs22.x

functions:
  hello:
    handler: handler.hello
    role: arn:aws:iam::123456789012:role/hello-function-role

参考資料