只需一步:创建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,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
17天前
|
敏捷开发 测试技术 持续交付
云效产品使用常见问题之账号授权就能对当前主账号下所有 OSS 进行读写权限如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
存储 搜索推荐 对象存储
OSS绑定自定义域名至Bucket默认域名
OSS绑定自定义域名至Bucket默认域名
51 1
|
21天前
|
存储 域名解析 安全
对象存储OSS产品常见问题之控制台概览显示的流量信息和bucket的不一致如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
36 0
|
21天前
|
存储 弹性计算 小程序
对象存储OSS产品常见问题之Bucket授权策略中授权用户的id如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
36 0
|
22天前
|
安全 Go 开发工具
对象存储OSS产品常见问题之go语言SDK client 和 bucket 并发安全如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
46 9
|
22天前
|
存储 弹性计算 文件存储
对象存储OSS产品常见问题之OSS Bucket 创建好后更改存储类型如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
42 0
|
2月前
|
存储 弹性计算 安全
oss配置Bucket属性
oss配置Bucket属性
77 1
|
2月前
|
存储 API 开发工具
oss创建bucket
oss创建bucket
68 1
|
9天前
|
分布式计算 大数据 MaxCompute
MaxCompute产品使用合集之使用pyodps读取OSS(阿里云对象存储)中的文件的步骤是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
2月前
|
机器学习/深度学习 存储 分布式计算
机器学习PAI常见问题之DLC的数据写入到另外一个阿里云主账号的OSS中如何解决
PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。