Lambda에서 교차 계정 이벤트 소스 매핑 생성 - AWS Lambda

Lambda에서 교차 계정 이벤트 소스 매핑 생성

다중 VPC 프라이빗 연결을 사용하여 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 인증을 사용하는 경우 SourceAccessConfiguration 객체를 포함하며 이는 SASL_SCRAM_512_AUTH 및 Secrets Manager 비밀 ARN을 지정합니다.

SASL/SCRAM 인증을 통한 계정 간 Amazon MSK 이벤트 소스 매핑에 암호를 사용하는 방법에는 두 가지가 있습니다.

  • Lambda 함수 계정에서 시크릿을 생성하고 클러스터 암호와 동기화합니다. 로테이션을 생성하여 두 암호가 동기화된 상태를 유지합니다. 이 옵션을 사용하면 함수 계정에서 시크릿을 제어할 수 있습니다.

  • 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을 사용하는 경우 SourceAccessConfiguration 객체를 포함하며 이는 CLIENT_CERTIFICATE_TLS_AUTH 및 Secrets Manager 비밀 ARN을 지정합니다. 암호는 클러스터 계정 또는 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"}]'