Lambda에서 크로스 계정 이벤트 소스 매핑 만들기

Lambda에서 크로스 계정 이벤트 소스 매핑 만들기 (Creating cross-account event source mappings in Lambda)

멀티 VPC 프라이빗 연결(multi-VPC private connectivity)로 Lambda 함수를 다른 AWS 계정의 프로비저닝된 MSK 클러스터에 연결할 수 있어요. 멀티 VPC 연결은 AWS PrivateLink를 사용하며, 모든 트래픽을 AWS 네트워크 안에 유지해요.

참고 서버리스 MSK 클러스터에는 크로스 계정 이벤트 소스 매핑을 만들 수 없어요.

크로스 계정 이벤트 소스 매핑을 만들려면 먼저 MSK 클러스터에 멀티 VPC 연결을 구성해야 해요. 이벤트 소스 매핑을 만들 때는 다음 예시처럼 클러스터 ARN 대신 관리형 VPC 연결 ARN을 사용해요. CreateEventSourceMapping 연산도 MSK 클러스터가 쓰는 인증 유형에 따라 달라져요.

예시 — IAM 인증을 사용하는 클러스터용 크로스 계정 이벤트 소스 매핑 만들기

클러스터가 IAM 역할 기반 인증을 사용할 때는 SourceAccessConfiguration 객체가 필요하지 않아요. 예시:

aws lambda create-event-source-mapping \
  --event-source-arn arn:aws:kafka:us-east-1:111122223333:vpc-connection/444455556666/my-cluster-name/51jn98b4-0a61-46cc-b0a6-61g9a3d797d5-7 \
  --topics AWSKafkaTopic \
  --starting-position LATEST \
  --function-name my-kafka-function

예시 — SASL/SCRAM 인증을 사용하는 클러스터용 크로스 계정 이벤트 소스 매핑 만들기

클러스터가 SASL/SCRAM 인증을 사용한다면 SASL_SCRAM_512_AUTH와 Secrets Manager 시크릿 ARN을 지정하는 SourceAccessConfiguration 객체를 포함해야 해요.

SASL/SCRAM 인증의 크로스 계정 Amazon MSK 이벤트 소스 매핑에 시크릿을 사용하는 방법은 두 가지가 있어요.

  • Lambda 함수 계정에 시크릿을 만들고 클러스터 시크릿과 동기화해요. 두 시크릿을 동기화하려면 회전(rotation)을 만들어요. 이 옵션은 함수 계정에서 시크릿을 제어할 수 있게 해줘요.
  • MSK 클러스터와 연결된 시크릿을 사용해요. 이 시크릿은 Lambda 함수 계정에 크로스 계정 접근을 허용해야 해요. 자세한 내용은 다른 계정 사용자에게 AWS Secrets Manager 시크릿 권한을 참고하세요.
aws lambda create-event-source-mapping \
  --event-source-arn arn:aws:kafka:us-east-1:111122223333:vpc-connection/444455556666/my-cluster-name/51jn98b4-0a61-46cc-b0a6-61g9a3d797d5-7 \
  --topics AWSKafkaTopic \
  --starting-position LATEST \
  --function-name my-kafka-function \
  --source-access-configurations '[{"Type": "SASL_SCRAM_512_AUTH","URI": "arn:aws:secretsmanager:us-east-1:444455556666:secret:my-secret"}]'

예시 — mTLS 인증을 사용하는 클러스터용 크로스 계정 이벤트 소스 매핑 만들기

클러스터가 mTLS 인증을 사용한다면 CLIENT_CERTIFICATE_TLS_AUTH와 Secrets Manager 시크릿 ARN을 지정하는 SourceAccessConfiguration 객체를 포함해야 해요. 시크릿은 클러스터 계정이나 Lambda 함수 계정에 저장할 수 있어요.

aws lambda create-event-source-mapping \
  --event-source-arn arn:aws:kafka:us-east-1:111122223333:vpc-connection/444455556666/my-cluster-name/51jn98b4-0a61-46cc-b0a6-61g9a3d797d5-7 \
  --topics AWSKafkaTopic \
  --starting-position LATEST \
  --function-name my-kafka-function \
  --source-access-configurations '[{"Type": "CLIENT_CERTIFICATE_TLS_AUTH","URI": "arn:aws:secretsmanager:us-east-1:444455556666:secret:my-secret"}]'

출처: AWS Lambda 개발자 안내서

더 알아보기 (Learn more)