aws sts get-session-token ... --token-code ... 因 InvalidClientTokenId 而失败,但 MFA 控制台登录正常

aws sts get-session-token ... --token-code ... fails with InvalidClientTokenId, but MFA console login working

我正尝试在 AWS CLI 上检索会话令牌,如下所示:

aws sts get-session-token --serial-number arn-string --token-code mfacode

哪里

错误:

An error occurred (InvalidClientTokenId) when calling the GetSessionToken operation: The security token included in the request is invalid.

不过,我用那个MFA设备在浏览器中登录控制台就好了

我的 ~/.aws/ 中只有一个默认配置文件,但我看不出这会有什么影响。

试过这个:

  1. 尝试多次以确保没有发生 mfa 翻转
  2. 删除 MFA 设备分配并重新分配设备 -- 同样的错误
  3. 提交 --token-code 希望它提示我输入 MFA 设备令牌——同样的错误
  4. 使用 arn:aws:iam:<number>:user/<name>——与预期的错误相同,因为 aws get-session-id help 明确指出它需要成为 mfa 设备的 arn

我认为这与 arn-string 而不是令牌有关,但是什么? 欢迎了解导致此问题的原因。

此致, 奥拉夫

已解决。 maafk 的评论明确了这一点。为了记录和下一个陷入这个问题的可怜的灵魂:

使用的配置文件必须有mfa_serial条目。在我的例子中,将 mfa 设备的 arn-string 添加到我在 ~/.aws/config 中的本地默认配置文件,如下所示:

[default]

region = eu-central-1

mfa_serial = arn:aws:iam:<number>:mfa/<name>

这个字符串可以在控制台、用户下的IAM服务、安全凭证中找到。