附录:外部数据源的权限配置

更新时间:
复制为 MD 格式

外部数据源的权限配置

外部数据源是MaxCompute租户面的资源对象,RAM用户是否能够执行对外部数据源的操作,取决于租户管理员在RAM访问控制台权限管理>权限策略中对外部数据源配置的权限,创建权限策略详情请参见通过脚本编辑模式创建自定义权限策略

示例:使用阿里云账号创建一条名为ForeignServerTest的权限策略,并将其授权给子账号。权限策略示例如下:

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "odps:CreateForeignServer",
            "Resource": "acs:odps:*:12xxxxxxxx07:foreignservers/*"
        }
    ]
}

增加查询全部外部数据源和获取某个外部数据源信息的权限:

说明
  • 如果创建外部数据源(CreateForeignServer)的同时,指定NetworkLink,则Resource中需要添加networklink。

  • 如果指定了RAM Role,需要有对RAM Roleram:PassRole权限。

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "odps:CreateForeignServer",
                "odps:GetForeignServer",
                "odps:ListForeignServers"
            ],
            "Resource": "acs:odps:*:12xxxxxxxx07:foreignservers/*"
        }
    ]
}

其他Action说明如下:

Action名称

描述

CreateForeignServer

创建外部数据源。

UpdateForeignServer

更新外部数据源。

DeleteForeignServer

删除外部数据源。

GetForeignServer

获取某个外部数据源信息。

ListForeignServers

查询全部外部数据源。

将已创建的Policy授权给子账号,即可对已授权的外部数据源执行相应操作。

项目级别租户资源访问控制

湖仓一体2.0引入的外部数据源是一种租户粒度的资源,权限由RAM Policy控制。而用户在项目中使用归属项目的对象(例如表),权限由项目管理员控制。对于租户对象是否有权被项目使用,以及在项目中使用权限的再分配,有两种安全管理模式。

  • 若开启项目级别租户资源访问控制,创建者可以通过设置外部数据源与项目的挂载关系,指定哪些项目可以使用其创建的外部数据源,再由项目管理员通过Policy对项目内部的用户授予使用外部数据源的权限。

  • 若未开启项目级别租户资源访问控制,任何创建了外部项目或外部Schema的用户,都可以使用此外部数据源,访问外部系统时同样基于外部数据源中创建者指定的RAMRole权限进行访问。除了湖仓一体2.0引入的外部数据源,网络连接、自定义镜像、配额组(Quota)也是租户粒度的对象,一起受项目级别租户资源访问控制开关的控制。

开启项目级别租户资源访问控制,使用外部数据源和外部Schema访问联邦外表需要执行如下操作:

  1. 进行租户对象与项目的挂载关系配置,配置方法为点击租户对象,例如外部数据源,选择挂载的项目,确定完成关系的配置。挂载完成的租户对象可以在项目的已挂载租户对象列表中查询到。

  2. 对于已挂载到项目上的租户对象,进行Policy配置。配置方法参考Policy权限控制

    • 操作步骤

      1. 登录MaxCompute控制台,在左上角选择地域。

      2. 项目管理页面,单击目标项目操作列的管理

      3. 项目配置页面,选择角色权限页签。

      4. 选择目标项目级别角色,单击操作列的编辑角色

      5. 编辑角色对话框中,选择授权方式Policy

      6. Policy授权脚本框中修改角色Policy。

    • 示例

      以外部数据源为例,配置用户a可以使用外部数据源fs_hivePolicy如下:

      {
          "Statement":[
              {
                  "Action":[
                      "odps:Usage"
                  ],
                  "Effect":"Allow",
                  "Resource":[
                      "acs:odps:*:servers/fs_hive"
                  ]
              }
          ],
          "Version":"1"
      }

      当用户具有租户资源使用权限后,才可以在开启项目级别租户资源访问控制模式下,进行用户/角色粒度的租户资源使用权限控制。

  3. 项目开启租户对象检查开关(即开启项目级别租户资源访问控制)。

    目前此功能仅提供预览,暂不支持开启检查。

    1. 登录MaxCompute控制台,在左上角选择地域。

    2. 项目管理页面,单击目标项目操作列的管理

    3. 项目配置页面,选择参数配置页签。

    4. 权限属性区域,单击编辑

    5. 开启项目级别租户资源访问控制

    重要
    • 项目级别租户资源访问控制详情请参见项目级别租户资源访问控制

    • 开启后,项目将立即对正在使用和后续使用的租户对象(包括外部数据源、网络连接、自定义镜像、配额组(quota))进行使用权限校验。因此在没有完全完成租户对象与项目的挂载关系配置,以及Policy授权之前,请勿轻易打开检查开关。权限缺失可能会造成依赖权限的任务失败。