AWS Lambda 함수 실행 역할 권한과 호출 권한의 차이점을 알고 싶습니다. Lambda에 대한 두 가지 유형의 AWS Identity and Access Management(IAM) 권한은 어떻게 다른가요?
해결 방법
중요: IAM 정책을 생성할 때 특정 작업을 수행하는 데 필요한 권한만 부여하는 것이 좋습니다. 자세한 내용은 IAM 사용 설명서의 최소 권한 부여를 참조하세요.
Lambda 함수 실행 역할 권한
Lambda 실행 역할 권한은 특정 AWS 클라우드 서비스 및 리소스에 액세스할 수 있는 권한을 Lambda 함수에 부여하는 IAM 권한입니다. AWS 클라우드 서비스 또는 리소스에 대한 함수 실행 역할 권한을 부여하지 않으면 함수가 해당 서비스 또는 리소스에 액세스할 수 없습니다.
중요: 다른 AWS 클라우드 서비스를 폴링하는 Lambda 함수의 경우 함수가 해당 서비스에서 레코드를 검색할 수 있도록 허용하는 실행 역할 권한이 필요합니다.
실행 역할 권한이 부여되는 방법
Lambda 실행 역할 권한은 특정 API 작업 식별자의 형태로 제공됩니다(예: s3:GetObject). 이러한 작업 식별자는 IAM 정책 설명의 작업 요소에 나열됩니다. 그러면 정책이 호출될 때마다 Lambda 함수가 가정하는 실행 역할이라는 IAM 역할에 연결됩니다.
대기열 또는 데이터 스트림을 생성하는 서비스의 경우 Lambda가 대기열 또는 데이터 스트림을 폴링하도록 이벤트 소스 매핑을 구성해야 합니다. 이벤트 소스 매핑은 함수 실행 역할의 권한을 사용하여 이벤트 소스의 항목을 읽고 관리합니다.
참고: 권한, 이벤트 구조, 설정 및 폴링 동작은 이벤트 소스에 따라 다릅니다. Lambda 폴링 권한을 포함하는 IAM 정책의 예는 AWS Lambda 함수가 DynamoDB 스트림 레코드에 액세스하도록 허용하는 IAM 정책을 참조하세요.
Lambda 함수 호출 권한
Lambda 함수 호출 권한은 특정 AWS 클라우드 서비스 또는 리소스에 Lambda 함수를 호출할 수 있는 권한을 부여하는 IAM 권한입니다. Lambda 함수에 대한 서비스 또는 리소스 호출 권한을 부여하지 않으면 해당 서비스 또는 리소스가 함수를 호출할 수 없습니다.
중요: 이벤트 소스를 함수로 푸시하는 AWS 클라우드 서비스에서 호출하는 Lambda 함수의 경우 호출 권한이 필요합니다.
호출 권한이 부여되는 방법
Lambda 호출 권한은 특정 API 작업 식별자인 lambda:InvokeFunction의 형태로 제공됩니다. 이 작업 식별자는 Lambda 함수의 IAM 리소스 기반 정책 설명의 작업 요소에 나열됩니다. Lambda 함수의 리소스 기반 정책은 함수의 실행 역할과 별도로 구성됩니다.
참고: 이는 작업 식별자(lambda:InvokeFunction)가 API 작업(호출)과 다른 특수한 경우입니다. 다른 작업의 경우 작업 식별자는 **lambda:**가 접두사로 붙은 작업 이름입니다.
Lambda 콘솔을 사용하여 함수에 트리거를 추가하면 필요한 호출 권한이 함수의 리소스 기반 정책에 자동으로 추가됩니다. 콘솔에서 사용할 수 없는 계정 또는 서비스에 권한을 부여하려면 Lambda AddPermission API 작업을 사용해야 합니다.
자세한 내용은 AWS 서비스에 함수 액세스 권한 부여를 참조하세요.
관련 정보
AWS Lambda 권한
최소 권한 원칙 적용(Lambda 운영자 가이드)