代码之家  ›  专栏  ›  技术社区  ›  RudziankoÅ­

如何以编程方式获取Lambda部署到的accountId?

  •  0
  • RudziankoÅ­  · 技术社区  · 6 年前

    我想获取Lambda部署到的AWS帐户的accountId。

    威尔 boto3.client('sts').get_caller_identity()['Account']

    在Lambda AWS accountId自身的代码中获取Lambda AWS accountId的正确方法是什么?

    1 回复  |  直到 6 年前
        1
  •  6
  •   Stephen    6 年前

    Lambda运行是通过一组环境变量调用的 AWS_ACCESS_KEY_ID , AWS_SECRET_KEY AWS_SESSION_TOKEN ,这与直接调用sts的结果相同。假定\u role()假定lambda函数的配置中指定的角色。如果你看看 get_caller_identity() Arn 字段是角色的常规arn斜杠承担角色的实体的名称。所以我推测 Account 字段从技术上说是帐户的所有者 IAM角色 这是假定的,但由于(AFAIK?)必须与lambda函数本身来自同一个帐户,我认为这是lambda函数帐户的可靠指标。

    就我个人而言,我设定了一个 AWS_ACCOUNT_ID AWS_ACCOUNT_ID: { Ref: "AWS::AccountId" }