配置 Lambda 执行角色权限 - AWS Lambda

配置 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 资源的策略。

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 用户指南中的使用策略控制对AWS资源的访问权限

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