在具有实例配置文件的 AWS EC2 实例上调用 get-caller-identity 时,InvalidClient



我们遇到了一个问题,即我们在通过附加的实例配置文件使用角色的 CentOS EC2 实例上。当我们在 SSH 进入后在控制台上时,我们运行 pythonawscli命令行工具来获取我们的身份:

$ aws sts get-caller-identity

我们得到了

调用 GetCallerIdentity 操作时发生错误 (InvalidClientTokenId(:请求中包含的安全令牌无效

其他命令(例如aws ec2 describe-instances(正常工作,并且实例配置文件允许。

通过阅读 AWS 文档,无需任何权限即可获取调用方身份,并且没有对与实例关联的角色设置显式deny

我们检查了一下,没有.aws/credentials文件,也没有设置env变量,因此访问应完全通过 EC2 实例上的元数据服务进行管理。

我们的设置或awscli调用中是否缺少可能导致权限失败的内容?

只是为遇到此问题的任何人记录修复程序。

awscli的所有调用都可能包含一个--region <region>参数。

例如

$ aws sts get-caller-identity --region us-east-2

我们在aws ec2 describe-instances电话中被提示输入区域,但在aws sts get-caller-identity电话中,它只是失败了。

此外,我们发现AWS_REGION环境变量似乎不会影响调用:我们仍然需要包含--region <region>参数。

相关内容

  • 没有找到相关文章

最新更新