全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
访问控制

创建自定义授权策略(可选)

更新时间:2017-09-15 10:04:47

目前,阿里云提供了多种系统授权策略可供用户选择使用。这些授权策略仅仅提供了粗粒度的访问控制能力,比如某个云产品级别的只读权限或所有权限。

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

本文以上述用户 bob 为例,介绍了创建自定义授权策略的方法,帮助您更好地理解和使用 RAM 进行精细粒度的访问控制。

前提条件

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

RAM 最细可以支持各产品 API 粒度的授权,即 Policy 中的 Action 可以精细到每个 API 操作。在创建自定义授权策略前,您需要了解有关产品所支持的授权粒度和授权方法,具体请参考 RAM 支持的云服务

操作步骤

  1. 登录到 阿里云 RAM 控制台

  2. 点击左侧导航栏中的 策略管理。在 策略管理 页面,可通过 系统授权策略自定义授权策略 子页,分别查看已有的系统和自定义策略。

    授权策略概览

  3. 点击 新建授权策略,进入 创建授权策略 页面。

  4. 选择权限策略模板。

    注意:可以选择空白模板,但推荐使用类似的已有系统策略作为模板进行编辑。如本文我们以 具体 OSS 桶下资源的只读权限为例,这里选择 AliyunOSSReadOnlyAccess (账号下所有 OSS 资源的只读权限)作为模板。

    选择策略模板

  5. 基于选择的模板,编辑 Policy。

    编辑自定义授权策略

    这里修改了授权策略名称,备注和策略内容。上图策略内容中的选中部分是新增的细粒度授权限制内容。其代码样例为:

    1. {
    2. "Version": "1",
    3. "Statement": [
    4. {
    5. "Effect": "Allow",
    6. "Action": [
    7. "oss:Get*",
    8. "oss:List*"
    9. ],
    10. "Resource": [
    11. "acs:oss:*:*:samplebucket/bob/*"
    12. ]
    13. "Condition": {
    14. "IpAddress": {
    15. "acs:SourceIp": "127.0.27.1"
    16. }
    17. }
    18. }
    19. ]
    20. }
  6. 策略内容编辑完成后,点击 新建授权策略 完成创建。

至此,您已完成自定义授权策略的创建。

后续操作

接下来只需将本文创建的策略授权给用户 bob,则 bob 会拥有对 oss://samplebucket/bob/ 下的对象的只读操作权限,且限制条件是必须从您的公司网络(假设为121.0.27.1)进行访问。

本文导读目录