我正在尝试将文件从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中?
感谢帮助!
答案 0 :(得分:1)
可能是优先顺序问题。 AWS首先检查环境变量中的键,然后检查〜/ .aws路径
尝试在下面的命令中运行以查看其寻找键的位置
aws configure list
您可以在以下链接上找到有关优先级的更多详细信息
答案 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