AWS Lambda용 리소스 기반 정책을 사용하여 AWS 서비스에 권한을 부여하려고 합니다.
간략한 설명
Lambda와 함께 AWS Command Line Interface(AWS CLI)으로 리소스 기반 정책을 사용하여 AWS 서비스에 권한을 부여할 수 있습니다. 자세한 내용은 AWS Lambda에서 리소스 기반 정책 사용을 참조하세요.
해결 방법
다음 예제에서는 EventBridge에 대한 권한을 추가하고 Lambda 함수가 리소스 기반 정책을 호출하는지 검증합니다.
참고:
Lambda 함수에 리소스 정책이 구성되어 있지 않은지 확인합니다.
EventBridge와 같은 일부 AWS 서비스는 Lambda 함수에 대한 리소스 기반 정책을 생성합니다. 다음과 유사한 AWS CLI 명령 get-policy를 사용하여 리소스 기반 정책에 EventBridge에 대한 권한이 없는지 확인합니다.
aws lambda get-policy --region your-region --function-name your-function
An error occurred (ResourceNotFoundException) when calling the GetPolicy operation: The resource you requested does not exist.
이 오류는 Lambda 함수에 리소스 기반 정책이 구성되어 있지 않음을 확인합니다.
EventBridge에 대한 권한 추가
AWS CLI 명령 add-permission을 실행하여 다음과 유사한 Lambda 함수를 호출합니다.
aws lambda add-permission --region your-region --function-name your-function --statement-id "your-event-permission" --action "lambda:InvokeFunction" --principal "events.amazonaws.com" --source-arn "arn:aws:events:your-region:xxxxxxxxxxxxx:rule/your-event"
{
"Statement": "{\"Sid\":\"your-event-permission\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"events.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:your-region:xxxxxxxxxxxxx:function:your-function\",\"Condition\":{\"ArnLike\":{\"AWS:SourceArn\":\"arn:aws:events:your-region:xxxxxxxxxxxxx:rule/your-event\"}}}"
}
Lambda 함수 리소스 기반 정책에 대한 권한 확인
다음과 유사한 AWS CLI 명령 get-policy를 다시 실행합니다.
aws lambda get-policy --region your-region --function-name your-function
{
"Version": "2012-10-17",
"Id": "default",
"Statement": [
{
"Sid": "your-event-permission",
"Effect": "Allow",
"Principal": {
"Service": "events.amazonaws.com"
},
"Action": "lambda:InvokeFunction",
"Resource": "arn:aws:lambda:your-region:xxxxxxxxxxxxx:function:your-function",
"Condition": {
"ArnLike": {
"AWS:SourceArn": "arn:aws:events:your-region:xxxxxxxxxxxxx:rule/your-event"
}
}
}
]
}
(선택 사항) Lambda 함수 리소스 기반 정책에서 권한 제거
Lambda 함수를 트리거하는 데 AWS 서비스가 더 이상 필요하지 않은 경우 다음과 유사한 AWS CLI 명령 remove-permission을 실행할 수 있습니다.
aws lambda remove-permission --region your-region --function-name your-function --statement-id "your-event-permission"
참고: Lambda 함수 리소스 기반 정책 할당량은 20KB입니다. 자세한 내용은 Lambda 할당량을 참조하세요.
관련 정보
Lambda에서 "The final policy size is bigger than the limit" 오류를 해결하려면 어떻게 해야 합니까?