AWS命令行界面无法找到凭据 - 特殊权限

时间:2013-09-23 19:55:21

标签: windows amazon-web-services amazon-s3 environment-variables command-line-interface

好的,所以我在尝试通过AWS CLI通过Windows 7中的命令提示符访问AWS S3 Bucket时遇到了一个非常令人沮丧的问题.AWS CLI“无法找到凭据”,即config.txt文件@ C:\Users\USERNAME\.aws\config.txt

我已经尝试通过在ControlPanel> System> AdvancedSystemSettings> EnvironmentalVariables中创建AWS_CONFIG_FILE环境变量来实现它,但没有骰子。我也在另一台Win7机器上尝试了以上所有功能。再一次,没有骰子。

我在这里可以缺少什么。是否需要为AWS CLI设置特殊权限才能加入config.txt?在我自己睁开眼睛之前帮忙!

如果您感兴趣,config.txt的内容是:

[default]
aws_access_key_id = key id here
aws_secret_access_key = key here
region = us-east-1

4 个答案:

答案 0 :(得分:38)

使用命令行工具时,还有另一种配置aws凭据的方法。 您可以使用Windows命令而不是通过文件传递凭据。 从Windows命令提示符

执行以下命令
aws configure 

它会提示您输入以下内容

AWS Access key ID:
AWS secrete key ID:
Default region Name:
Default output Format:

请参阅此视频教程:https://youtu.be/hhXj8lM_jBs

答案 1 :(得分:7)

好的,配置文件不能是文本文件(.txt)。您应该在CMD中创建文件,它应该是没有任何扩展名的通用文件。

答案 2 :(得分:1)

如果像我一样,您的凭据文件中有一个自定义IAM用户,而不是“ default”,请尝试将AWS_DEFAULT_PROFILE env变量设置为IAM用户的名称,然后运行命令。

[user1]
ACCESS_KEY=
SECRET_KEY=
set AWS_DEFAULT_PROFILE=user1
aws <command>

或者,您每次使用cli时都可以指定--profile变量:

aws <command> --profile user1

答案 3 :(得分:0)

关于这一点,我在尝试执行S3同步时遇到类似的问题。

我的发现如下。

  1. 删除=和键值对之间的空格(请参见下面的示例)。

  2. OP在他们的示例中指定了一个[default]部分,但是当我删除此部分时遇到了相同的错误,因为我认为这不是必需的,因此它一文不值。 / p>

然后我按如下所示重新整理了文件,它就起作用了...

[default]
aws_access_key_id=****
aws_secret_access_key=****
region=eu-west-2

[deployment-profile]
aws_access_key_id=****
aws_secret_access_key=****
region=eu-west-2
  1. 我必须在credentials文件的底部添加一个空白行。

当我因来自AWS的模糊消息而苦苦挣扎了几个小时时,就真的发布了这些,这些是对我有用的解决方案。希望对别人有帮助。