配置 Lambda 执行角色权限
除了访问自行托管的 Kafka 集群外,您的 Lambda 函数还需要执行各种 API 操作的权限。您可以为函数的执行角色添加这些权限。如果您的用户需要访问任何 API 操作,请将所需权限添加到 AWS Identity and Access Management(IAM)用户或角色的身份策略中。
所需的 Lambda 函数权限
要在 Amazon CloudWatch Logs 中创建日志并将日志存储到日志组,Lambda 函数必须在它的执行角色中具有以下权限:
可选的 Lambda 函数权限
您的 Lambda 函数还可能需要权限来:
-
描述您的 Secrets Manager 密钥。
-
访问 AWS Key Management Service(AWS KMS)客户管理的密钥。
-
访问 Amazon VPC。
-
将失败调用的记录发送到目标。
Secrets Manager 和 AWS KMS 权限
根据您为 Kafka 代理配置的访问控制类型,Lambda 函数可能需要访问您的 Secrets Manager 密钥或解密 AWS KMS 客户管理的密钥的权限。要连接到这些资源,函数的执行角色必须具有以下权限:
VPC 权限
如果只有 VPC 内的用户才能访问您自行托管的 Apache Kafka 集群,则 Lambda 函数必须具有访问 Amazon VPC 资源的权限。这些资源包括您的 VPC、子网、安全组和网络接口。要连接到这些资源,函数的执行角色必须具有以下权限:
向执行角色添加权限
要访问自行管理的 Apache Kafka 集群使用的其他AWS服务,Lambda 需使用您在 Lambda 函数执行角色中定义的权限策略。
默认情况下,Lambda 无权为自行管理的 Apache Kafka 集群执行必需或可选操作。您必须在 IAM 信任策略中为您的执行角色创建和定义这些操作。此示例演示了如何创建允许 Lambda 访问您的 Amazon VPC 资源的策略。
使用 IAM policy 授予用户访问权限
默认情况下,用户和角色无权执行事件源 API 操作。要向组织或账户中的用户授予访问权限,您可以创建或更新基于身份的策略。有关更多信息,请参阅 IAM 用户指南中的使用策略控制对AWS资源的访问权限。
有关身份验证和授权错误的故障排除,请参阅Kafka 事件源映射错误的故障排除