配置 Lambda 执行角色权限 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

配置 Lambda 执行角色权限

除了访问自行托管的 Kafka 集群外,您的 Lambda 函数还需要执行各种 API 操作的权限。您可以为函数的执行角色添加这些权限。如果您的用户需要访问任何 API 操作,请将所需权限添加到 Amazon Identity and Access Management(IAM)用户或角色的身份策略中。

所需的 Lambda 函数权限

要在 Amazon CloudWatch Logs 中创建日志并将日志存储到日志组,Lambda 函数必须在它的执行角色中具有以下权限:

可选的 Lambda 函数权限

您的 Lambda 函数还可能需要权限来:

  • 描述您的 Secrets Manager 密钥。

  • 访问 Amazon Key Management Service(Amazon KMS)客户管理的密钥。

  • 访问 Amazon VPC。

  • 将失败调用的记录发送到目标。

Secrets Manager 和 Amazon KMS 权限

根据您为 Kafka 代理配置的访问控制类型,Lambda 函数可能需要访问您的 Secrets Manager 密钥或解密 Amazon KMS 客户管理的密钥的权限。要连接到这些资源,函数的执行角色必须具有以下权限:

VPC 权限

如果只有 VPC 内的用户才能访问您自行托管的 Apache Kafka 集群,则 Lambda 函数必须具有访问 Amazon VPC 资源的权限。这些资源包括您的 VPC、子网、安全组和网络接口。要连接到这些资源,函数的执行角色必须具有以下权限:

向执行角色添加权限

要访问自行管理的 Apache Kafka 集群使用的其他Amazon服务,Lambda 需使用您在 Lambda 函数执行角色中定义的权限策略。

默认情况下,Lambda 无权为自行管理的 Apache Kafka 集群执行必需或可选操作。您必须在 IAM 信任策略中为您的执行角色创建和定义这些操作。此示例演示了如何创建允许 Lambda 访问您的 Amazon VPC 资源的策略。

JSON
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ec2:CreateNetworkInterface", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DeleteNetworkInterface", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource":"*" } ] }

使用 IAM policy 授予用户访问权限

默认情况下,用户和角色无权执行事件源 API 操作。要向组织或账户中的用户授予访问权限,您可以创建或更新基于身份的策略。有关更多信息,请参阅 IAM 用户指南中的使用策略控制对Amazon资源的访问权限

有关身份验证和授权错误的故障排除,请参阅Kafka 事件源映射错误的故障排除