S3FS не распознает идентификатор и секрет AWS в качестве переменных среды

Используя S3FS v1.83 (и v1.84), я получаю переменные среды из файла в сценарии, который я написал для использования команды s3fs. К сожалению, S3FS не видит ключ AWS и секретные переменные среды, даже если они находятся в среде. Я использую CentOS 7.5 с последними обновлениями пакетов.

Передача их в качестве переменных в командной строке работает, их экспорт тоже работает, но не извлекается файл.

BUCKET_NAME=[bucketname]
MOUNT_LOCATION=[mountlocation]
AWSACCESSKEYID=XXXXXXXXXX
AWSSECRETACCESSKEY=XXXXXXXXX                                                     

После получения файла в моем сценарии я просто вызываю s3fs с именем корзины и местом монтирования. Вот фрагмент сценария:

CONFIG_FILE_LOCATION=/root/.aws_backup_config
if [ -a $CONFIG_FILE_LOCATION ]; then
   source $CONFIG_FILE_LOCATION
else                                                                                                                                                                                                                                     
   echo "AWS Backup configuration does not exist at
$CONFIG_FILE_LOCATION"                                                                                                                                                              
   exit 1                                                                                                                                                                                                                           
fi                                                                                                                                                                                                                                       
echo "Mounting S3 bucket at $MOUNT_LOCATION"                                                                                                                                                                                                 
echo $AWSACCESSKEYID
echo $AWSSECRETACCESSKEY

#Mount the S3 Bucket at MOUNT_LOCATION
s3fs $BUCKET_NAME $MOUNT_LOCATION
S3FS_RC=$?                                                                                                                                                                                                                               
if [ $S3FS_RC != 0 ]; then
     echo "Failed to mount bucket! Something isn't configured correctly! Check server messages log."

В чем проблема?


person Christian Martinez    schedule 27.11.2018    source источник


Ответы (2)


s3fs поддерживает учетные данные AWSACCESSKEYID и AWSSECRETACCESSKEY, но регрессия предотвратила его использование. 1.85 будет включать исправление для этой проблемы.

person Andrew Gaul    schedule 09.01.2019

s3fs не использует ENV для распознавания учетных данных. Они должны храниться в:

эхо ACCESS_KEY_ID:SECRET_ACCESS_KEY > ${HOME}/.passwd-s3fs

chmod 600 ${HOME}/.passwd-s3fs

person yuriy polonskiy    schedule 11.12.2018
comment
Я использую это как обходной путь, но в соответствии с исходным кодом здесь: github.com/s3fs-fuse/s3fs-fuse/blob/master/src/s3fs.cpp#L4176 он должен получить его из среды. - person Christian Martinez; 12.12.2018
comment
Согласно ссылке, которую вы дали, s3fs пытается получить учетные данные от: AWSACCESSKEYID и AWSSECRETACCESSKEY. Все сервисы AWS (cli, boto3, работающие с AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY). Как я вижу, s3fs определяет свои собственные env vars, отличные от инструментов, связанных с AWS. - person yuriy polonskiy; 12.12.2018
comment
Это восходит к моему первоначальному вопросу: когда я указываю AWSSECRETKEYID и AWSSECRETACCESSKEY в качестве переменных среды, выбирая файл в сценарии, почему s3fs не может этого увидеть? - person Christian Martinez; 12.12.2018
comment
Структура файла AWSSECRETKEYID:AWSSECRETACCESSKEY, исходный файл не будет экспортировать переменные env. export AWSSECRETKEYID=$(cat ~/.passwd-s3fs | awk '{split($0,a,:); print a[1]}'), та же история для второй переменной, AWSSECRETACCESSKEY (изменить на '...print [2]') - person yuriy polonskiy; 13.12.2018