利用S3fs在Amazon EC2 Linux例項上掛載S3儲存桶
阿新 • • 發佈:2020-08-14
一、準備!!!
1、使用擁有足夠許可權的IAM賬號登入AWS控制檯
2、建立S3儲存桶,給儲存桶命名如“my-bucket”(如果使用已有儲存桶,本步驟可略過)
3、有該S3儲存桶訪問許可權的 IAM 使用者,併為該IAM使用者建立訪問金鑰
- 關於如何建立IAM使用者,請參見:http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_users_create.html#id_users_create_console
- 關於如何為IAM使用者建立訪問金鑰,請參見:http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_credentials_access-keys.html
- 關於如何為IAM使用者設定許可權策略,請參見:http://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/access_policies_create.html
4、建立並啟動Amazon EC2 Linux例項
二、安裝s3fs-fuce工具
1、安裝epel源
[root@ip-172-31-23-148 ~]#amazon-linux-extras install epel
2、安裝s3fs-fuce工具
[root@ip-172-31-23-148 ~]#yum install s3fs-fuse
3、檢測是否安裝s3fs
[root@ip-172-31-23-148 ~]#which s3fs /usr/local/bin/s3fs
三、建立IAM使用者訪問金鑰檔案
1、建立IAM使用者訪問金鑰檔案
- IAM使用者訪問金鑰內容可以寫入當前使用者預設金鑰檔案比如“/home/ec2-user/.password”或者使用者自己建立的檔案(也可以不是隱藏檔案)
- 命令格式:echo [IAM使用者訪問金鑰ID]:[IAM使用者訪問金鑰] >[金鑰檔名]
- 命令舉例:下面的例子將在當前使用者預設路徑建立金鑰檔案:
- echo AKIAIOEO4E2VOHLxxxxx:2LXBboddEpRLmWl48i3+b4ziwPL3bJ4vxxxxxxxx > /home/ec2-user/.password
2、設定金鑰檔案只能夠被當前使用者訪問
- 命令格式:chmod 600 [金鑰檔名]
- 命令舉例:下面的例子將設定金鑰檔案只能被當前使用者訪問(也可以是root使用者,但是一般用普通使用者)
- chmod 600 /home/ec2-user/.password
3、如果是在root使用者下建立的password檔案,那麼該檔案的所屬是root使用者,手動掛載就無法使用普通使用者去掛載,所以需改變屬主屬組
- 命令格式:chown ec2-user.ec2-user [祕鑰檔名]
- 命令舉例:chown ec2-user.ec2-user /home/ec2-user/.password
四、手動掛載s3儲存桶
1、掛載儲存桶使用的命令是s3fs
2、s3fs的命令格式是:
- s3fs [S3儲存桶名] [本地目錄名] [OPTION]
- option是可選項,格式是 –o <option_name>=<option_value>,常用的options有:
- passwd_file= :指定掛載的金鑰檔案
- url= :設定訪問s3的url http://s3.amazonaws.com
- endpoint :設定s3儲存桶的endpoint us-east-1
- allow_other :設定allow_other允許所有使用者訪問掛載點目錄,設定這個選項需要在 /etc/fuse.conf 檔案新增user_allow_other選項
3、手手動掛載AWS中國寧夏區域S3儲存桶
- 命令格式:s3fs [S3儲存桶名] [本地目錄名] -o passwd_file=[金鑰檔名] -o url=http://s3.cn-northwest-1.amazonaws.com.cn -o endpoint=cn-northwest-1
- 北京區域:-o url=http://s3.cn-north-1.amazonaws.com.cn -o endpoint=cn-north-1
- 寧夏區域:-o url=http://s3.cn-northwest-1.amazonaws.com.cn -o endpoint=cn-northwest-1
- 命令舉例:下面的例子將名為“my-bucket”的寧夏區域S3儲存桶掛載到本地目錄“/home/ec2-user/s3mnt”
- s3fs my-bucket /home/ec2-user/s3mnt -o passwd_file=/home/ec2-user/.password -o url=http://s3.cn-northwest-1.amazonaws.com.cn -o endpoint=cn-northwest-1
4、手動掛載AWS海外區域S3儲存桶
- 命令格式:s3fs [S3儲存桶名] [本地目錄名] -o passwd_file=[金鑰檔名] -o endpoint=[區域名]
- 命令舉例:下面的例子將名為“my-bucket”的新加坡區域S3儲存桶掛載到指定的本地目錄“/home/ec2-user/s3mnt”
- s3fs my-bucket /home/ec2-user/s3mnt -o passwd_file=/home/ec2-user/.password -o endpoint=ap-northeast-1
5、檢視掛載結果
[root@ip-172-31-23-148 ~]# df -h 檔案系統 容量 已用 可用 已用% 掛載點 devtmpfs 488M 56K 488M 1% /dev tmpfs 498M 0 498M 0% /dev/shm /dev/xvda1 7.8G 1.2G 6.6G 15% / s3fs 256T 0 256T 0% /home/ec2-user/s3mnt
6、解除安裝掛載的s3儲存桶
[root@ip-172-31-23-148 ~]# umount /home/ec2-user/s3mnt [root@ip-172-31-23-148 ~]# df -h 檔案系統 容量 已用 可用 已用% 掛載點 devtmpfs 488M 56K 488M 1% /dev tmpfs 498M 0 498M 0% /dev/shm /dev/xvda1 7.8G 1.2G 6.6G 15% /