尝试将文件从s3-bucket复制到我的ec2-instance时找不到凭证

时间:2019-06-13 07:47:21

标签: amazon-web-services amazon-s3 amazon-ec2 aws-cli

我正在尝试将文件从s3-bucket复制到ec2-instance。 当我在ec2-instance中运行此命令时:aws s3 cp s3://amazing-demobucket-1/file.txt ./file.txt我得到以下错误:Unable to locate credentials

但是aws configure文件在我的本地计算机上的~/.aws中。我还需要在ec2-instance内部进行配置吗?还是我可以在ec2-instance外部运行另一个命令,以将文件从s3-bucket下载到ec2-instance中?

感谢帮助!

3 个答案:

答案 0 :(得分:1)

可能是优先顺序问题。 AWS首先检查环境变量中的键,然后检查〜/ .aws路径

尝试在下面的命令中运行以查看其寻找键的位置

aws configure list

您可以在以下链接上找到有关优先级的更多详细信息

https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#config-settings-and-precedence

答案 1 :(得分:1)

您可以尝试使用创建IAM角色并将其附加到EC2,而不是在EC2中使用AWS凭证。

步骤:

i)为具有S3访问权限的EC2创建IAM角色 ii)将IAM角色附加到EC2实例

有关更多参考:https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html

希望有帮助。

答案 2 :(得分:1)

EC2实例上的awscli程序无法看到您本地计算机上的AWS凭证。如果要在EC2实例上运行S3复制命令,则有两个选择:

1)在EC2实例上运行aws configure并在该计算机上定义凭据(不推荐)

2)创建具有所需权限的IAM role以复制文件(例如,使用AmazonS3ReadOnlyAccess策略)和attach the role to your EC2 instance