授权策略是一组权限的集合,它以阿里云定义的
授权策略语言 来描述。通过给用户或群组附加授权策略,用户或群组中的所有用户就能获得授权策略中指定的访问权限。
RAM 支持两种类型的授权策略:
系统授权策略 和
自定义授权策略。本文系统介绍了授权策略的管理方法,具体包括:
查看系统授权策略,以及
创建、
修改 和
删除 自定义授权策略。
系统授权策略
系统授权策略是阿里云提供的一组通用授权策略,主要针对不同产品的 [backcolor=transparent]只读权限 或 [backcolor=transparent]所有权限。对于阿里云提供的这组授权策略,
- 用户只能用于授权,而不能编辑和修改。
- 阿里云会自动进行更新或修改。
查看系统授权策略
如果要查看阿里云支持的所有系统授权策略,请登录到
RAM 控制台,并进入 [backcolor=transparent]授权策略管理 页面,在 [backcolor=transparent]系统授权策略 子页下,通过系统授权策略列表查看或搜索。
自定义授权策略
由于系统授权策略的授权粒度比较粗,如果这种粗粒度授权策略不能满足您的需要,那么您可以创建自定义授权策略。比如,您想控制对某个具体的 ECS 实例的操作权限,或者您要求访问者的资源操作请求必须来自于指定的 IP 地址,您必须使用自定义授权策略才能满足这种细粒度要求。
应用场景
如果您有更细粒度的授权需求,比如授权用户 bob 只能对 oss://sample_bucket/bob/ 下的所有对象执行只读操作,而且限制 IP 来源必须为您的公司网络 (通过搜索引擎查询 “我的IP” 可以获知您的公司网络 IP 地址),那么您可以通过创建自定义授权策略来进行访问控制。
创建自定义授权策略
在创建自定义授权策略时,您需要了解授权策略语言的基本结构和语法,相关内容的详细描述请参考
授权策略语言描述。
操作步骤
在了解授权策略语言之后,您通过 RAM 控制台可以很方便地创建满足上述需求的自定义授权策略。
- 登录到 RAM 控制台。
- 单击 [backcolor=transparent]策略管理 > [backcolor=transparent]自定义授权策略。
- 单击 [backcolor=transparent]新建授权策略,打开新建授权策略弹窗,如下图所示:
- 选择一个模板(这里选择 AliyunOSSReadOnlyAccess),我们可以基于该模板进行 Policy 编辑,如下图所示:
我们修改了自定义的授权策略名称,备注和策略内容。上图策略内容中的选中部分是我们新增的细粒度授权限制内容。
代码样例如下所示:[backcolor=transparent] [backcolor=transparent]{ - [backcolor=transparent] [backcolor=transparent]"Version"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"1"[backcolor=transparent],
- [backcolor=transparent] [backcolor=transparent]"Statement"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent][
- [backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]"Action"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent][
- [backcolor=transparent] [backcolor=transparent]"oss:Get*"[backcolor=transparent],
- [backcolor=transparent] [backcolor=transparent]"oss:List*"
- [backcolor=transparent] [backcolor=transparent]],
- [backcolor=transparent] [backcolor=transparent]"Effect"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"Allow"[backcolor=transparent],
- [backcolor=transparent] [backcolor=transparent]"Resource"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"acs:oss:*:*:samplebucket/bob/*"[backcolor=transparent],
- [backcolor=transparent] [backcolor=transparent]"Condition"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]"IpAddress"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]"acs:SourceIp"[backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]"127.0.27.1"
- [backcolor=transparent] [backcolor=transparent]}
- [backcolor=transparent] [backcolor=transparent]}
- [backcolor=transparent] [backcolor=transparent]}
- [backcolor=transparent] [backcolor=transparent]]
- [backcolor=transparent] [backcolor=transparent]}
单击 [backcolor=transparent]新建授权策略,完成新建自定义授权策略。
后续操作
如果将这个自定义的授权策略附加给用户 bob,那么 bob 对oss://samplebucket/bob/ 下的对象有只读操作权限,且限制条件是必须从您的公司网络(假设为 121.0.27.1)进行访问。
具体操作请参考
RAM 授权。
修改自定义授权策略
当用户的权限发生变更时,比如新增或撤销权限,您需要修改授权策略。当您修改授权策略时可能会遇到以下问题:
- 希望一段时间后,老的授权策略还能继续使用。
- 修改完成后,您发现授权策略修改错了,需要回滚。
授权策略具备 [backcolor=transparent]版本管理 机制,用于解决在使用中存在的问题:
- 您可以为一个授权策略保留多个版本。
- 如果超出限制,您需要自主删除不需要的版本。
- 对于一个存在多版本的授权策略,只有一个版本是活跃的,即默认版本。
操作步骤
- 登录到 RAM 控制台。
- 单击 [backcolor=transparent]策略管理 > [backcolor=transparent]自定义授权策略。
- 通过 [backcolor=transparent]授权策略名称(可使用关键字查询)找到需要管理的授权策略,单击其名称或对应操作列下的 [backcolor=transparent]查看。
- 在左侧导航栏单击 [backcolor=transparent]版本管理。
如上图所示,在 [backcolor=transparent]版本管理 页面,您可以:
- 选择 [backcolor=transparent]查看 所有历史版本的策略内容。
- 将非默认版本策略 [backcolor=transparent]设为当前 版本(即默认版本)。
- 选择 [backcolor=transparent]删除 非默认版本策略。
删除自定义授权策略
您可以创建多个自定义授权策略,每个策略也可以维护多个版本。当您不再需要自定义授权策略时,您应该将授权策略删除。
前提
在删除某个授权策略前,应保证:
- 当前授权策略不存在多版本,只有一个默认版本。若该授权策略存在多个版本,您必须先删除除默认版本之外的所有版本。
- 当前授权策略未被引用(即附加给用户、用户组或角色)。若该授权策略已被引用,您可以:在该授权策略的 [backcolor=transparent]引用记录 中 [backcolor=transparent]解除授权。
- 还可以选择在删除过程中 [backcolor=transparent]强制解除关联关系。
操作步骤
- 登录到 RAM 控制台。
- 单击 [backcolor=transparent]策略管理 > [backcolor=transparent]自定义授权策略。
- 通过 [backcolor=transparent]授权策略名称(可使用关键字查询)找到需要删除的授权策略,单击其对应操作列下的 [backcolor=transparent]删除。
- 确认删除授权策略,可选择勾选 [backcolor=transparent]强制解除关联关系(该策略有被引用记录时强制删除引用关系)。
至此,您已成功删除一条自定义授权策略。