授权策略是一组权限的集合,它以阿里云定义的Policy 基本元素 来描述。通过给用户或群组附加授权策略,用户或群组中的所有用户就能获得授权策略中指定的访问权限。

RAM 支持两种类型的授权策略:系统授权策略自定义授权策略。本文系统介绍了授权策略的管理方法,具体包括:查看系统授权策略,以及创建自定义授权策略修改删除 自定义授权策略。

系统授权策略

系统授权策略是阿里云提供的一组通用授权策略,主要针对不同产品的 只读权限所有权限。对于阿里云提供的这组授权策略,

  • 用户只能用于授权,而不能编辑和修改。
  • 阿里云会自动进行更新或修改。

查看系统授权策略

如果要查看阿里云支持的所有系统授权策略,请登录到 RAM控制台,并进入授权策略管理页面,在系统授权策略子页下,通过系统授权策略列表查看或搜索。

自定义授权策略

由于系统授权策略的授权粒度比较粗,如果这种粗粒度授权策略不能满足您的需要,那么您可以创建自定义授权策略。比如,您想控制对某个具体的 ECS 实例的操作权限,或者您要求访问者的资源操作请求必须来自于指定的 IP 地址,您必须使用自定义授权策略才能满足这种细粒度要求。

应用场景

如果您有更细粒度的授权需求,比如授权用户 bob 只能对 oss://sample_bucket/bob/ 下的所有对象执行只读操作,而且限制 IP 来源必须为您的公司网络 (通过搜索引擎查询 “我的IP” 可以获知您的公司网络 IP 地址),那么您可以通过创建自定义授权策略来进行访问控制。

创建自定义授权策略

在创建自定义授权策略时,您需要了解授权策略语言的基本结构和语法,相关内容的详细描述请参考Policy语法结构

操作步骤

在了解授权策略语言之后,您通过 RAM 控制台可以很方便地创建满足上述需求的自定义授权策略。
  1. 登录到 RAM 控制台
  2. 单击策略管理 > 自定义授权策略
  3. 单击新建授权策略,打开新建授权策略弹窗,如下图所示:
    图 1. 新建授权策略


  4. 选择一个模板(这里选择 AliyunOSSReadOnlyAccess),我们可以基于该模板进行 Policy 编辑,如下图所示:
    图 2. 编辑授权策略


    我们修改了自定义的授权策略名称,备注和策略内容。上图策略内容中的选中部分是我们新增的细粒度授权限制内容。

    代码样例如下所示:

    
    {
        "Version": "1",
        "Statement": [
          {
            "Action": [
              "oss:Get*",
              "oss:List*"
            ],
            "Effect": "Allow",
            "Resource": "acs:oss:*:*:samplebucket/bob/*",
            "Condition": {
              "IpAddress": {
                "acs:SourceIp": "127.0.27.1"
               }
            }
          }
        ]
    }
  5. 单击新建授权策略,完成新建自定义授权策略。

后续操作

如果将这个自定义的授权策略附加给用户 bob,那么 bob 对oss://samplebucket/bob/ 下的对象有只读操作权限,且限制条件是必须从您的公司网络(假设为 121.0.27.1)进行访问。

具体操作请参考授权

修改自定义授权策略

当用户的权限发生变更时,比如新增或撤销权限,您需要修改授权策略。当您修改授权策略时可能会遇到以下问题:

  • 希望一段时间后,老的授权策略还能继续使用。
  • 修改完成后,您发现授权策略修改错了,需要回滚。

授权策略具备版本管理机制,用于解决在使用中存在的问题:

  • 您可以为一个授权策略保留多个版本。
  • 如果超出限制,您需要自主删除不需要的版本。
  • 对于一个存在多版本的授权策略,只有一个版本是活跃的,即默认版本。

操作步骤

  1. 在RAM控制台单击策略管理 > 自定义授权策略
  2. 通过 授权策略名称(可使用关键字查询)找到需要管理的授权策略,单击其名称或对应操作列下的查看
  3. 在左侧导航栏单击版本管理
    图 3. 版本管理
  4. 如上图所示,在版本管理页面,您可以:
    • 选择查看所有历史版本的策略内容。
    • 将非默认版本策略设为当前版本(即默认版本)。
    • 选择删除非默认版本策略。

删除自定义授权策略

您可以创建多个自定义授权策略,每个策略也可以维护多个版本。当您不再需要自定义授权策略时,您应该将授权策略删除。

前提

在删除某个授权策略前,应保证:
  • 当前授权策略不存在多版本,只有一个默认版本。若该授权策略存在多个版本,您必须先删除除默认版本之外的所有版本。
  • 当前授权策略未被引用(即附加给用户、用户组或角色)。若该授权策略已被引用,您可以:
    • 在该授权策略的引用记录解除授权
    • 还可以选择在删除过程中 强制解除关联关系

操作步骤

  1. 在RAM控制台单击策略管理 > 自定义授权策略
  2. 通过授权策略名称(可使用关键字查询)找到需要删除的授权策略,单击其对应操作列下的删除
  3. 确认删除授权策略,可选择勾选强制解除关联关系(该策略有被引用记录时强制删除引用关系)。

至此,您已成功删除一条自定义授权策略。