광범위한 권한을 부여하는 Serverless Framework IAM 역할

함수 실행 역할이 모든 작업과 리소스를 허용하는 경우

설명

IAM 정책의 Effect: Allow, Action: "*", Resource: "*" 조합은 모든 작업과 리소스에 대한 권한을 부여합니다. 다른 제한 정책이 있더라도 함수 실행 역할에는 필요한 권한만 부여해야 합니다.

잠재적 영향

함수 침해나 코드 오류가 여러 AWS 리소스의 조회·변경·삭제로 이어질 수 있습니다.

해결 방법

provider.iam.role.statements에서 필요한 작업과 대상 리소스를 명시하세요. 리소스 범위를 지원하지 않는 작업만 필요한 조건과 함께 별도로 허용하세요.

예시

다음 발췌 예시의 정책 문은 example-bucket 객체에 대한 s3:GetObject만 허용합니다. 함수 정의와 필요한 로그 권한 등은 생략했습니다.

변경 전

yaml
service: service
frameworkVersion: "4"
provider:
  name: aws
  runtime: nodejs22.x
  iam:
    role:
      statements:
        - Effect: Allow
          Resource: "*"
          Action: "*"

변경 후

yaml
service: service
frameworkVersion: "4"
provider:
  name: aws
  runtime: nodejs22.x
  iam:
    role:
      statements:
        - Effect: Allow
          Resource: arn:aws:s3:::example-bucket/*
          Action:
            - s3:GetObject

참조