20

好的,所以我在尝试通过 Windows 7 中的命令提示符通过 AWS CLI 访问 AWS S3 存储桶时遇到了一个非常令人沮丧的问题。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

4 回答 4

42

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

aws configure 

它会提示您输入以下内容

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

看这个视频教程:https ://youtu.be/hhXj8lM_jBs

于 2014-07-25T07:17:21.753 回答
7

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

于 2013-09-24T20:04:03.943 回答
2

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

我的发现如下。

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

  2. OP[default]在他们的示例中指定了一个部分,但是当我删除此部分时我遇到了同样的错误,因为我认为不需要它,所以不需要它。

然后我按如下方式修改了我的文件并且它起作用了......

[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 的模糊消息而苦苦挣扎了几个小时后才真正发布了这个,这些都是对我有用的解决方案。希望它可以帮助某人。

于 2018-11-23T21:36:36.983 回答
2

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

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

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

aws <command> --profile user1
于 2020-05-18T19:58:18.373 回答