繁体   English   中英

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

[英]InvalidClientTokenId when calling get-caller-identity on an AWS EC2 instance with instance profile

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

$ aws sts get-caller-identity

我们得到

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

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

通过阅读 AWS 文档,get-caller-identity 不需要任何权限,并且没有对与实例关联的角色设置明确的deny

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

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

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

所有对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>参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM