对 Amazon Lambda 身份和访问进行故障排除 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

对 Amazon Lambda 身份和访问进行故障排除

使用以下信息可帮助您诊断和修复在使用 Lambda 和 IAM 时可能遇到的常见问题。

我无权在 Lambda 中执行操作

如果 Amazon Web Services Management Console 告诉您,您无权执行某个操作,则必须联系您的管理员寻求帮助。您的管理员是指为您提供用户名和密码的那个人。

mateojackson IAM 用户尝试使用控制台查看有关函数的详细信息,但不具有 lambda:GetFunction 权限时,会发生以下示例错误。

User: arn:aws-cn:iam::123456789012:user/mateojackson is not authorized to perform: lambda:GetFunction on resource: my-function

在这种情况下,Mateo 请求他的管理员更新其策略,以允许他使用 lambda:GetFunction 操作访问 my-function 资源。

我无权执行 iam:PassRole

如果您收到错误消息,提示您无权执行 iam:PassRole 操作,则必须联系您的管理员寻求帮助。您的管理员是指为您提供用户名和密码的那个人。请求那个人更新您的策略,以便允许您将角色传递给 Lambda。

有些 Amazon 服务允许您将现有角色传递到该服务,而不是创建新服务角色或服务相关角色。为此,您必须具有将角色传递到服务的权限。

当名为 marymajor 的 IAM 用户尝试使用控制台在 Lambda 中执行操作时,会发生以下示例错误。但是,服务必须具有服务角色所授予的权限才可执行操作。Mary 不具有将角色传递到服务的权限。

User: arn:aws-cn:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole

在这种情况下,Mary 请求她的管理员来更新其策略,以允许她执行 iam:PassRole 操作。

我想要查看我的访问密钥

创建 IAM 用户访问密钥之后,您可以随时查看您的访问密钥 ID。但是,您无法再查看您的秘密访问密钥。如果您丢失了私有密钥,则必须创建一个新的访问密钥对。

访问密钥包含两部分:访问密钥 ID(例如 AKIAIOSFODNN7EXAMPLE)和秘密访问密钥(例如 wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY)。与用户名和密码一样,您必须同时使用访问密钥 ID 和秘密访问密钥对请求执行身份验证。像对用户名和密码一样,安全地管理访问密钥。

重要

请不要向第三方提供访问密钥,甚至为了帮助找到您的规范用户 ID 也不能提供。如果您这样做,可能会向某人提供对您的账户的永久访问权限。

当您创建访问密钥对时,系统会提示您将访问密钥 ID 和秘密访问密钥保存在一个安全位置。秘密访问密钥仅在您创建它时可用。如果您丢失了秘密访问密钥,则必须向您的 IAM 用户添加新的访问密钥。您最多可拥有两个访问密钥。如果您已有两个密钥,则必须删除一个密钥对,然后再创建新的密钥。要查看说明,请参阅 IAM 用户指南 中的管理访问密钥

我是管理员并希望允许其他人访问 Lambda

要允许其他人访问 Lambda,您必须为需要访问权限的人员或应用程序创建 IAM 实体(用户或角色)。他们(它们)将使用该实体的凭证访问 Amazon。然后,您必须将策略附加到实体,以便在 Lambda 中为他们(它们)授予正确的权限。

要立即开始使用,请参阅 IAM 用户指南 中的创建您的第一个 IAM 委托用户和组

我是一名管理员,希望从将被弃用的 Lambda 的 Amazon 托管策略迁移

2021 年 3 月 1 日之后,Amazon 托管策略 AWSLambdaReadOnlyAccessAWSLambdaFullAccess 将被弃用,无法再附加到新的 IAM 用户。有关策略弃用的更多信息,请参阅中的 IAM 用户指南 中的已弃用的Amazon托管策略

Lambda 引入了两个新的 Amazon 托管策略:

  • AWSLambda_ReadOnlyAccess 策略授予对 Lambda、Lambda 控制台功能以及相关 Amazon 服务的只读访问权限。此策略是通过缩小先前策略 AWSLambdaReadOnlyAccess 的范围创建的。

  • AWSLambda_FullAccess 策略授予对 Lambda、Lambda 控制台功能和其他相关 Amazon 服务的完全访问权限。此策略是通过缩小先前策略 AWSLambdaFullAccess 的范围创建的。

使用 Amazon 托管策略

我们建议使用新启动的托管策略向用户、组和角色授予访问权限 Lambda;但是,请审核策略中授予的权限,以确保它们符合您的要求。

  • 要审核 AWSLambda_ReadOnlyAccess 策略的权限,请参阅 IAM 控制台中的 AWSLambda_ReadOnlyAccess 策略页面。

  • 要审核 AWSLambda_FullAccess 策略的权限,请参阅 IAM 控制台中的 AWSLambda_FullAccess 策略页面。

审核权限后,可将策略附加到 IAM 身份(组、用户或角色)。有关附加 Amazon 托管策略的说明,请参阅中的 IAM 用户指南 中的添加和删除 IAM 身份权限

使用客户托管策略

如果您需要更精细的访问控制或者想要添加权限,则可以创建自己的客户托管策略。有关更多信息,请参阅 IAM 用户指南 中的在“JSON”选项卡上创建策略

我希望允许我的 Amazon 账户之外的人员访问我的 Lambda 资源

您可以创建一个角色,以便其他账户中的用户或您组织外的人员可以使用该角色来访问您的资源。您可以指定谁值得信赖,可以代入角色。对于支持基于资源的策略或访问控制列表 (ACL) 的服务,您可以使用这些策略向人员授予对您的资源的访问权。

要了解更多信息,请参阅以下内容: