首页 > 其他分享 >阿里云1+X云计算开发与运维实战——云存储访问的授权管理

阿里云1+X云计算开发与运维实战——云存储访问的授权管理

时间:2023-04-23 15:39:29浏览次数:33  
标签:实战 存储 运维 OSS RAM bucket 用户 点击 授权

实验概述

        现代企业中,不同的岗位拥有不同的权限。比如会计对能够查看、修改公司的账务;人事可以调动、编写公司员工的个人档案;总经理管理公司的所有事务......在网络应用中考虑到安全和管理方面的需求,我们也会为用户授予相应的权限,管理网络资产。     

        本实验使用访问控制RAM结合云存储OSS客户端,通过配置自定义授权策略,实现不同子用户访问云存储OSS的权限管理。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储

背景知识

  传统的自建服务器存储具有容易受限于硬件可靠性,易出问题,一旦出现磁盘坏道,容易出现不可逆转的数据丢失 ;存储受硬盘容量限制,需人工扩容;需要额外采购,单独部署等缺点。运维难度和部署成本居高不下。为了解决这些难题,阿里云引入了对象存储服务。  

对象存储服务 (Object Storage Service,以下简称OSS),是阿里云对外提供的海量,安全,低成本,高可靠的云存储服务。用户可以通过调用API,在任何应用,任何时间,任何地点上传下载数据。也可以通过Web控制台对数据进行简单的管理。OSS适合存放任意文件类型,适合各种网站,开发企业和开发者使用。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_客户端_02

    在本实验中,OSS服务的相关术语如下:

  • Bucket,作为OSS的存储空间,是存储文件(object)的容器;
  • Region,表示OSS的数据中心所在区域,物理位置。一般来说,距离用户更近的Region访问速度更快         
           

        企业A的某个项目(Project-X)上云,购买了多种云资源(如:云服务器ECS、云存储服务OSS等)。项目里有多个员工需要操作这些云资源,比如有的负责购买,有的负责运维,还有的负责线上应用。由于每个员工的工作职责不一样,需要的权限也不一样。出于安全或信任的考虑,A不希望将云账号密钥直接透露给员工,而希望能给员工创建相应的用户账号,授予相应的管理权限。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_03

        企业A开发了一款移动App,并购买了OSS服务。移动App需要上传数据到OSS(或从OSS下载数据),A不希望所有App都通过AppServer来进行数据中转,而希望让App能直连OSS上传/下载数据。由于移动App运行在用户自己的终端设备上,这些设备并不受A的控制。出于安全考虑,A不能将访问密钥保存到移动App中。A希望将安全风险控制到最小,比如,每个移动App直连OSS时都必须使用最小权限的访问令牌,而且访问时效也要很短(比如30分钟)。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_客户端_04

        账号A和账号B分别代表不同的企业。A购买了多种云资源(如:云服务器ECS、云存储服务OSS等)来开展业务。A希望能专注于业务系统,而将云资源运维监控管理等任务委托(或授权)给企业B。此外,B还可以进一步将A的资源访问权限分配给B的某一个或多个员工。B可以精细控制其员工对A所控制的资源的操作权限。如果A和B的这种代运维合同终止,A随时可以撤销对B的授权。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_05

RAM(Resource Access Management,资源访问管理)是阿里云为客户提供的身份管理与访问控制服务。使用RAM,企业用户可以创建、管理用户账号(比如:员工、系统或应用程序),并可以控制这些用户账号,对企业用户名下资源具有操作权限。RAM允许一个云账号下创建并管理多个用户身份,并允许给单个身份或一组身份分配不同的授权策略,从而实现不同用户拥有不同的云资源访问权限。

本实验中涉及到关于RAM的基本概念:

  • 云账户(主账户),云账户是阿里云资源归属、资源使用计量计费的基本主体。当用户开始使用阿里云服务时,首先需要注册一个云账户。云账户为其名下所有的资源付费,并对其名下所有资源拥有完全权限。从权限管理的角度,云账户就是操作系统的root或Administrator,因此,我们也称其为“根账户”或“主账户”。
  • RAM用户,RAM允许在一个云账户下创建多个RAM用户。RAM用户属于云账户,RAM用户不拥有资源,只能在所属云账户的空间下可见,而不是独立的云账户。RAM用户必须在获得云账户的授权后,才能登录控制台或使用API操作云账户下的资源。
  • 身份凭证-访问密钥(AccessKey),用户可以通过访问密钥构造一个API请求(或者使用云服务SDK)来操作资源。
  • 授权策略,描述权限集的一种简单语言规范。


实验目标

完成此实验后,可以掌握的能力有:

1. 了解云存储访问的不同管理权限。

2. 使用访问控制RAM为云存储的子用户授予权限。

实验实施

2.1 搭建云存储访问授权管理的环境

实验资源:

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_06

本小节的主要内容为:在OSS中创建bucket,搭建云存储访问授权管理的环境

在阿里云上可以通过不同方式对云存储OSS进行管理,包含阿里云OSS管理控制台、OSS API以及第三方管理客户端三种方式。本实验使用官方支持的客户端来管理云存储OSS,并结合访问控制(以下简称RAM)配置和管理不同子账户访问OSS服务的使用权限。

1.    首先在ECS中安装好OSS客户端,然后远程登录到 ECS 服务器。登录到 Windows系统 ECS 服务器后,双击桌面的 OSS 图标,进入 OSS 客户端。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_客户端_07

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_08

2.    在如下图界面中,AccessKey ID 和 AccessKey Secret 输入 实验资源 提供的的 AK ID 和 AK Secret 。勾选选项 本机是ECS云主机 , 地域 选择 实验资源 所在 地域 。完成后,点击 登录 。

说明:因为本机是 ECS 云主机,所以勾选选项。若本机不是云主机则无需勾选 本机是云主机 。配置中的 地域 信息是指:OSS 服务的数据中心所在地域。选择本机是ECS云主机,且选择地域与实验资源提供地域相同,则ECS与OSS之间可以通过内网传输,文件的传输速度最快。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_09

3.    在安全码的设置页面中,选择 跳过设置 。

说明:在真实环境中,建议用户设置复杂的安全密码,避免被黑客恶意,导致数据信息流失。用户在之后的登录中,无需使用 AccessKey ID 和 AccessKey Secret ,可以通过安全密码直接登录。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_10

4.    当前 OSS服务数据中心的 地域 与 实验资源 提供的 地域 相同。执行以下步骤,开始创建一个新的 bucket 。

1)点击左上角的 新建 。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_11

2)弹出的对话框中,输入 Bucket名称 ; 读写权限 设为 公共读写 。完成后,点击 确定 。

注意:bucket 是全局唯一。因此,若创建 bucket 失败,请尝试自定义新的 bucket 名。bucket命名规则:只能包含小写字母,数字和短横线;必须以小写字母或数字开头和结尾;长度限制在 3-63 之间。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_12

3)创建成功,在左侧列表中看到新建的 bucket 。此时,该 bucket 下没有任何文件。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_13

5.    接下来,执行以下步骤,将 oss_icons 上传到新建 bucket 中。

说明:OSS客户端,不仅可以上传单个文件到 bucket 中,也可以上传文件夹到 bucket 中,用户只需选择本地要上传的文件夹,就可以将文件夹以及此文件夹下的所有文件上传到指定的 OSS bucket 中。

1)点击顶层栏 上传 ,弹出选择上传文件所在路径的对话框。

2)进入 计算机:\C:\Slab052\上传文件 目录。

3)选择 oss_icons ,然后点击 选择 ,

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_客户端_14

4)在主界面的底部的 上传队列 中,查看上传文件的大小和进度。若文件成功上传到 bucket ,在主界面中,可以查看到已上传的文件 oss_icons 的文件大小以及文件的创建时间。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_客户端_15

 2.2 使用RAM设置云存储访问权限

本小节主要介绍:使用RAM授权功能,为创建的子用户授予相应访问策略

  创建两个RAM用户

1.   OSS客户端,执行以下步骤,创建一个用户 Tony

1)点击顶层栏中 RAM授权 ,弹出RAM授权的对话框。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_客户端_16

2)在弹出对话框中,选择 用户授权 ,当前阿里云账号中没有任何用户。点击 创建用户 ,开始创建一个云账户下的子账户。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_17

3)进入创建用户的页面后,输入用户名为 Tony ,完成后,点击 确定 。弹出弹框提示 用户创建成功 ,再次点击 确定 。

说明:请注意用户名命名规则,此字段为必填字段。其余字段可不填写,但是在真实的生产环境中,建议用户填写其余字段,可更好的记录 RAM子账户的信息。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_18

4)返回用户授权页面,查看到当前新建的用户 Tony 。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_客户端_19

2.    同样地,我们点击 创建用户 ,输入用户名 Jack ,然后点击 确定 。弹出提示对话框提示 用户创建成功 ,点击 确定 。再次创建名为 Jack 的用户。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_20

3.    返回用户授权页面,有两名用户 Tony 和 Jack 。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_客户端_21

  创建两个授权策略

4.    回到 OSS客户端,在 RAM授权 对话框中,点击 授权策略 ,查看当前无任何自定义策略。点击 创建授权策略 ,创建一条新的自定义策略。

说明:OSS客户端目前支持自定义策略,以及部分阿里云系统策略。因此,在真实的生产环境中,用户更多会根据自身的业务需求,创建相应的自定义策略。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_22

5.     在弹出的 创建授权策略 页面中,输入如下信息:

1)策略名称:ossReadOnly;若自定义,请注意命名规则。

2)策略规则: 使用如下策略规则

说明:被授予本策略的用户对云账号下的资源只有读取权限,无法进行别的操作。

{

  "Statement": [

    {

      "Action": [

        "oss:Get*",

        "oss:List*"

      ],

      "Effect": "Allow",

      "Resource": "*"

    }

  ],

  "Version": "1"

}

 3)策略描述:oss只读策略

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_23

6.    完成后,点击 确定 ,弹出弹框提示 授权策略创建成功 ,点击 确定 。

在 授权策略 界面,可以查看到新建的 ossReadOnly 策略。点击 创建授权策略 ,再次创建一条策略。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_24

7.    在弹出的 创建授权策略 页面中,输入如下信息:

1)策略名称:ossFullAccess;若自定义,请注意命名规则。

2)策略规则: 使用如下策略规则

说明:被授予该策略的用户对云账号下的资源拥有所有权限,可以读取、修改、删除等

{
  "Statement": [
    {
      "Action": "oss:*",
      "Effect": "Allow",
      "Resource": "*"
    }
  ],
  "Version": "1"
}

 3)策略描述:oss读写策略。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_25

8.    完成后,点击 确定 ,弹出弹框提示 授权策略创建成功 ,点击 确定 。

9.    页面有两条授权策略,分别为 只读策略 和 读写策略 。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_客户端_26

  为两个RAM用户分别授予授权策略

10.    点击 用户授权 ,执行以下步骤,为账户 Tony 授予 oss只读策略。

1)在 用户授权 列表中点击用户 Tony 右侧操作栏下的 授权 ,进入用户授权界面。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_27

2)跳转到 授权策略 页面,当前显示没有数据,也就是说 Tony 当前无任何权限,点击左下角的 添加授权 ,为 Tony 添加权限

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_28

3)点击 ossReadOnly 右侧的 授权 操作,弹出对话框 授权成功 。点击 确定 。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_客户端_29

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_客户端_30

4)ossReadOnly 策略右侧的操作栏中显示为 已授权 。证明已授权 oss只读策略 给Tony用户。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_客户端_31

12. 执行以下步骤,为用户 Jack 授予 oss读写策略 。

1)点击右下角的 取消 按钮。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_32

2)入 用户授权 页面,点击 Jack 右侧的 授权 。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_33

3)点击左下角的 添加授权 

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_34

4)点击策略 ossFullAccess 右侧的 授权 操作,弹框提示 授权成功 ,点击 确定 。 

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_35

5)此时 ossFullAccess 策略右侧的操作已变为 已授权 。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_36

13.    至此,成功创建两个RAM用户 Tony 和 Jack,并授权 Jack oss只读策略 ,给予 tony oss读写策略 。下一小节,验证授予的权限是否有效。

2.3 查看授权结果

本小节主要介绍:验证为两个RAM用户TonyJack授予的访问权限是否有效。

  获取两个RAM用户的AccessKey

1.    之后的操作中,用户 Tony 和 Jack 将会各自登录 OSS客户端,这需要用到它们的的 AccessKey 信息。但是,默认情况下,新建RAM子账户无 AccessKeyId 和 AccessKeySecret 信息,因此,需要通过 OSS客户端的 RAM 功能为它们创建一个新的AccessKey。 

2.    执行以下步骤,获取用户 Tony 的 AccessKey 信息。

1)如下图 授权策略 页面中,点击右下角处 取消 按钮 。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_37

2)用户授权 页面点击 Tony 右侧的 管理 。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_客户端_38

3)管理界面中,点击对话框顶部 AccessKey管理 ,进入 AccessKey 的管理页面,页面显示暂无数据。点击左下角的 创建AccessKey ,为用户新建一个AccessKey。弹出对话框 创建成功 ,点击 确定 。

注意:默认一个阿里云账户最多为每个子账户创建 2 个 AccessKey 信息。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_客户端_39

4)此时,页面显示 AccessKeyId 和 Secret

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_40

5)点击 Secret ,显示 AccessKeySecret 。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_41

3.    执行以下步骤,在新建的记事本中,存储Tony的 AccessKeyId 以及 AccessKeySecret 。

注意:请不要关闭此记事本,后续的操作将会使用Tony的AccessKey信息登录OSS客户端。

4.    同样地,执行以下步骤,获取 Jack 的 AccessKey 信息。

1)点击右下角处的 取消 按钮。

2)点击用户 Jack 右侧的 管理 。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_客户端_42

3)AccessKey管理 页面点击 创建AccessKey 。提示 创建成功,点击 确定 。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_43

 


4)同样得到 Jack 的 AccessKeyId 和 AccessKeySecret 后,复制到记事本中,之后我们会用到。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_44



  验证只读策略

4.    完成如上操作后,退出 OSS客户端,然后双击图标,重新打开它。在 OSS客户端的登陆界面中,输入如下信息,使用 Tony 用户访问 OSS服务。完成后,点击 登录 。

1)Access KeyID : Tony 用户的 AccessKeyId ;可从刚刚新建的记事本中拷贝。

2)Access KeySecret : Tony 用户的 AccessKeySecret ;可从刚刚新建的记事本中拷贝。 

3)勾选 本机是ECS云主机 ;

4)地域:选择与 OSS客户端 ECS 实例相同地域。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_45

5.    点击 跳过设置 ,跳过安全密码设置。进入OSS客户端主界面。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_46

6.    左侧列表中看到已创建的bucket sl052-oss-bucket-32509 ,主页面有该 bucket 中 上传的文件 oss_icons 。说明账号 Tony 下可以读主账号里的bucket。在左侧栏中,点击 新建 ,弹框中输入bucket 名称,;读写权限为 公共读 。完成后,点击 确定 。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_47

弹出对话框提示 拒绝访问 。这是因为在 RAM授权 时,只为 Tony 授予了 oss只读策略 ,它不具有创建新的 bucket 的权限。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_客户端_48

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_49

  验证读写策略

7.    我们再次退出客户端,然后重新打开。在登陆界面中,输入如下信息,使用 Jack 用户访问 OSS服务。

1)Access KeyID : Jack 用户的 AccessKeyId ;可从刚刚新建的记事本中拷贝。

2)Access KeySecret : Jack 用户的 AccessKeySecret ;可从刚刚新建的记事本中拷贝。 

3)勾选 本机是ECS云主机 ;

4)地域:选择与 OSS客户端 ECS 实例相同地域。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_50

8.    点击 跳过设置 ,跳过安全密码设置。进入OSS客户端主界面。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_51

9.    左侧列表看到已创建的 bucket sl052-oss-bucket-32509 和 bucket 中的文件 oss_icons 。在OSS客户端界面左侧栏中,点击 新建 ,弹框中输入 bucket 名称,读写权限为 公共读 。完成后,点击 确定 。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_客户端_52

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_上传_53

左侧列表中看到新建的名称为 sl052-oss-bucket-32510 的 bucket 。Jack 能够创建 bucket 是由于为它授予了读写权限。

阿里云1+X云计算开发与运维实战——云存储访问的授权管理_云存储_54

10.    至此,实验已经完成。上述结果证明我们通过RAM授权的方式实现云存储OSS访问的授权管理是行之有效的。 

标签:实战,存储,运维,OSS,RAM,bucket,用户,点击,授权
From: https://blog.51cto.com/lyx888/6217683

相关文章

  • Nginx 入门实战(1)--简介及安装
    本文介绍的Nginx为开源版本Nginx,官网地址为:https://nginx.org/en/,如需了解商业版本,可访问商业官网:https://www.nginx-cn.net/;文中所使用到的软件版本:nginx1.22.1、pcre8.43、opnessl1.1.1s、CentOS 7.9.20091、简介nginx[enginex]是一款Http和反向代理服务器、邮件......
  • 盘点一道使用pandas.groupby函数实战的应用题目
    今日鸡汤声喧乱石中,色静深松里。大家好,我是我是Python进阶者。一、前言前几天Python青铜群有个叫【假装新手】的粉丝问了一个数据分析的问题,这里拿出来给大家分享下。一开始以为只是一个简单的去重问题而已,【编程数学钟老师】大佬提出使用set函数,后来有粉丝发现其实没有想的这么简......
  • 阿里云1+X云计算开发与运维实战——云监控初体验
    实验概述本实验会自动创建一台已部署Nginx的ECS实例和一台负载均衡SLB实例。首先,使用阿里云云监控的 云服务监控 服务,配置并查看ECS实例和SLB实例的监控数据。然后,设置ECS实例的报警规则,并验证报警规则生效。之后,使用 站点监控 服务,监控已部署Nginx的站点的状态,并设置站点报警......
  • MDK5—stm32程序的组成、存储与运行
     MDK编译完成后,程序显示由Code、RO-data、RW-data、ZI-Data段组成(栈空间(Stack)及堆空间(Heap))。1、Code:代码域,它指的是编译器生成的机器指令,这些内容被存储在ROM区;RO-data:ReadOnlydata,只读数据域,它指程序中用到的只读数据,这些数据被存储在ROM区,因而程序不能修改其内容。例......
  • python 操作阿里云oss 对象存储上传下载文件
    python操作阿里云对象存储oss阿里云账号要有操作oss权限安装OSSSDKpipinstalloss2上传文件#-*-coding:utf-8-*-importoss2importos#阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控......
  • 浅谈电力监控在地铁运维中的应用
     摘要:随着我国工业化进程的不断推进,我国监控系统也实现了长足的发展。以往传统的地铁监控模式已经无法满足当前需求,将电力监控系统和地铁综合监控系统已经进行资源整合,有效实现了地铁信息的共享与互动,综合提高了地铁自动化监控水平,保证了地铁运行的可靠与安全。  关键词:电力监......
  • 基于django+ansible+webssh运维自动化管理系统
    基于django+ansible+webssh运维自动化管理系统 前言最初开发这个基于Djangoansible运维自动化管理系统的想法其实从大学时候就已经有了,但是苦于技术原因和没有线上环境原因一直没有开发,现在有了这个技术和环境之后开始着手开发了这个项目,项目难点在于你要理解如何设计数据库,......
  • 破防了,这才是机房运维的高效方法
    在云计算、5G等新业务野蛮生长的催化下,机房规模与容量也呈倍速扩张。机房安全是业务发展的底座。提升机房设备安全和管理效率,避免人为因素导致的事故发生,是机房运维的必要前提。安全生产重于泰山,除了日常的科学防护,中外运维也曾一致的走近玄学。了解工作性质,似乎也不难理解这个现象......
  • 如何做好今天的运维
    近年来很多声音讨论运维岗是不是会被替代的问题。但随着ChatGPT的出现和更多大模型的发布,似乎每个岗位都应该考虑下自己被替代的问题了。无论未来如何变化,现实是今天的我们仍然需要做好自己的工作,站好自己的岗。今天我将分享我所认为的优秀运维和架构师应该是怎样的。最后是关于运......
  • 运维 —— IMP-00030: failed to create file import_sys for write
    IMP-00030:failedtocreatefileimport_sysforwriteIMP-00000:Importterminatedunsuccessfully原因:操作系统用户oracle对dmp文件没有权限drwxr-xr-x 2root  root       42Feb 316:57dmp_dir解决办法:登录root用户,对用户oracle赋予dmp文件一些权限在root......