1

在我的工作中,当使用 aws cli 时,我们使用 aws_session_token。我在 puppetlabs-aws 对 aws_session_token 的支持中看不到任何内容。有任何想法吗?

4

1 回答 1

0

当您从 AWS 安全令牌服务 (STS) 获取临时凭证时,通常使用 AWS_SESSION_TOKEN。这通常是在您调用 Assume 角色时。因此,这在很大程度上取决于您如何设置命令行:

如果您明确地调用像这样的角色:

aws sts assume-role --role-arn "arn:aws:iam::123456789012:role/RoleToAssume" --role-session-name AWSCLI-Session

您应该得到包含三个变量的响应:

AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN

您应该能够将这些中的每一个导出为环境变量,然后运行puppet apply​​.

如果您没有显式调用假设角色并且正在使用实例配置文件,那么 puppet 应该会自动找到这 3 个变量。

如果您通过 AWS_PROFILES 调用假设角色,那么在设置环境变量后~/.aws/config运行应该就足够了。puppet applyAWS_PROFILE

您可能还想考虑使用更新的puppetlabs amazon_aws 模块,它取代了 puppetlabs/aws。

于 2021-01-19T00:33:38.583 回答