阿里云oss权限控制以及alist网盘部署
阿里云oss权限控制以及alist网盘部署
创建自定义权限策略的目的是使用户只能访问部分bucket或拥有bucket的部分权限
在同时使用阿里云oss对象存储及alist网盘服务时要注意所使用的accesskey所属用户对该bucket是否有权限
1.2创建用户后若离开该界面,将无法再次查看该用户的accesskey,创建用户后需要保存该信息后再离开该页面
1、阿里云oss bucket访问权限控制:
登录阿里云阿里云-计算,为了无法计算的价值 (aliyun.com)
1.1、创建授权策略
点击控制台
点击oss对象存储
点击右上角头像——访问控制
授权策略——脚本编辑,按照格式填写:以下模板是授予bucket名称为test11512的存储桶的全部权限的模板
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:ListBuckets",
"oss:GetBucketStat",
"oss:GetBucketInfo",
"oss:GetBucketTagging",
"oss:GetBucketLifecycle",
"oss:GetBucketWorm",
"oss:GetBucketVersioning",
"oss:GetBucketAcl"
],
"Resource": "acs:oss:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"oss:ListObjects",
"oss:GetBucketAcl"
],
"Resource": "acs:oss:*:*:test11512" //此处填写授权的bucket名称
},
{
"Effect": "Allow",
"Action": [
"oss:GetObject",
"oss:GetObjectAcl"
],
"Resource": "acs:oss:*:*:test11512/*" //此处填写授权的bucket名称
}
]
}
1.2、创建用户并授权
创建完成后点击用户——创建用户
创建完成后保存Accesskey ID及AccessKey Secret——重点,后续配置alist存储策略及使用ossutil需要使用
再次点击用户——添加权限
2.alist网盘
2.1 网盘部署
部署方式:docker-compose
安装docker及docker-compose
创建文件docker-compose.yml
version: '3.3'
services:
alist:
restart: always
volumes:
- '/etc/alist:/opt/alist/data'
ports:
- '5244:5244'
environment:
- PUID=0
- PGID=0
- UMASK=022
container_name: alist
image: 'xhofe/alist:latest'
在同目录里执行docker-compose up -d
创建成功后设置密码
ps:openssl rand -base64 6生成八位随机密码
docker exec -it alist ./alist admin set NEW_PASSWORD
设置成功后使用ip:端口访问网盘并登录
2.2 存储管理:
添加阿里云oss对象存储
挂载路径:即主页显示的存储名称
存储桶:即oss对象存储里bucket名称
Endpoint:阿里云控制台——oss对象存储——bucket——概览
访问密钥Id:AccessKeyId ——见1.2
安全访问密钥:AccessKeySecret
点击添加
以下是示例:
管理员可以设置多个存储,如下
创建用户:
若是需要用户只能查看其中的某一个存储,需要设置基本路径
注意:此处的权限控制仅指在alist网盘中对存储的权限,与阿里云oss中访问控制权限无关
设置后用户使用账号密码登录,只能查看到该存储内的数据,如下
三、服务器配置ossutil
非root用户安装:
下载:
wget https://gosspublic.alicdn.com/ossutil/1.7.16/ossutil-v1.7.16-linux-amd64.zip
解压:
unzip ossutil-v1.7.16-linux-amd64.zip
配置:
cd ossutil-v1.7.16-linux-amd64
ossutil config
根据提示配置accesskey等,其中endpoint在bucket概览中获取,若服务器为阿里云服务器,并且与oss对象存储在同一区域,可以配置内网endpoint
查看文件(只能查看配置的accesskey有访问权限的bucket,若该accesskey并不拥有该oss所有bucket的读写权限,执行ossutil ls会报错,属于正常现象,需要使用ossutil ls oss://bucket获取文件列表):
ossutil ls oss://test11512
上传文件:
./ossutil64 cp local_file oss://test11512
下载文件
./ossutil64 cp oss://test11512/file localfolder/