在我的 Ubuntu docker 容器中,我运行时出现以下错误:
$ aws ssm start-session --target mi-XYZ
An error occurred (BadRequest) when calling the StartSession operation: Enable advanced-instances tier to use Session Manager with your on-premises instances
但是,在我的 Macbookpro 上,我可以运行相同的命令并且运行良好。在这两种环境中,我的
~/.aws/credentials
文件包含完全相同的信息。我可以识别的唯一区别是我的 docker 实例运行的是 AWS CLI v2.15,而我的 MBP 运行的是旧版本 (v2.11)。除此之外,凭证对其中一个有效,但对另一个无效。
有趣的是,每当我只是将凭据导出为环境变量(例如我的访问密钥、秘密密钥和令牌)时,它都可以正常工作。
无论出于何种原因,我的 Ubuntu docker 容器似乎无法识别或使用
~/.aws/credentials
文件来引用我的 AWS 凭证。当我在 docker 容器中运行 aws configure
时,提示中已经包含了我的凭据,因此它似乎在某种程度上识别了它。
我可以检查什么来尝试解决此问题?
原来是因为这些环境变量已经设置了(即使值是错误的)。取消设置这些环境变量后,AWS CLI 开始使用
~/.aws/credentials
文件中的凭证。