本文向您介绍如何在RAM中自定义授权MaxCompute访问OSS和OTS的权限。MaxCompute结合了阿里云的访问控制服务(RAM)和令牌服务(STS)实现对数据的安全访问。

OSS的STS模式授予权限

MaxCompute需要直接访问OSS的数据,前提是需要您将OSS的数据相关权限赋给MaxCompute的访问账号,可通过以下方式授予权限:
  • 当MaxCompute和OSS的Owner是同一个账号时,可以直接登录阿里云账号后,单击此处完成一键授权
  • 自定义授权。
    1. 创建角色。登录RAM控制台(若MaxCompute和OSS不是同一个账号,此处需由OSS账号登录进行授权),通过控制台中的 RAM角色管理创建角色 ,例如角色oss-admin。
    2. 修改角色策略内容设置。
      --当MaxCompute和OSS的Owner是同一个账号,设置如下。
      {
      "Statement": [
      {
       "Action": "sts:AssumeRole",
       "Effect": "Allow",
       "Principal": {
         "Service": [
           "odps.aliyuncs.com"
         ]
       }
      }
      ],
      "Version": "1"
      }
      --当MaxCompute和OSS的Owner不是同一个账号,设置如下。
      {
      "Statement": [
      {
       "Action": "sts:AssumeRole",
       "Effect": "Allow",
       "Principal": {
         "Service": [
           "MaxCompute的Owner云账号id@odps.aliyuncs.com"
         ]
       }
      }
      ],
      "Version": "1"
      }
    3. 授予角色访问OSS必要的权限AliyunODPSRolePolicy。 您也可以自定义其它权限。
      {
      "Version": "1",
      "Statement": [
      {
       "Action": [
         "oss:ListBuckets",
         "oss:GetObject",
         "oss:ListObjects",
         "oss:PutObject",
         "oss:DeleteObject",
         "oss:AbortMultipartUpload",
         "oss:ListParts"
       ],
       "Resource": "*",
       "Effect": "Allow"
      }
      ]
      }
    4. 将权限AliyunODPSRolePolicy授权给该角色。

OTS的STS模式授权

MaxCompute需要直接访问OTS的数据,前提需要您将OTS的数据相关权限赋给MaxCompute的访问账号,通过以下方式授予权限:
  • 当MaxCompute和Table Store的Owner是同一个账号时,登录阿里云账号后,单击此处完成一键授权
  • 自定义授权
    1. 创建角色。

      登录RAM控制台(若MaxCompute和Table Store不是同一个账号,此处需由Table Store账号登录进行授权),创建角色,例如角色AliyunODPSDefaultRole、AliyunODPSRoleForOtherUser。

    2. 修改策略内容设置。
      --当MaxCompute和Table Store的Owner是同一个账号时,进行如下设置。
      {
      "Statement": [
      {
       "Action": "sts:AssumeRole",
       "Effect": "Allow",
       "Principal": {
         "Service": [
           "odps.aliyuncs.com"
         ]
       }
      }
      ],
      "Version": "1"
      }
      --当MaxCompute和Table Store的Owner不是同一个账号时,进行如下设置。
      {
      "Statement": [
      {
       "Action": "sts:AssumeRole",
       "Effect": "Allow",
       "Principal": {
         "Service": [
           "MaxCompute的Owner云账号的UID@odps.aliyuncs.com"
         ]
       }
      }
      ],
      "Version": "1"
      }
      说明 您可以单击右上角的头像,进入账号管理页面查看云账号的UID。
    3. 编辑该角色的授权策略AliyunODPSRolePolicy。
      {
      "Version": "1",
      "Statement": [
      {
       "Action": [
         "ots:ListTable",
         "ots:DescribeTable",
         "ots:GetRow",
         "ots:PutRow",
         "ots:UpdateRow",
         "ots:DeleteRow",
         "ots:GetRange",
         "ots:BatchGetRow",
         "ots:BatchWriteRow",
         "ots:ComputeSplitPointsBySize"
       ],
       "Resource": "*",
       "Effect": "Allow"
      }
      ]
      }
      --还可自定义其它权限。
    4. 将权限AliyunODPSRolePolicy授权给该角色。