【发布时间】:2021-10-16 02:42:10
【问题描述】:
我正在寻找一种在 python 中使用 boto3 来执行与 AWS CLI 的方法 aws configure get varname [--profile profile-name] 等效的方法。有谁知道这是否可能没有:
- 自己解析 AWS 配置文件
- 通过我的 python 脚本以某种方式与 AWS CLI 本身进行交互
关于更多上下文,我正在编写一个 python cli 工具,它将使用 boto3 与 AWS API 进行交互。 python 工具使用存储在 ~/.aws/credentials 文件的配置文件中的 AWS 会话令牌。我正在使用 saml2aws cli 从我公司的身份提供商获取 AWS 凭证,该身份提供商将 aws_access_key_id、aws_secret_access_key、aws_session_token、aws_security_token、x_principal_arn 和 x_security_token_expires 参数写入 ~/.aws/credentials像这样的文件:
[saml]
aws_access_key_id = #REMOVED#
aws_secret_access_key = #REMOVED#
aws_session_token = #REMOVED#
aws_security_token = #REMOVED#
x_principal_arn = arn:aws:sts::000000000123:assumed-role/MyAssumedRole
x_security_token_expires = 2019-08-19T15:00:56-06:00
由于我的 python cli 工具的性质,有时该工具会在 AWS 会话令牌的到期时间之后执行,我的公司强制执行该时间非常短。我希望 python cli 工具在开始其关键任务之前检查过期时间,以验证它是否有足够的时间来完成其任务,如果没有,则提醒用户刷新他们的会话令牌。
使用 AWS CLI,我可以使用如下方式从 ~/.aws/credentials 文件中获取 AWS 会话令牌的到期时间:
$ aws configure get x_security_token_expires --profile saml
2019-08-19T15:00:56-06:00
我很好奇 boto3 是否有我找不到的机制来做类似的事情。
作为替代解决方案,给定已生成的 AWS 会话令牌,是否可以获取它的到期时间?但是,鉴于Ways to find out how soon the AWS session expires? 等问题缺乏答案,我猜不会。
【问题讨论】:
标签: python amazon-web-services boto3