Amazon MSK 이벤트 소스 매핑에 대한 Lambda 권한 구성 - AWS Lambda

Amazon MSK 이벤트 소스 매핑에 대한 Lambda 권한 구성

Amazon MSK 클러스터에 액세스하려면 함수와 이벤트 소스 매핑에 다양한 Amazon MSK API 작업을 수행할 수 있는 권한이 필요합니다. 함수의 실행 역할에 이러한 권한을 추가합니다. 사용자에게 액세스 권한이 필요한 경우 사용자 또는 역할에 대한 ID 정책에 필요한 권한을 추가합니다.

AWSLambdaMSKExecutionRole 관리형 정책에는 Amazon MSK Lambda 이벤트 소스 매핑에 필요한 최소 권한이 포함되어 있습니다. 다음 작업을 통해 권한 프로세스를 간소화할 수 있습니다.

  • AWSLambdaMSKExecutionRole 관리형 정책을 실행 역할에 연결합니다.

  • Lambda 콘솔에서 권한을 생성하도록 합니다. 콘솔에서 Amazon MSK 이벤트 소스 매핑을 생성하면 Lambda에서 실행 역할을 평가하고 권한이 누락된 경우 알립니다. 권한 생성을 선택하여 실행 역할을 자동으로 업데이트합니다. 실행 역할 정책을 수동으로 생성하거나 수정한 경우 또는 정책이 여러 역할에 연결된 경우에는 효과가 없습니다. 실패 시 대상 또는 AWS Glue Schema Registry와 같은 고급 기능을 사용하는 경우에도 실행 역할에 추가 권한이 필요할 수 있습니다.

필수 권한

Amazon MSK 이벤트 소스 매핑에 대한 Lambda 함수 실행 역할에는 다음 권한이 필요합니다. 이러한 권한은 AWSLambdaMSKExecutionRole 관리형 정책에 포함됩니다.

CloudWatch Logs 권한

다음 권한을 통해 Lambda는 Amazon CloudWatch Logs에 로그를 생성하고 저장할 수 있습니다.

MSK 클러스터 권한

다음 권한을 통해 Lambda는 사용자를 대신하여 Amazon MSK 클러스터에 액세스할 수 있습니다.

kafka:DescribeCluster 대신 kafka:DescribeClusterV2를 사용하는 것이 좋습니다. v2 권한은 프로비저닝된 Amazon MSK 클러스터와 서버리스 Amazon MSK 클러스터 모두에서 작동합니다. 정책에는 이 권한 중 하나만 필요합니다.

VPC 권한

다음 권한을 통해 Lambda는 Amazon MSK 클러스터에 연결할 때 네트워크 인터페이스를 생성 및 관리할 수 있습니다.

선택적 권한

Lambda 함수에 또한 다음 권한이 필요할 수 있습니다.

  • 교차 계정 Amazon MSK 클러스터에 액세스합니다. 교차 계정 이벤트 소스 매핑의 경우 실행 역할에 kafka:DescribeVpcConnection이 필요합니다. 교차 계정 이벤트 소스 매핑을 생성하는 IAM 보안 주체에는 kafka:ListVpcConnections가 필요합니다.

  • SASL/SCRAM 인증을 사용하는 경우 SCRAM 보안 암호에 액세스 이렇게 하면 함수가 사용자 이름과 암호를 사용하여 Kafka에 연결할 수 있습니다.

  • SASL/SCRAM 또는 mTLS 인증을 사용하는 경우 Secrets Manager 보안 암호 설명 이렇게 하면 함수가 보안 연결에 필요한 자격 증명이나 인증서를 검색할 수 있습니다.

  • AWS Secrets Manager 보안 암호가 AWS KMS 고객 관리형 키로 암호화된 경우 AWS KMS 고객 관리형 키에 액세스합니다.

  • 인증과 함께 스키마 레지스트리를 사용하는 경우 스키마 레지스트리 시크릿에 액세스합니다.

    • AWS Glue 스키마 레지스트리의 경우: 함수에 glue:GetRegistryglue:GetSchemaVersion 권한이 필요합니다. 이를 통해 함수가 AWS Glue에 저장된 메시지 형식 규칙을 조회하고 사용할 수 있습니다.

    • BASIC_AUTH 또는 CLIENT_CERTIFICATE_TLS_AUTH를 사용하는 Confluent 스키마 레지스트리의 경우: 함수에 인증 자격 증명이 포함된 시크릿에 대한 secretsmanager:GetSecretValue 권한이 필요합니다. 이렇게 하면 함수가 Confluent 스키마 레지스트리에 액세스하는 데 필요한 사용자 이름/암호 또는 인증서를 검색할 수 있습니다.

    • Private CA Certificate의 경우: 함수에 인증서가 포함된 시크릿에 대한 secretsmanager:GetSecretValue 권한이 필요합니다. 이렇게 하면 함수가 사용자 지정 인증서를 사용하는 스키마 레지스트리의 ID를 확인할 수 있습니다.

  • 이벤트 소스 매핑에 IAM 인증을 사용하는 경우 주제에서 Kafka 클러스터 소비자 그룹에 액세스하고 메시지를 폴링합니다.

이는 다음과 같은 필수 권한에 해당합니다.

또한 실패한 간접 호출의 레코드를 장애 시 대상으로 전송하려면 대상 유형에 따라 다음과 같은 권한이 필요합니다:

  • Amazon SQS 대상의 경우: sqs:SendMessage - Amazon SQS 대기열로 메시지 전송 허용

  • Amazon SNS 대상의 경우: sns:Publish - Amazon SNS 주제에 메시지 게시 허용

  • Amazon S3 버킷 대상의 경우: s3:PutObjects3:ListBucket - Amazon S3 버킷에서 객체 쓰기 및 나열 활성화

일반적인 인증 및 권한 부여 오류 문제를 해결할 경우 Kafka 이벤트 소스 매핑 오류 문제 해결 섹션을 참조하세요.