Я пытаюсь установить ведро S3 на экземпляр AWS EC2 после этого инструкция. Мне удалось установить зависимости через yum, затем клонировать репозиторий git, а затем создать и установить инструмент s3fs.
Кроме того, я убедился, что мои значения AWSACCESSKEYID и AWSSECRETACCESSKEY находятся в нескольких местах (потому что я не мог заставить инструмент работать, и поиск ответа предлагал разместить файл в разных местах).
Для .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.
Я использую s3fs v1.84 на следующем AMI ami-0ff8a91507f77f867 (Amazon Linux AMI 2018.03.0.20180811 x86_64 HVM GP2). В консоли AWS для S3 мое ведро называется НЕ mybucket, а чем-то столь же простым (мне интересно, есть ли что-то особенное, что я должен сделать с именованием).
Кроме того, моя пара ключей доступа к AWS и секретного ключа создается из веб-интерфейса IAM и помещается в группу администратора (имеющую политику 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 (веб-интерфейс).
Я немного разочарован тем, что эта проблема не документирована лучше. Я ожидал, что домашнее местоположение по умолчанию или /etc будет там, где инструмент будет искать файл .passwd-s3fs, но это не так. Кроме того, sudo (как указано в ссылке, которую я не добавил в закладки) заставляет инструмент искать в ~/home/root, которого не существует.
Для меня это было несоответствие профиля IAM при монтировании и профиля IAM сервера ec2.
EC2 был запущен с роль2, и я работал с
/usr/local/bin/s3fs -o allow_other mybucket /mnt/s3fs/mybucketfolder -o iam_role='role1'
который не из-за какой-либо ошибки, но не смонтирован.
PS
У меня нет ключей доступа или файла паролей s3 на сервере ec2.
Вы должны добавить подкаталог в
/mnt. Что-то вроде/mnt/my-bucket. И используйте это как точку монтирования. Причина/mntиногда также используется для монтирования других устройств.