【问题标题】:AWS CLI giving InvalidClientTokenId error when Ansible is running well当 Ansible 运行良好时,AWS CLI 给出 ​​InvalidClientTokenId 错误
【发布时间】:2017-05-25 09:51:59
【问题描述】:

我有以下设置:

  1. 脚本 updatecreds.py 运行,它使用 STS 更新我的 Ansible creds 文件中的 AWS 凭证。
  2. 现在,我利用这些信誉在 Ansible 中运行与 AWS 相关的任务,并且它们运行顺利。但是,CLI 命令给了我一个错误。
  3. 当我在 ~/.aws/config 文件中使用相同的凭据时,执行 CLI 命令时出现以下错误:A client error (InvalidClientTokenId) occurred when calling the ListAccessKeys operation: The security token included in the request is invalid.

由于我的一些 Ansible 任务运行的是 AWS cli 命令的 shell 命令,因此这种行为也会影响我的 Ansible 运行。

为什么 AWS 的行为如此怪异?还是我在这里做错了什么?

PS:我的~/.aws/config 看起来像这样:

[default]
aws_access_key_id=<>
aws_secret_access_key=<>
aws_session_token=<>
region=us-east-1

【问题讨论】:

  • 显示您的~/.aws/config 的格式(屏蔽实际凭据)。
  • @KonstantinSuvorov 更新了我的问题
  • 尝试使用aws_security_token= 和相同的令牌值复制aws_session_token=
  • @KonstantinSuvorov 你是个天才。我很困惑:/。 SessionToken 曾经工作过!请添加它作为答案:)

标签: ansible boto3 aws-cli


【解决方案1】:

session/security 术语存在混淆,请参阅this issue

要使botoaws cli 都能正常工作,请复制它们:

[default]
aws_access_key_id=KEY
aws_secret_access_key=SECRET
aws_session_token=TOKEN
aws_security_token=TOKEN
region=REGION

【讨论】:

    【解决方案2】:

    尝试不使用 aws_session_token=

    我的工作正常,只有 ~/.aws.credentials 中的 aws_access_key_id 和 aws_secret_access_key

    【讨论】:

    • 因为你没有使用 STS 凭据 :)
    猜你喜欢
    • 1970-01-01
    • 2018-10-19
    • 2018-10-11
    • 2016-01-02
    • 2021-12-31
    • 2020-08-26
    • 2017-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多