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

在 Amazon Lambda 中管理权限

您可以使用 Amazon Lambda(IAM)管理 Amazon Identity and Access Management 中的权限。使用 Lambda 函数时需要考虑两类主要权限:

  • 您的 Lambda 函数执行 API 操作和访问其他 Amazon 资源所需的权限

  • 其他 Amazon 用户和实体访问您的 Lambda 函数所需的权限

Lambda 函数通常需要访问其他 Amazon 资源,并对这些资源执行各种 API 操作。例如,您可能会有想通过更新 Amazon DynamoDB 数据库中的条目来响应事件的 Lambda 函数。在这种情况下,您的函数需要访问数据库的权限,以及在该数据库中放置或更新项目的权限。

您可以在名为执行角色的特殊 IAM 角色中定义 Lambda 函数所需的权限。在此角色中,您可以附加一个策略,该策略定义您的函数访问其他 Amazon 资源以及从事件源读取所需的所有权限。每个 Lambda 函数都必须有一个执行角色。您的执行角色必须至少有权访问 Amazon CloudWatch,因为默认情况下,Lambda 函数会记录到 CloudWatch Logs 中。您可以将 AWSLambdaBasicExecutionRole 托管策略附加到执行角色以满足此要求。

要授予其他 Amazon 账户、组织和服务访问您的 Lambda 资源的权限,您有以下几种选择:

  • 您可以使用基于身份的策略授予其他用户访问 Lambda 资源的权限。基于身份的策略可以直接应用于用户,也可以应用于与用户相关的组和角色。

  • 您可以使用基于资源的策略授予其他账户和 Amazon 服务权限以访问您的 Lambda 资源。当用户尝试访问 Lambda 资源时,Lambda 会同时考虑用户的基于身份的策略和资源的基于资源的策略。当 Amazon Simple Storage Service (Amazon S3) 等 Amazon 服务调用您的 Lambda 函数时,Lambda 仅考虑基于资源的策略。

  • 您可以使用基于属性的访问权限控制(ABAC)模型来控制对 Lambda 函数的访问。使用 ABAC,您可以将标签附加到 Lambda 函数,在某些 API 请求中传递它们,或将它们附加到发出请求的 IAM 主体。在 IAM 策略的条件元素中指定相同的标签来控制功能访问。

在 Amazon 中,最佳实践是仅授予执行任务所需的权限(最低权限)。要在 Lambda 中实现这一点,建议从 Amazon 托管策略开始。您可以按原样使用这些托管策略,也可以作为编写自己的限制性更强策略的起点。

为了帮助您微调最低权限访问的权限,Lambda 提供了一些您可以包含在策略中的其他条件。有关更多信息,请参阅 微调策略的“资源和条件”部分

有关 IAM 的更多信息,请参阅《IAM 用户指南》https://docs.amazonaws.cn/IAM/latest/UserGuide/introduction.html