다른 AWS 계정에 있는 Amazon Kinesis 스트림을 통해 AWS Lambda 함수를 호출하려고 합니다.
해결 방법
Amazon Kinesis Data Streams는 리소스 기반 정책을 지원합니다. 이를 통해 한 계정의 스트림에 수집된 데이터를 다른 계정의 AWS Lambda 함수를 사용하여 처리할 수 있습니다.
다음 단계에 따라 Lambda 함수를 생성한 다음 Kinesis 데이터 스트림에 액세스하도록 구성하세요.
Lambda 실행 역할 생성
- IAM 콘솔에 액세스하고 역할 탭을 선택합니다.
- 역할 생성을 선택합니다.
- AWS 서비스에서 신뢰할 수 있는 엔터티 유형을 선택합니다. 서비스에서 Lambda를 선택합니다.
- 권한 정책 테이블에서 관리형 IAM policy AWSLambdaKinesisExecutionRole을 선택합니다.
- 역할 이름을 입력하고 역할 생성을 선택합니다.
참고: 관리형 IAM 정책 AWSLambdaKinesisExecutionRole에 필수 Kinesis Data Streams 및 Lambda 호출 권한이 있습니다. 또한 액세스할 수 있는 모든 잠재적 Kinesis Data Streams 리소스에 대한 액세스 권한도 부여합니다.
Lambda 함수 생성
Amazon Kinesis Data Streams의 레코드를 처리할 수 있는 AWS Lambda 함수를 생성합니다.
실행 역할에서 생성한 역할을 선택합니다.
참고: 이 정책에는 필수 Kinesis Data Streams 및 Lambda 호출 권한이 있습니다. 또한 액세스할 수 있는 모든 잠재적 Kinesis Data Streams 리소스에 대한 액세스 권한도 부여합니다.
Kinesis Data Streams 리소스 소유자에게 실행 역할을 추가하여 리소스 정책을 구성합니다.
Kinesis Data Streams 구성
- Amazon Kinesis Data Streams 콘솔에 액세스하고 데이터 스트림을 선택합니다.
- 데이터 스트림 공유 탭을 선택합니다.
- 정책 생성 버튼을 선택하여 시각적 정책 편집기를 시작합니다.
- 향상된 팬아웃 탭에서 소비자를 선택하여 데이터 스트림 내에서 등록된 소비자를 공유할 수 있습니다.
- 정책 생성을 선택합니다. JSON 정책을 직접 작성할 수도 있습니다.
- 주체에 생성한 교차 계정 Lambda 실행 역할을 입력합니다. kinesis:DescribeStream 동작이 포함되었는지 확인하세요.
Kinesis Data Streams의 예제 리소스 정책에 대한 자세한 내용은 Kinesis Data Streams의 예제 리소스 기반 정책을 참조하세요.
- 정책 생성을 선택합니다. 또는 PutResourcePolicy를 사용하여 정책을 리소스에 연결할 수 있습니다.
AWS 관리형 키로 서버 측 암호화를 사용하고 리소스 정책을 통해 액세스를 공유하려는 경우 고객 관리형 키(AWS KMS 키)를 사용해야 합니다. 자세한 내용은 Kinesis Data Streams의 서버 측 암호화란 무엇인가요?를 참조하세요. 또한 공유 주체 엔터티가 KMS 크로스 계정 액세스를 통해 KMS 키에 액세스할 수 있도록 허용해야 합니다. 자세한 내용은 다른 계정의 사용자가 KMS 키를 사용하도록 허용을 참조하세요.