Lambda 실행 역할 권한 구성
Amazon MSK 클러스터에 액세스하려면 함수와 이벤트 소스 매핑에 다양한 Amazon MSK API 작업을 수행할 수 있는 권한이 필요합니다. 함수의 실행 역할에 이러한 권한을 추가합니다. 사용자에게 액세스 권한이 필요한 경우 사용자 또는 역할에 대한 ID 정책에 필요한 권한을 추가합니다.
필요한 모든 권한을 포괄하기 위해 실행 역할에 AWSLambdaMSKExecutionRole 관리형 정책을 연결할 수 있습니다. 또는 수동으로 각 권한을 추가할 수 있습니다.
기본 권한
Lambda 함수 실행 역할에는 CloudWatch Logs에 로그를 생성하고 저장하기 위한 다음과 같은 필수 권한이 있어야 합니다.
클러스터 액세스 권한
Lambda가 사용자를 대신하여 Amazon MSK 클러스터에 액세스하기 위해서는 Lambda 함수의 실행 역할에 다음 권한이 있어야 합니다.
-
kafka:DescribeVpcConnection: 계정 간 이벤트 소스 매핑에만 필요합니다.
-
kafka:ListVpcConnections: 실행 역할에는 필요하지 않지만 계정 간 이벤트 소스 매핑을 생성하는 IAM 위탁자에게는 필요합니다.
kafka:DescribeCluster 또는 kafka:DescribeClusterV2 중 하나만 추가하면 됩니다. 프로비저닝된 Amazon MSK 클러스터의 경우 두 권한 모두 작동합니다. 서버리스 Amazon MSK 클러스터의 경우 kafka:DescribeClusterV2를 사용해야 합니다.
참고
Lambda는 결국 AWSLambdaMSKExecutionRole 관리형 정책에서 kafka:DescribeCluster 권한을 제거할 계획입니다. 이 정책을 사용하는 경우 kafka:DescribeCluster를 사용하는 모든 애플리케이션을 대신 kafka:DescribeClusterV2를 사용하도록 마이그레이션합니다.
VPC 권한
Amazon MSK 클러스터가 VPC의 프라이빗 서브넷에 있는 경우 Lambda 함수에 Amazon VPC 리소스에 액세스할 수 있는 추가 권한이 있어야 합니다. 여기에는 VPC, 서브넷, 보안 그룹 및 네트워크 인터페이스가 있습니다. 함수의 실행 역할에 다음 권한이 있어야 합니다.
선택적 권한
Lambda 함수에 또한 다음 권한이 필요할 수 있습니다.
-
SASL/SCRAM 인증을 사용하는 경우 SCRAM 보안 암호에 액세스
-
SASL/SCRAM 또는 mTLS 인증을 사용하는 경우 Secrets Manager 보안 암호 설명
-
필터 기준을 암호화하려는 경우 AWS KMS 고객 관리 키에 액세스
이는 다음과 같은 필수 권한에 해당합니다.
또한 실패한 간접 호출의 레코드를 장애 시 대상으로 전송하려면 대상 유형에 따라 다음과 같은 권한이 필요합니다:
-
Amazon SQS 대상의 경우: sqs:SendMessage
-
Amazon SNS 대상의 경우: sns:Publish
-
Amazon S3 버킷 대상의 경우: s3:PutObject 및 s3:ListBucket
일반적인 인증 및 권한 부여 오류 문제 해결기
Amazon MSK 클러스터의 데이터를 사용하는 데 필요한 권한이 누락된 경우 Lambda는 LastProcessingResult 아래의 이벤트 소스 매핑에 다음 오류 메시지 중 하나를 표시합니다. 지원되는 각 인증 방법에 대한 자세한 내용은 클러스터 인증 방법 구성 섹션을 참조하세요.
클러스터가 Lambda를 인증하지 못함
SASL/SCRAM 또는 mMTS의 경우 이 오류는 제공된 사용자에게 다음 필수 Kafka 액세스 제어 목록(ACL) 권한이 모두 있지는 않음을 나타냅니다.
DescribeConfigs 클러스터
그룹 설명
그룹 읽기
주제 설명
Thread-Topic
IAM 액세스 제어의 경우 함수의 실행 역할에 그룹 또는 주제에 액세스하는 데 필요한 하나 이상의 권한이 없습니다. 이 페이지에서 필요한 권한 목록을 검토합니다.
필수 Kafka 클러스터 권한이 있는 Kafka ACL 또는 IAM 정책을 생성할 때 주제와 그룹을 리소스로 지정합니다. 주제 이름은 이벤트 소스 매핑의 주제와 일치해야 합니다. 그룹 이름은 이벤트 소스 매핑의 UUID와 일치해야 합니다.
실행 역할에 필요한 권한을 추가한 후 변경 사항이 적용되기까지 몇 분 정도 소요될 수 있습니다.
SASL 인증 실패
SASL/SCRAM의 경우 이 오류는 제공된 사용자 이름과 암호가 유효하지 않음을 나타냅니다.
IAM 액세스 제어의 경우 실행 역할에 MSK 클러스터에 대한 kafka-cluster:Connect
권한이 없습니다. 역할에 이 권한을 추가하고 클러스터의 Amazon 리소스 이름(ARN)을 리소스로 지정합니다.
이 오류가 간헐적으로 발생하는 경우가 있습니다. TCP 연결 수가 Amazon MSK 서비스 할당량을 초과하면 클러스터는 연결을 거부합니다. Lambda는 연결이 성공할 때까지 취소하고 다시 시도합니다. Lambda가 클러스터에 연결하고 레코드를 폴링하면 마지막 처리 결과가 OK
로 변경됩니다.
서버가 Lambda를 인증하지 못함
이 오류는 Amazon MSK Kafka 브로커가 Lambda로 인증하지 못했음을 나타냅니다. 이 오류는 다음과 같은 이유로 발생할 수 있습니다.
mTLS 인증을 위한 클라이언트 인증서를 제공하지 않았습니다.
클라이언트 인증서를 제공했지만 브로커가 mTLS를 사용하도록 구성되지 않았습니다.
브로커가 클라이언트 인증서를 신뢰하지 않습니다.
제공된 인증서 또는 프라이빗 키가 잘못됨
이 오류는 Amazon MSK 소비자가 제공된 인증서 또는 프라이빗 키를 사용할 수 없음을 나타냅니다. 인증서와 키가 PEM 형식을 사용하고 프라이빗 키 암호화가 PBES1 알고리즘을 사용하는지 확인합니다. 자세한 내용은 mTLS 암호 구성를 참조하세요.