开发者社区 问答 正文

ossftp之如何结合RAM实现文件共享?



简介


本文主要介绍如何结合RAM服务,共享用户bucket中的文件/文件夹, 让其他用户只读,而bucket的owner可以修改。 思路就是: 开通RAM -> 新建只读授权策略 -> 创建子用户 -> 向子用户授权  ->  FTP登录验证


获取账户ID


获取你的account ID。具体参考下图步骤。

开通RAM


访问控制(Resource Access Management,RAM)是一个稳定可靠的集中式访问控制服务。您可以通过定制策略,产生一个共享读的账户,使得用户可以用此账户登录FTP 工具并 读取您的文件。
RAM的位置请参考下图。

新建授权策略


开通RAM之后,进入RAM控制台,点击左侧的授权管理,按下图步骤依次操作来创建新的授权策略。
填写授权策略时,如下图所示。
其中第1步和第2步自定义填写即可,第3步的策略内容才是最关键的地方。 {
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "oss:GetObject",
        "oss:HeadObject"
      ],
      "Resource": [
        "acs:oss:*:****************:test-hz-john-001/*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "oss:ListObjects",
        "oss:GetBucketAcl",
        "oss:GetBucketLocation"
      ],
      "Resource": [
        "acs:oss:*:****************:test-hz-john-001"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "oss:ListBuckets"
      ],
      "Resource": [
        "acs:oss:*:****************:*"
      ],
      "Effect": "Allow"
    }
  ]
}


将上面的****************替换为你自己的账户ID,test-hz-john-001替换为你自己的bucket名,然后整体拷贝到策略内容里面,最后点击[backcolor=transparent]新建授权策略即可。

创建用户


上面的授权策略生命了一种只读策略,下面新建一个用户并给予他这种策略。先是创建用户,步骤如下:


[backcolor=transparent]注意保存新用户的access_key。


给用户授权


下面将之前创建的策略授权给该用户。

用子账户登录


用子账户的access_key和之前授权策略中的bucket登录,即可下载文件夹或文件,但上传会失败。

展开
收起
青衫无名 2017-10-23 13:44:39 1843 分享 版权
阿里云 AI 助理回答

要实现通过阿里云的RAM服务共享Bucket中的文件/文件夹,让其他用户拥有只读权限,同时保证Bucket所有者可以修改内容,您可以遵循以下详细步骤操作:

1. 获取账户ID

  • 登录阿里云管理控制台,找到并记录您的Account ID,这在后续配置策略时会用到。

2. 开通与访问RAM服务

  • 访问阿里云RAM控制台,准备创建角色和策略以实现资源访问控制。

3. 创建只读授权策略

  • 在RAM控制台,导航至权限管理 > 权限策略,点击创建权限策略
  • 策略名称自定义,例如ReadOnlyAccessForOSSBucket
  • 策略内容应包含允许的只读操作,示例如下:
    {
    "Version": "1",
    "Statement": [
      {
        "Action": ["oss:GetObject", "oss:HeadObject"],
        "Resource": ["acs:oss:*:<YOUR_ACCOUNT_ID>:<YOUR_BUCKET_NAME>/*"],
        "Effect": "Allow"
      },
      {
        "Action": ["oss:ListObjects", "oss:GetBucketAcl", "oss:GetBucketLocation"],
        "Resource": ["acs:oss:*:<YOUR_ACCOUNT_ID>:<YOUR_BUCKET_NAME>"],
        "Effect": "Allow"
      },
      {
        "Action": ["oss:ListBuckets"],
        "Resource": ["acs:oss:*:<YOUR_ACCOUNT_ID>:*"],
        "Effect": "Allow"
      }
    ]
    }
    
  • <YOUR_ACCOUNT_ID><YOUR_BUCKET_NAME>替换为实际值后,保存策略。

4. 创建RAM用户

  • 转至身份管理 > 用户,点击创建用户
  • 输入用户登录名、显示名,并根据需要配置访问方式。
  • 完成创建后,请务必保存新用户的AccessKey ID和AccessKey Secret,这些是子用户登录和认证所需的关键信息。

5. 为用户分配权限

  • 回到创建的RAM用户页面,选择该用户并点击添加权限
  • 从已创建的策略中选择刚才定制的ReadOnlyAccessForOSSBucket策略,赋予用户只读权限。
  • 确认授权,完成绑定过程。

6. 使用子账户验证权限

  • 使用生成的子用户AccessKey和Bucket信息,通过支持OSS的FTP工具或OSS客户端进行登录尝试。
  • 子用户应能成功下载Bucket内的文件或文件夹,但任何上传或修改操作应被拒绝,符合只读权限设定。

重要提示: - 确保遵循最小权限原则,仅授予执行任务所需的最小子集权限。 - 定期审查RAM用户的权限分配,确保安全合规。 - 当使用子账户登录FTP或其他客户端时,注意网络环境和IP限制可能影响访问(如示例策略中的源IP条件)。

通过上述步骤,您即可有效地利用RAM服务来分享Bucket资源,实现细粒度的访问控制。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答