Skip to main content

对象存储访问权限

JuiceFS 的数据保存在用户提供的对象存储之中,因此需要为 JuiceFS 客户端配置相应的访问凭证 (accesskeysecretkey),以获取对应存储桶 (bucket) 的访问权限。具体配置方法视不同的云服务商而定。

配置方法

为 JuiceFS 配置对象存储访问权限的一般步骤如下:

  1. 创建对应存储桶的访问策略。
  2. 关联访问策略到访问主体(用户、角色或服务)。
  3. 获取访问主体的访问密钥(参见 如何获取对象存储的 API 密钥)。
  4. 使用访问密钥完成认证及挂载(参见 挂载)。

访问策略

对于常规的读写操作,JuiceFS 仅需要对象存储的 GetObject, PutObject, DeleteObjectHeadObject 权限。可以把访问权限限制在指定存储桶(默认为 juicefs-<fsname>)及指定前缀(固定使用文件系统名称)的资源范围内。

几种常见对象存储的访问策略示例如下。

阿里云 OSS

{
"Statement": [
{
"Action": [
"oss:DeleteObject",
"oss:GetObject",
"oss:HeadObject",
"oss:PutObject"
],
"Effect": "Allow",
"Resource": [
"acs:oss:*:*:juicefs-example/example/*"
]
}
],
"Version": "1"
}

腾讯云 COS

{
"Statement": [
{
"Effect": "Allow",
"Action": [
"cos:DeleteObject",
"cos:GetObject",
"cos:HeadObject",
"cos:PutObject"
],
"Resource": [
"qcs::cos:ap-guangzhou:uid/1250000000:juicefs-example-1250000000/example/*"
]
}
],
"Version": "2.0"
}

Amazon S3

{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:HeadObject",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::juicefs-example/example/*"
]
}
]
}

补充说明

  1. 由于 JuiceFS 客户端需要在后台进行碎片合并等操作,即便是只读方式的挂载点也需要获取以上所列的全部四种权限。
  2. 如果目标存储桶尚不存在,JuiceFS 将在第一次挂载时尝试创建,此时将需要 CreateBucket 权限。
  3. 如果需要导入文件,或者启用了复制功能,则还需要 ListObjects 权限。
  4. 某些老版本客户端(\<= 4.4.4)需要前缀 testing/* 的权限用于挂载时的自检过程。