我想获取部署 Lambda 的 AWS 帐户的 accountId。
威尔boto3.client('sts').get_caller_identity()['Account']返回 lambda 的部署帐户本身,还是 lambda 调用者的帐户?
在自己的代码中获取 Lambda AWS accountId 的正确方法是什么?
最佳答案
使用一组环境变量调用 Lambda 运行 AWS_ACCESS_KEY_ID
, AWS_SECRET_KEY
, AWS_SESSION_TOKEN
等,这与直接调用 sts.assume_role() 假设在 lambda 函数的配置中指定的角色相同。如果您查看 get_caller_identity()
的完整输出你看到 Arn
字段是正常的角色角色斜线名称实体假设角色。所以我假设 Account
的值字段在技术上是拥有所承担的 IAM 角色的帐户,但由于(AFAIK?)必须来自与 lambda 函数本身相同的帐户,我认为这是 lambda 函数帐户的可靠指标。
就我个人而言,我设置了一个 AWS_ACCOUNT_ID
我的大多数/所有 lambda 函数上的环境变量,在 CloudFormation 中作为 AWS_ACCOUNT_ID: { Ref: "AWS::AccountId" }
很容易通过.
关于amazon-web-services - 如何以编程方式获取 Lambda 部署到的 accountId?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52479436/