2017-03-08 5 views
1

다른 계정 (계정 B)에서 실행중인 ec2 인스턴스의 AWS 람다 함수 (계정 A)에서 GetFunction/InvokeFunction 동작을 수행하려고합니다.AWS lambda 크로스 계정 호출 환경 변수에 대한 KMSAccessDenied 오류

계정 A에 람다 권한을 추가하여 계정 B에 대한 액세스를 허용 할 때 GetFunction 및 InvokeFunction 작업을 모두 수행 할 수 있습니다.

그러나 GetFunction은 람다 함수의 환경 변수에 대해 KMSAccessDeniedException을 반환합니다. 나는 람다 함수를위한 환경 변수를 암호화하지 않았다. 계정 내의 EC2에서 동일한 작업을 수행하면서 환경 변수에 대한 적절한 값을 얻고 있습니다. KMS에 대한 추가 권한을 추가해야합니까?

답변

1

AWS는 기본적으로 AWS Lambda 함수의 환경 변수를 암호화하여 데이터를 안전하게 유지합니다. 람다 생성시 암호화 키를 제공하지 않으면 AWS는 기본 암호화 키 "aws/lambda"를 사용합니다.이 액세스 정책은 수정할 수 없습니다.

그래서 환경 변수로 람다 함수를 호출하려고했을 때이 예외가 발생했습니다. 다른 계정에는이 키에 액세스 할 수있는 권한이 없으므로

해결 : 가 새로운 키를 생성 AWS 람다 함수 작성시 그것을 통과는 휴지 환경 변수 데이터를 암호화하는 데 사용된다. 세 번째 계정에서 액세스 할 수 있도록이 새 키에 주요 정책을 첨부하십시오.