設定 Lambda 執行角色許可 - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 Lambda 執行角色許可

若要存取 Amazon MSK 叢集,您的函數和事件來源映射需要執行各種 Amazon MSK API 動作的許可。將這些許可新增至函數的執行角色。如果您的使用者需要存取,請將必要的許可新增至使用者或角色的身分政策。

若要涵蓋所有必要的許可,您可以將 AWSLambdaMSKExecutionRole 受管政策連接至執行角色。或者,您可以手動新增每個許可。

基本許可

您的 Lambda 函數執行角色必須具有下列必要許可,才能在 CloudWatch Logs 中建立和存放日誌。

叢集存取許可

Lambda 函數的執行角色必須具有下列許可,Lambda 才能代您存取 Amazon MSK 叢集。

您只需要新增其中一個 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 秘密。這可讓您的函數使用使用者名稱和密碼連線至 Kafka。

  • 如果您使用 SASL/SCRAM 或 mTLS 身分驗證,請描述您的 Secrets Manager 秘密。這可讓您的函數擷取安全連線所需的登入資料或憑證。

  • 如果您想要加密篩選條件,請存取 AWS KMS 客戶受管金鑰。這有助於保持訊息篩選規則的秘密。

  • 如果您使用具有身分驗證的結構描述登錄檔,請存取您的結構描述登錄檔秘密:

    • 對於 AWS Glue 結構描述登錄檔:您的函數需求glue:GetRegistryglue:GetSchemaVersion許可。這些可讓您的函數查詢並使用存放於 的訊息格式規則 AWS Glue。

    • 對於使用 BASIC_AUTH的 Confluent 結構描述登錄CLIENT_CERTIFICATE_TLS_AUTH:您的函數需要包含身分驗證憑證之秘密的secretsmanager:GetSecretValue許可。這可讓您的函數擷取存取 Confluent 結構描述登錄檔所需的使用者名稱/密碼或憑證。

    • 對於私有 CA 憑證:您的函數需要包含憑證之秘密的 secretsmanager:GetSecretValue 許可。這可讓您的函數驗證使用自訂憑證之結構描述登錄檔的身分。

這些對應至下列必要許可:

此外,如果您想要將失敗調用的記錄傳送至失敗時的目的地,根據目的地類型,您將需要下列許可:

  • 對於 Amazon SQS 目的地:sqs:SendMessage - 允許傳送訊息至 Amazon SQS 佇列

  • 對於 Amazon SNS 目的地:sns:Publish - 允許將訊息發佈至 Amazon SNS 主題

  • 對於 Amazon S3 儲存貯體目的地:s3:PutObjects3:ListBucket - 允許在 Amazon S3 儲存貯體中寫入和列出物件

如需對身分驗證和授權錯誤進行故障診斷,請參閱 故障診斷 Kafka 事件來源映射錯誤