aws cli 出现错误“请求中包含的安全令牌无效”

Cha*_*HAM 4 amazon-web-services aws-cli

我之前做过aws configure并测试过它是否有效。但是今天没有用,我在尝试获取托管区域时遇到了错误

 $ aws route53 list-hosted-zones

 An error occurred (InvalidClientTokenId) when calling the ListHostedZones operation: The security token included in the request is invalid.
Run Code Online (Sandbox Code Playgroud)

我删除了 ~/.aws 并aws configure再次执行,但我仍然遇到相同的错误。能否请你帮忙?谢谢!

Rtm*_*tmY 11

启用 MFA 后,您必须传递在执行
aws sts get-session-token每个未来请求时收到的临时凭据。

使用环境变量:

export AWS_ACCESS_KEY_ID=XXX
export AWS_SECRET_ACCESS_KEY=YYY
export AWS_DEFAULT_REGION=us-east-2
export AWS_SESSION_TOKEN=ZZZ
Run Code Online (Sandbox Code Playgroud)

具有命名配置文件:

[mfa]
aws_access_key_id = XXX
aws_secret_access_key = YYY
aws_session_token = ZZZ
Run Code Online (Sandbox Code Playgroud)

如果您忘记删除以前的临时凭据,则可能会反复出现该错误。An error occurred (InvalidClientTokenId) ...

因此,如果您使用环境变量,请不要忘记在新执行之前取消设置所有变量aws sts get-session-token

unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY
unset AWS_SESSION_TOKEN
Run Code Online (Sandbox Code Playgroud)

如果您使用命名配置文件 - 不要忘记更新 下的配置文件.aws/credentials


Ale*_*one 5

您的帐户是否启用了 MFA?你可能不得不跑

aws sts get-session-token
Run Code Online (Sandbox Code Playgroud)

此处记录有关如何将 MFA 与 cli 一起使用的详细信息。