AWS Lambda에서 리소스 기반 정책을 사용하여 AWS 서비스에 권한을 부여하려면 어떻게 해야 합니까?

2분 분량
0

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" 오류를 해결하려면 어떻게 해야 합니까?

AWS 공식
AWS 공식업데이트됨 3년 전
댓글 없음

관련 콘텐츠