我正试图按照此指令在AWS EC2实例上装载S3存储桶。我能够通过yum
安装依赖项,然后克隆git存储库,然后制作和安装s3fs
工具。
此外,我确保我的AWSACCESSKEYID
和AWSSECRETACCESSKEY
值位于多个位置(因为我无法使用该工具,搜索答案建议将文件放置在不同的位置(。
- ~/.passwd-s3fs
- /etc/.passwd-s3fs
- ~/.bash_profile
对于.passwd-s3fs
,我设置了如下权限。
chmod 600 ~/.passwd-s3fs
chmod 640 /etc/.passwd-s3fs
此外,.passwd-s3fs
文件具有以下格式建议的内容:AWSACCESSKEYID
:AWSSECRETACCESSKEY
。
我也已经注销并登录,只是为了确保更改生效。当我执行这个命令/usr/bin/s3fs bucketname /mnt
时,我会得到以下响应。
s3fs:MOUNTPOINT:/mnt权限被拒绝
当我使用sudo
(例如sudo /usr/bin/s3fs mybucket /mnt
(运行相同的命令时,我会收到以下消息。
s3fs:无法确定如何建立安全凭据
我在以下AMIami-0ff8a91507f77f867
上使用s3fs
v1.84(Amazon Linux AMI 2018.03.0.20180811 x86_64 HVM GP2(。在S3的AWS控制台中,我的bucket的名称不是mybucket
,而是同样简单的名称(我想知道命名是否有什么特别之处(。
此外,我的AWS访问和密钥对是从IAM web界面生成的,并放入下面定义的管理组(具有AdministratorAccess
策略(中。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
有什么想法吗?我错过了一步吗?
经过一番修改,我发现了以下帮助。
/usr/bin/s3fs mybucket /mnt -o passwd_file=.passwd-s3fs -o allow_other
请注意,我指定了.passwd-s3fs
文件的位置。还要注意的是,我允许其他人观看这座山。此外,我必须修改/etc/fuse.conf才能启用user_allow_other
。
# mount_max = 1000
user_allow_other
为了进行测试,我输入了touch /mnt/README.md
,然后观察了S3存储桶(web UI(中的文件。
我有点失望的是,这个问题没有得到更好的记录。我本以为默认的主位置或/etc
是工具查找.passwd-s3fs
文件的位置,但事实并非如此。此外,sudo
(正如我没有添加书签的链接所建议的那样(强制该工具在不存在的~/home/root
中查找。
对我来说,装载时IAM配置文件与ec2服务器的IAM配置文件不匹配。
EC2是用角色2发射的,而我是用发射的
/usr/local/bin/s3fs -o allow_other mybucket /mnt/s3fs/mybucketfolder -o iam_role='role1'
它没有通过任何错误编辑,但没有安装。
PS
我在ec2服务器上没有任何访问密钥或s3密码文件。