只需一步:创建oss bucket并控制访问权限

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 本文介绍怎样利用阿里云资源编排服务(ROS),一步创建阿里云资源(以OSS为例)、创建多个子帐号,并付给子帐号不同的资源访问权限。 资源编排的RAM功能介绍 阿里云资源访问控制服务(RAM),帮助您把不同的资源权限分配给特定的用户(比如员工、系统或应用程序),达到最小特权的安全实践。例如,授权某

本文介绍怎样利用阿里云资源编排服务(ROS),一步创建阿里云资源(以OSS为例)、创建多个子帐号,并付给子帐号不同的资源访问权限。

先试为快,一步创建 >>

资源编排的RAM功能介绍

阿里云资源访问控制服务(RAM),帮助您把不同的资源权限分配给特定的用户(比如员工、系统或应用程序),达到最小特权的安全实践。例如,授权某个子用户管理两台指定的ECS实例。

资源编排服务按照三种粒度进行访问控制:

  • ALIYUN::RAM::User

    • 给当前账号创建子账号,同时给子帐号指定授权策略
  • ALIYUN::RAM::Group

    • 创建用户组,如果给组指定授权策略,组中的每个用户都默认拥有了相同的访问权限
  • ALIYUN::RAM::Role

    • 创建角色,如果给角色设置授权策略,那么扮演此角色的用户即拥有了此访问权限

给子用户授权OSS访问的实践

应用场景:

在某款app的开发过程中,需要将部分数据存储到oss中。管理员创建ros-bucket,考虑到权限隔离的问题,开发小组中只有liSir拥有ros-bucket的读写权限,其他人只有只读权限,逻辑结构如下图:

screenshot

实践:

  • 创建Bucket(ros-bucket)

    • 作为被访问的资源
  • 创建用户组Group(devGroup)
  • 创建两个User

    • User(liSir)
    • User(developer), 加入用户组 devGroup
  • 创建两个Policy

    • fullAccessPolicy 拥有bucket的读写权限,并为组devGroup授权
    • readOnlyPolicy 拥有bucket的只读权限,并为User(liSir)授权

创建Bucket

ALIYUN::OSS::Bucket 参考模板定义AccessControl配置为private。只有当前账号可以对该bucket内的Object进行读写操作。

"Resources": {
    "MyBucket": {
      "Type": "ALIYUN::OSS::Bucket",
      "Properties": {
        "AccessControl": "private",
        "BucketName": "ros-bucket"
      }
    }
  }

创建Group

ALIYUN::RAM::Group 参考模板定义,这里定义组名为devGroup。

"Resources": {
    "devGroup": {
      "Type": "ALIYUN::RAM::Group",
      "Properties": {
        "GroupName": "devGroup"
      }
    }
  }

创建两个User

ALIYUN::RAM::User 参考模板定义,创建两个子帐号,并分别配置登录名和密码。然后把developer加入到组devGroup。

"Resources": {
    "liSir": {
      "Type": "ALIYUN::RAM::User"
      "Properties": {
        "UserName": "liSir",
        "LoginProfile": {
            "Password": "123456789"
        }
      }
    },
    "developer": {
      "Type": "ALIYUN::RAM::User",
      "Properties": {
        "UserName": "developer",
        "LoginProfile": {
            "Password": "123456789"
        },
        "Groups": [
          "Fn::Join": ["",
              [
                "Fn::GetAtt" : [ "devGroup", "GroupName"]
              ]
          ]
        ]
      }
    }
  }

创建两个Policy

ALIYUN::RAM::ManagedPolicy 参考模板定义。Policy语法定义参考

  • fullAccessPolicy

    • 允许oss类型资源的所有操作
    • 然后为User(liSir)授权
  • readOnlyPolicy

    • 允许对oss类型资源进行获取bucket列表操作。
    • 然后限制对MyBucket只能进行读取操作。
    • 最后为组(devGroup)授权
"Resources": {
    "fullAccessPolicy": {
      "Type": "ALIYUN::RAM::ManagedPolicy",
      "Properties": {
        "PolicyName": "fullAccessPolicy",
        "PolicyDocument" : {
            "Version": "1",
            "Statement" : [{
               "Effect" : "Allow",
               "Action" : [ "oss:*" ],
               "Resource" : ["acs:oss:*:*:*"]
            }]
         },
         "Users": [
             "Fn::Join": ["",
              [
                "Fn::GetAtt" : [ "liSir", "UserName"]
              ]
            ]
         ]       
      }
    },
    "readOnlyPolicy": {
      "Type": "ALIYUN::RAM::ManagedPolicy",
      "Properties": {
        "PolicyName": "readOnlyPolicy",
        "PolicyDocument": {
            "Version": "1",
            "Statement" : [{
              "Effect": "Allow",
              "Action": [
                "oss:ListBuckets"
              ],
              "Resource": [
                "acs:oss:*:*:*"
              ]
            },
            {
              "Effect": "Allow",
              "Action": [
                "oss:GetObject",
                "oss:ListObjects"
              ],
              "Resource": [
                "Fn::Join": ["",
                    [
                      "acs:oss:*:*:",
                      "Fn::GetAtt" : [ "MyBucket", "Name"]
                    ]
                ]
              ]
            }]
        },
        "Groups": [
            "Fn::Join": ["",
              [
                "Fn::GetAtt" : [ "devGroup", "GroupName"]
              ]
            ]
        ]
      }
    }
  }

验证(以控制台为例)

  • 用子帐号liSir登录oss控制台,可以对ros-bucket进行上传文件、删除文件等任何操作。例如,可以上传几个文件,如下图所示:

liSir

  • 用子帐号developer登录控制台并上传文件, 系统提示没有权限。如下图所示:

developer

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
弹性计算 安全 Java
使用 OSS 的 bucket 进行文件上传下载|学习笔记
快速学习使用 OSS 的 bucket 进行文件上传下载
1050 0
|
3月前
|
存储 搜索推荐 对象存储
OSS绑定自定义域名至Bucket默认域名
OSS绑定自定义域名至Bucket默认域名
42 1
|
2天前
|
存储 弹性计算 文件存储
对象存储OSS产品常见问题之OSS Bucket 创建好后更改存储类型如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
13 0
|
4月前
|
存储 对象存储
OSS Bucket 创建好后, 可以更改存储类型么?
OSS Bucket 创建好后, 可以更改存储类型么?
93 2
|
4月前
|
存储 对象存储 数据安全/隐私保护
这个错误提示表明你没有权限列出OSS的存储桶
这个错误提示表明你没有权限列出OSS的存储桶
76 1
|
4月前
|
Serverless 对象存储 数据安全/隐私保护
在阿里云函数计算(FC)中使用云对象存储服务(OSS)时,需要为FC实例授予对OSS资源的访问权限
在阿里云函数计算(FC)中使用云对象存储服务(OSS)时,需要为FC实例授予对OSS资源的访问权限
370 1
|
存储 运维 监控
洞悉海量Bucket资产--带你玩转CloudLens之OSS
日志服务联合阿里云OSS推出CloudLens for OSS,支持Bucket粒度的统一管理视图,支持资源用量、访问分析、异常检测、安全分析等可视化分析能力,提供场景化运维管理,实现Bucket资产的可观测性。
184 0
|
API 开发工具 对象存储
对象存储 OSS 如何创建 bucket|学习笔记
快速学习对象存储 OSS 如何创建 bucket
2539 0
|
1月前
|
Java API 开发工具
如何用阿里云 oss 下载文件
阿里云对象存储服务(OSS)提供了多种方式下载文件,以下讲解下各种方式的下载方法
756 1