6

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

$ aws sts get-caller-identity

我们得到

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

aws ec2 describe-instances实例配置文件允许的其他命令,例如work 和。

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

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

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

4

1 回答 1

1

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

所有对 的调用都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>参数。

于 2020-02-07T18:15:36.077 回答