Windows AWS CLI"无法找到凭据"当作为系统帐户运行时

时间:2016-09-02 08:01:48

标签: windows amazon-web-services amazon-ec2 cmd aws-cli

我无法从作为系统帐户运行的cmd.exe运行任何AWS CLI命令。

根据调试输出,当尝试获取EC2机器的IAM-Role时,看起来问题可能是获得404:

C:\>aws --debug s3 ls
2016-09-02 15:47:31,101 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: iam-role
2016-09-02 15:47:35,608 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - INFO - Starting new HTTP connection (1): au-aws-igw.analytics.pvt
2016-09-02 15:47:35,674 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - DEBUG - "GET http://169.254.169.254/latest/meta-data/iam/security-credentials/ HTTP/1.1" 404 345

要复制问题:

  1. 将PsExec下载到EC2的C:\ Temp(https://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
  2. 打开cmd并运行C:\ Temp \ PSTools \ PsExec.exe -i -s cmd.exe(这将打开cmd作为本地系统)
  3. 运行任何' aws'命令(例如aws s3 ls)
  4. 如果只是远程进入EC2并运行cmd(而不是系统帐户),那么' aws s3 ls'按预期工作...即列出EC2 IAM角色有权查看的所有s3存储桶。

2 个答案:

答案 0 :(得分:0)

阅读本文: http://windowsitpro.com/systems-management/psexec

也许尝试使用-u指定框中的用户来运行命令?

我猜这是一个没有设置环境变量,AWS配置路径或其他内容的问题。

无论您可以远程访问哪个用户并运行cmd,都会在-se参数中为psexec.exe命令传递该用户名,我希望它能够正常工作。

答案 1 :(得分:0)

问题是为系统帐户配置了代理,因此无法访问本地EC2元数据URL。

很难找到隐藏在Windows框中的注册表中的内容。我不得不打开regedit作为系统帐户并转到IE并在那里找到它。刚删除该密钥并正常工作。