使用 s3fs 安装 S3 存储桶时出现问题

Problems mounting a S3 bucket with s3fs

我正在尝试按照此 instruction 在 AWS EC2 实例上安装 S3 存储桶。我能够通过 yum 安装依赖项,然后克隆 git 存储库,然后制作并安装 s3fs 工具。

此外,我确保我的 AWSACCESSKEYIDAWSSECRETACCESSKEY 值位于多个位置(因为我无法使该工具工作并且搜索答案建议将文件放在不同的位置)。

对于.passwd-s3fs我设置了如下权限。

chmod 600 ~/.passwd-s3fs
chmod 640 /etc/.passwd-s3fs

此外,.passwd-s3fs 文件包含以下格式建议的内容:AWSACCESSKEYID:AWSSECRETACCESSKEY.

我也注销并重新登录以确保更改生效。当我执行此命令 /usr/bin/s3fs bucketname /mnt 时,我得到以下响应。

s3fs: MOUNTPOINT: /mnt permission denied.

当我 运行 使用 sudo 相同的命令时,例如sudo /usr/bin/s3fs mybucket /mnt,我收到以下消息。

s3fs: could not determine how to establish security credentials.

我在以下 AMI ami-0ff8a91507f77f867(Amazon Linux AMI 2018.03.0.20180811 x86_64 HVM GP2)上使用 s3fs v1.84。在 S3 的 AWS 控制台中,我的存储桶名称不是 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(如 link 所建议,我没有添加书签)强制该工具查找 ~/home/root,它不存在。

对我来说,安装时 IAM 配置文件与 ec2 服务器的 IAM 配置文件不匹配。

EC2 是用 role2 启动的,我正在用

/usr/local/bin/s3fs -o allow_other mybucket /mnt/s3fs/mybucketfolder -o iam_role='role1'

没有通过任何错误但没有安装。

PS

我在 ec2 服务器上没有任何访问密钥或 s3 密码文件。