我正在尝试使用 s3fs 将 S3 存储桶安装到标准 AWS Amazon Linux AMI(安装了所有必要的依赖项)。但是,当执行以下操作时本教程当我运行:s3fs mybucketname -o allow_other myfolder
或其变体时,我得到了以下响应:
s3fs:无法确定如何建立安全凭证
我试过了:
- 在 etc 文件夹中创建 passwd-s3fs,格式为:accessID:secretAccessKey
- 在主文件夹中创建 .passwd-s3fs
- 设置 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 环境变量
- 尽可能开放 passwd-s3fs 的权限(它变得更加安全因为这个问题)
- 授予与此访问密钥关联的 IAM 用户管理员访问权限
- 通过具有相同访问权限和秘密访问密钥详细信息的本地客户端成功连接
- 通常要仔细检查所有内容,看是否存在拼写错误等
我感觉我在 AWS 方面做了一些愚蠢的事情(我对 AWS 完全陌生),我需要对 S3 bucket 权限、策略等应用一些具体的东西吗?这让我抓狂了,非常感谢帮助!
答案1
我发现解决这个问题的最佳方法是使用-o iam_role
选项传递实例角色的名称,另外如果您不在 us-east-1 区域,您可能还需要指定url
和endpoint
选项。
例如
s3fs mybucketname -o allow_other myfolder -o iam_role=$iam_role_name -o endpoint=${aws_region} -o url=https://s3-${aws_region}
(这是我用来将 S3 存储桶挂载到 ECS 容器主机实例的命令,因此 EC2 实例作为集群的一部分部署)
答案2
虽然这个问题很老了,但我也遇到过这个问题,所以我想我会发布对我有用的解决方案,以防其他人遇到同样的问题。
sudo apt purge s3fs -y
sudo apt update -y && sudo apt upgrade -y
sudo apt install s3fs -y
在当前用户主目录中,使用您的 IAM 凭证创建一个名为 .passwd-s3fs 的 txt 文件,如下所示:
密钥:秘密
IE
kjewndkjsn8387:emkwlmskld8/knsdknjnsjnsdk
# 1. use a text editor to add your key:secret & save the file
vim ~/.passwd-s3fs
# set permissions of .passwd-s3fs to 0400
sudo chmod 0400 ~/.passwd-s3fs
# mount drive s3fs /the_remote_path as /local_path
# i.e
s3fs my_bucket:/the_remote_path /local_path
答案3
这个主题可能很老了,但我遇到了同样的问题。Aslan 和许多其他页面的答案都是“正确的”,但对我来说仍然不起作用。我首先按照 Aslan 的建议卸载、更新和升级,但我必须注意不要使用任何 sudo 命令。我严格使用:
nano ~/.passwd-s3fs
就像阿斯兰说的,只进入
访问密钥ID:SecretAccessKey
IE
kjewndkdui8374:emkwlmduiwj7/knsdknjnsjwkid
然后
chmod 0400 ~/.passwd-s3fs
s3fs bucket-name target-name
我花了两个小时才弄清楚这一点......希望我可以帮助任何人缩短这个时间。