【问题标题】:Where do AWS lamba's load credentials from?AWS Lamba 从哪里加载凭证?
【发布时间】:2021-08-19 16:43:27
【问题描述】:

我正在使用这个例子用 C# 编写一个 AWS Lamda:

https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/lambda-creating-project-in-visual-studio.html

我已根据此文档在环境变量中设置了我的凭据:

https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html

但是当我尝试上传我的 lamda 时,我收到关于没有正确 IAM 角色的错误。但是,错误信息中的账户名与我在环境变量中放入凭证的账户不一样。它与我不久前测试的另一个 S3 存储桶上的帐户有关。

这是从哪里读到的?

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-lambda


    【解决方案1】:

    我已根据此文档在环境变量中设置了我的凭据

    不是一个好的做法。应使用lambda execution role 提供 lambda 权限。设置角色后,AWS SDK 将自动从您函数的 runtime environment variables 获取临时凭证。

    由于您的函数中似乎需要跨账户访问,因此您必须按照 AWS 文档中的说明使用跨账户角色:

    【讨论】:

    • 谢谢。不过我很困惑,我只需要访问一个帐户即可使用此功能。之前的测试帐户与这些测试无关。 lamda执行角色好像是为已经上传的函数设计的,我写的函数怎么上传?
    • @Stefan 我将设置 aws 配置文件,如 here 所示。使用它们,你不需要在本地机器上摆弄你的环境变量。
    • 我创建了 UserProfile 环境变量和一个 .aws 目录,一个包含相关凭证的凭证文件,但 AWS 上传仍然给出错误凭证的错误。 :-( 我看不出它可以从哪里读取它们。
    • @Stefan 检查precedence 的凭据,看看是什么给了你错误的凭据。
    • 啊哈!还有另一个文件副本,其中包含错误的凭据!我认为 env 变量优先,但显然它们没有。谢谢! :-)
    猜你喜欢
    • 2019-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 2023-02-03
    • 2019-01-15
    相关资源
    最近更新 更多