이벤트 소스와 권한 정책에서 Lambda 별칭(alias) 사용

이벤트 소스와 권한 정책에서 Lambda 별칭(alias) 사용

각 별칭은 고유한 ARN을 가져요. 별칭은 함수 버전만 가리킬 수 있으며, 다른 별칭은 가리킬 수 없어요. 별칭을 업데이트해서 함수의 새 버전을 가리키게 할 수 있습니다.

Amazon Simple Storage Service(Amazon S3) 같은 이벤트 소스는 여러분의 Lambda 함수를 호출해요. 이러한 이벤트 소스는 이벤트가 발생할 때 호출할 함수를 식별하는 매핑을 유지하죠. 매핑 구성에서 Lambda 함수 별칭을 지정하면 함수 버전이 변경될 때 매핑을 업데이트할 필요가 없어요. 자세한 내용은 Lambda가 스트림 및 큐 기반 이벤트 소스의 레코드를 처리하는 방식을 참고하세요.

리소스 정책에서는 이벤트 소스가 여러분의 Lambda 함수를 사용할 권한을 부여할 수 있어요. 정책에서 별칭 ARN을 지정하면 함수 버전이 변경될 때 정책을 업데이트할 필요가 없죠.

출처: AWS Lambda 개발자 안내서

본문

리소스 정책

리소스 기반 정책을 사용해 서비스, 리소스 또는 계정에 함수 접근 권한을 줄 수 있어요. 이 권한의 범위는 별칭, 버전 또는 전체 함수에 적용하느냐에 따라 달라지죠. 예를 들어 별칭 이름(helloworld:PROD 같은)을 사용하면 별칭 ARN(helloworld:PROD)으로 helloworld 함수를 호출할 수 있어요.

별칭이나 특정 버전 없이 함수를 호출하려 하면 권한 오류가 발생해요. 이 권한 오류는 별칭과 연결된 함수 버전을 직접 호출하려 해도 여전히 발생합니다.

예를 들어 다음 AWS CLI 명령은 Amazon S3가 amzn-s3-demo-bucket을 대신해 동작할 때 helloworld 함수의 PROD 별칭을 호출할 권한을 Amazon S3에 부여해요.

aws lambda add-permission \
  --function-name helloworld \
  --qualifier PROD \
  --statement-id 1 \
  --principal s3.amazonaws.com \
  --action lambda:InvokeFunction \
  --source-arn arn:aws:s3:::amzn-s3-demo-bucket \
  --source-account 123456789012

정책에서 리소스 이름을 사용하는 방법에 대한 자세한 내용은 정책의 Resources 및 Conditions 섹션 미세 조정을 참고하세요.

더 알아보기 (Learn more)

  • 별칭 ARN을 이벤트 소스 매핑과 리소스 정책에 지정하면 함수 버전이 바뀌어도 매핑·정책을 유지할 수 있어요.