全部產品
Search
文件中心

MaxCompute:訪問外部資料源授權方案

更新時間:May 08, 2026

MaxCompute結合了阿里雲的存取控制服務(RAM)和令牌服務(STS)實現對外部資料源的安全訪問。本文介紹基於存取控制服務(RAM)和令牌服務(STS)的不同功能情境下的授權方式。

OSS的RAM普通角色授權

MaxCompute外部表格直接存取OSS資料,需要表所有者將OSS資料存取權限(RAMRole)整合到OSS外部表格中,再根據需要為需要訪問此外部表格的使用者授予相應許可權。可以通過以下方式授權:

  • 一鍵授權(推薦):當MaxCompute和OSS的Owner是同一個帳號時,登入阿里雲帳號後,單擊此處完成一鍵授權

    說明

    預設建立的AliyunODPSDefaultRole許可權較多,僅供參考,需要根據MaxCompute外表或外部資料源可訪問的外部資料許可權,在RAM控制台中配置合理的權限原則和信任策略。

  • 自訂授權:無論MaxCompute和OSS的Owner是不是同一個帳號,都可以使用該方式授權。具體操作如下。

    • 當MaxCompute和OSS的Owner是同一個帳號時,添加信任策略時需要將service配置成odps.aliyuncs.com

    • 當MaxCompute和OSS的Owner不是同一個帳號時,添加信任策略時需要將service配置成MaxCompute的Owner雲帳號ID*@odps.aliyuncs.com,MaxCompute的Owner雲帳號ID可以在帳號概覽中擷取。

    1. 建立RAM角色。

      登入RAM控制台,通過RAM控制台中的RAM角色建立角色。例如角色oss-admin。更多建立角色操作資訊,請參見建立可信實體為阿里雲帳號的RAM角色image

    2. 修改RAM角色策略內容。

      1. 登入RAM控制台

      2. 在左側導覽列選擇身份管理 > 角色

      3. 角色頁面,單擊目標角色名称,進入該角色詳情頁。

      4. 信任策略頁簽,單擊編輯信任策略,在編輯信任策略頁面選擇腳本編輯頁簽。

        配置如下策略:

        當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雲帳號I*@odps.aliyuncs.com"
         ]
         }
        }
        ],
        "Version": "1"
        }
      5. 修改完成後,單擊确定

    3. 建立權限原則。

      在RAM控制台中的權限原則管理頁面,建立權限原則,例如AliyunODPSRolePolicy。

      策略內容如下,也可以自訂其他許可權。更多授權操作資訊,請參見建立自訂權限原則

      {
      "Version": "1",
      "Statement": [
      {
       "Action": [
       "oss:ListBuckets",
       "oss:GetObject",
       "oss:ListObjects",
       "oss:PutObject",
       "oss:DeleteObject",
       "oss:AbortMultipartUpload",
       "oss:ListParts"
       ],
       "Resource": "*",
       "Effect": "Allow"
      }
      ]
      }
    4. 將建立的權限原則授權給建立的RAM角色。

      1. 登入RAM控制台

      2. 在左側導覽列選擇身份管理 > 角色

      3. 角色頁面,單擊目標角色名称,進入該角色詳情頁。

      4. 权限管理頁簽,單擊新增授权。在彈出的新增授权面板中,選擇要授予該角色的權限原則,單擊確認新增授權

        更多操作資訊,請參見管理RAM角色的許可權

OTS的RAM普通角色授權

MaxCompute外部表格直接存取OTS資料,需要表所有者將OTS資料存取權限(RAMRole)整合到OTS外部表格中,再根據需要為需要訪問此外部表格的使用者授予相應許可權。可以通過以下方式授權:

  • 一鍵授權(推薦):當MaxCompute和OTS的Owner是同一個帳號時,登入阿里雲帳號後,單擊此處完成一鍵授權

  • 自訂授權:當MaxCompute和OTS的Owner不是同一個帳號時,自訂角色並授權。

    1. 建立RAM角色。

      使用OTS帳號登入RAM控制台,通過RAM控制台中的RAM角色建立角色。例如角色oss-admin-ots。

      更多建立角色操作資訊,請參見建立可信實體為阿里雲帳號的RAM角色

    2. 修改RAM角色策略內容。

      當MaxCompute和OTS的Owner不是同一個帳號時,設定如下所示,支援跨帳號實現MaxCompute訪問OTS。

      1. 登入RAM控制台

      2. 在左側導覽列選擇身份管理 > 角色

      3. 角色頁面,單擊目標角色名称,進入該角色詳情頁。

      4. 信任策略頁簽,單擊編輯信任策略,在編輯信任策略頁面選擇腳本編輯頁簽。

        配置如下策略:

        {
        "Statement": [
        {
         "Action": "sts:AssumeRole",
         "Effect": "Allow",
         "Principal": {
         "Service": [
         "MaxCompute的Owner雲帳號的UI*@odps.aliyuncs.com"
         ]
         }
        }
        ],
        "Version": "1"
        }

        MaxCompute的Owner雲帳號ID為訪問OTS服務的帳號。

    3. 建立權限原則。

      在RAM控制台中的權限原則管理頁面,建立權限原則,例如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授權給建立的RAM角色。

      1. 登入RAM控制台

      2. 在左側導覽列選擇身份管理 > 角色

      3. 角色頁面,單擊目標角色名称,進入該角色詳情頁。

      4. 权限管理頁簽,單擊新增授权。在彈出的新增授权面板中,選擇要授予該角色的權限原則,單擊確認新增授權

        更多授權操作資訊,請參見管理RAM角色的許可權

Hologres的RAM普通角色授權

MaxCompute外部表格直接存取Hologres資料,需要表所有者將Hologres資料存取權限(RAMRole)整合到Hologres外部表格中,再根據需要為需要訪問此外部表格的使用者授予相應許可權。可以通過以下方式授權:

  1. 建立RAM角色

    建立RAM角色擷取ARN資訊,用於建立外部表格時填寫STS認證資訊。建立RAM角色的信任主體類型根據實際需求選擇,本樣本中信任主體類型為雲帳號。

    操作步驟如下:

    1. 登入RAM控制台

    2. 在左側導覽列選擇身份管理 > 角色

    3. 角色頁面,單擊创建角色

  2. 修改信任策略配置

    1. 角色頁面,單擊目標角色名称,進入該角色詳情頁。

    2. 信任策略頁簽,單擊編輯信任策略,在編輯信任策略頁面選擇腳本編輯頁簽。

    3. 參照如下內容修改信任策略配置

      修改信任策略配置內容與選擇的可信實體類型相關。其中<UID>即阿里雲帳號ID,可在使用者資訊頁面擷取。

      可信實體類型為阿里雲帳號

      {
       "Statement": [
       {
       "Action": "sts:AssumeRole",
       "Effect": "Allow",
       "Principal": {
       "RAM": [
       "acs:ram::<UID>:root"
       ]
       }
       },
       {
       "Action": "sts:AssumeRole",
       "Effect": "Allow",
       "Principal": {
       "Service": [
       "<UID>@odps.aliyuncs.com"
       ]
       }
       }
       ],
       "Version": "1"
      }

      可信實體類型為身份供應商

      {
       "Statement": [
       {
       "Action": "sts:AssumeRole",
       "Condition": {
       "StringEquals": {
       "saml:recipient": "https://signin.aliyun.com/saml-role/sso"
       }
       },
       "Effect": "Allow",
       "Principal": {
       "Federated": [
       "acs:ram::<UID>:saml-provider/IDP"
       ]
       }
       },
       {
       "Action": "sts:AssumeRole",
       "Effect": "Allow",
       "Principal": {
       "Service": [
       "<UID>@odps.aliyuncs.com"
       ]
       }
       }
       ],
       "Version": "1"
      }
  3. 添加RAM角色至Hologres執行個體並授權

    RAM角色需要有Hologres執行個體的開發許可權,才能在許可權範圍內使用Hologres。

    由於RAM角色預設沒有Hologres管理主控台的查看和操作執行個體的許可權,因此需要阿里雲帳號完成RAM相關許可權授予才能進行後續操作。

    添加RAM角色至Hologres執行個體步驟如下:

    通過Hologres管理主控台授權

    1. 登入Hologres管理主控台,在左上方選擇地區。

    2. 在左側導覽列選擇實例清單

    3. 實例清單頁面,單擊目標執行個體名稱。

    4. 在執行個體詳情頁面,在左側導覽列選擇帳號管理

    5. 用户管理頁面,單擊新增使用者

    6. 在彈出的新增使用者頁面,配置相關資訊,單擊确认

      • 角色選擇AliyunODPSDefaultRole

      • 成員角色選擇普通使用者

    7. 用户管理頁面,在左側導覽列選擇DB授權

    8. DB授權頁面,單擊新增資料庫

    9. 在彈出的新增資料庫頁面,配置相關資訊,單擊确认

      权限策略選擇SPM。

    10. DB授權頁面,單擊目標資料庫對應的操作列的使用者授權

    11. 單擊右上方新增授权。在彈出的新增授权對話方塊中,配置使用者使用者組

      • 用户選擇要配置的RAM使用者。

      • 用户组選擇Developer。

    通過RAM存取控制台授權

    將建立的權限原則AliyunODPSRolePolicy授權給建立的RAM角色。

    1. 登入RAM控制台

    2. 在左側導覽列選擇身份管理 > 用户

    3. 用户頁面,單擊目標用户登录名称/显示名称,進入使用者詳情頁面。

    4. 在使用者詳情頁面,單擊权限管理頁簽。

    5. 权限管理頁簽下,選擇个人权限,單擊新增授权

    6. 在彈出的新增授权面板中,選擇要授予該使用者的權限原則,單擊確認新增授權

      權限原則選擇AliyunRAMReadOnlyAccess

      更多授權操作資訊,請參見授予RAM使用者權限

    通過SQL方式授權

    授權SQL請參見Hologres許可權模型

說明

Hologres還支援雙簽名的認證方式,詳情請參見Hologres外部表格

DLF+OSS的RAM普通角色授權

通過MaxCompute與DLF和OSS構建湖倉一體時,需要將DLF和OSS的資料存取權限(RAMRole)整合到外部資料源中,然後建立外部Schema(External Schema)並使用該許可權訪問DLF和OSS。如需為其他使用者授予外部Schema中表的存取權限,請參見外部模式內對聯邦外表授權。授權方式如下:

  • 一鍵授權(推薦):當建立MaxCompute專案的帳號和部署DLF、OSS的帳號相同時。推薦直接單擊授權DLF和OSS一鍵授權。

  • 自訂授權:無論建立MaxCompute專案的帳號和部署DLF、OSS的帳號是否相同,都可以使用該方式。具體操作如下。

    • MaxCompute專案RAM使用者和部署DLF的帳號相同時,添加信任策略時需要將service配置成odps.aliyuncs.com

    • MaxCompute專案RAM使用者和部署DLF的帳號不同時,添加信任策略時需要將service配置成<MaxCompute專案的Owner雲帳號id>@odps.aliyuncs.com。可以在帳號概覽中擷取MaxCompute的Owner雲帳號id

    1. 登入RAM存取控制台建立可信實體為阿里雲帳號的RAM角色

    2. 通過RAM控制台修改RAM角色的信任策略。信任策略內容如下:

      建立MaxCompute專案的帳號和部署DLF的帳號是同一個帳號

      {
      "Statement": [
      {
       "Action": "sts:AssumeRole",
       "Effect": "Allow",
       "Principal": {
       "Service": [
       "odps.aliyuncs.com"
       ]
       }
      }
      ],
      "Version": "1"
      }

      建立MaxCompute專案的帳號和部署DLF的帳號不是同一個帳號

      {
      "Statement": [
      {
       "Action": "sts:AssumeRole",
       "Effect": "Allow",
       "Principal": {
       "Service": [
       "<MaxCompute專案的Owner雲帳號id>@odps.aliyuncs.com" 
       ]
       }
      }
      ],
      "Version": "1"
      }
    3. 通過RAM控制台,為建立的RAM角色自訂權限原則。操作詳情,請參見建立自訂權限原則。自訂許可權內容如下:

      {
      "Version": "1",
      "Statement": [
      {
       "Action": [
       "oss:ListBuckets",
       "oss:GetObject",
       "oss:ListObjects",
       "oss:PutObject",
       "oss:DeleteObject",
       "oss:AbortMultipartUpload",
       "oss:ListParts"
       ],
       "Resource": "*",
       "Effect": "Allow"
      },
      {
       "Action": [
       "dlf:CreateFunction",
      "dlf:BatchGetPartitions",
      "dlf:ListDatabases",
      "dlf:CreateLock",
      "dlf:UpdateFunction",
      "dlf:BatchUpdateTables",
      "dlf:DeleteTableVersion",
      "dlf:UpdatePartitionColumnStatistics",
      "dlf:ListPartitions",
      "dlf:DeletePartitionColumnStatistics",
      "dlf:BatchUpdatePartitions",
      "dlf:GetPartition",
      "dlf:BatchDeleteTableVersions",
      "dlf:ListFunctions",
      "dlf:DeleteTable",
      "dlf:GetTableVersion",
      "dlf:AbortLock",
      "dlf:GetTable",
      "dlf:BatchDeleteTables",
      "dlf:RenameTable",
      "dlf:RefreshLock",
      "dlf:DeletePartition",
      "dlf:UnLock",
      "dlf:GetLock",
      "dlf:GetDatabase",
      "dlf:GetFunction",
      "dlf:BatchCreatePartitions",
      "dlf:ListPartitionNames",
      "dlf:RenamePartition",
      "dlf:CreateTable",
      "dlf:BatchCreateTables",
      "dlf:UpdateTableColumnStatistics",
      "dlf:ListTableNames",
      "dlf:UpdateDatabase",
      "dlf:GetTableColumnStatistics",
      "dlf:ListFunctionNames",
      "dlf:ListPartitionsByFilter",
      "dlf:GetPartitionColumnStatistics",
      "dlf:CreatePartition",
      "dlf:CreateDatabase",
      "dlf:DeleteTableColumnStatistics",
      "dlf:ListTableVersions",
      "dlf:BatchDeletePartitions",
      "dlf:ListCatalogs",
      "dlf:UpdateTable",
      "dlf:ListTables",
      "dlf:DeleteDatabase",
      "dlf:BatchGetTables",
      "dlf:DeleteFunction"
       ],
       "Resource": "*",
       "Effect": "Allow"
      }
      ]
      }
    4. 將自訂的權限原則,授權給建立的RAM角色。操作詳情,請參見管理RAM角色的許可權

Hologres的服務關聯角色(身份透傳)授權

MaxCompute通過外部資料源和外部項目訪問Hologres資料時,需要通過服務關聯角色打通Hologres的資料存取權限。建立服務關聯角色的方法如下。建立成功後,為防止越權訪問,此模式會在訪問時透傳使用者身份到Hologres鑒權,使用者需要加入MaxCompute外部項目並具備外部項目所映射的Hologres資料來源的許可權。

  1. 登入RAM控制台

  2. 在左側導覽列選擇身份管理 > 角色

  3. 角色頁面,單擊创建角色

  4. 创建角色頁面的右上方,單擊創建服務關聯角色

  5. 創建服務關聯角色頁面,選擇信任的雲服務aliyunserviceroleformaxcomputeidentitymgmt,單擊創建服務關聯角色

    若提示角色已經存在,說明已經授權過,忽略即可。

Paimon_DLF的服務關聯角色(身份透傳)授權

MaxCompute通過外部資料源和外部項目訪問DLF的資料,MaxCompute需要通過服務關聯角色打通DLF的資料相關許可權,建立服務關聯角色需要使用者佈建,方法如下。建立成功後,使用時為了不越權訪問,此模式會在訪問時透傳使用者身份到DLF鑒權,需要使用者加入MaxCompute外部項目並具備外部項目映射的DLF資料來源的許可權。

MaxCompute通過外部資料源和外部項目訪問DLF資料時,需要通過服務關聯角色打通DLF的資料存取權限。建立服務關聯角色的方法如下。建立成功後,為防止越權訪問,此模式會在訪問時透傳使用者身份到DLF鑒權,使用者需要加入MaxCompute外部項目並具備外部項目所映射的DLF資料來源的許可權。

  1. 登入RAM控制台

  2. 在左側導覽列選擇身份管理 > 角色

  3. 角色頁面,單擊创建角色

  4. 创建角色頁面的右上方,單擊創建服務關聯角色

  5. 創建服務關聯角色頁面,選擇信任的雲服務AliyunServiceRoleForMaxComputeLakehouse,單擊創建服務關聯角色

    若提示角色已經存在,說明已經授權過,忽略即可。