全部產品
Search
文件中心

Tablestore:跨帳號授權

更新時間:Jun 30, 2024

本文介紹不同帳號之間如何?Table Store和MaxCompute之間的無縫串連。

準備工作

跨雲帳號需要兩個阿里雲帳號,帳號A將存取權限授予帳號B,則運行MaxCompute時,帳號B可以訪問帳號A下的表資料。帳號基本資料如下:

說明

以下資訊僅為樣本,在操作時請替換為實際使用的資訊。

專案

Table Store

MaxCompute

阿里雲帳號名

帳號A

帳號B

UID

1234567890****

5678901234****

使用MaxCompute跨雲帳號訪問Table Store前,您需要完成以下準備工作:

  • MaxCompute產品詳情頁為帳號B開通MaxCompute服務,並建立工作空間。具體操作,請參見建立工作空間

  • 分別擷取帳號A和帳號B的AccessKey。具體操作,請參見擷取AccessKey

  • 使用帳號A建立可信實體為阿里雲帳號的RAM角色並設定信任策略內容。具體操作,請參見建立可信實體為阿里雲帳號的RAM角色修改RAM角色的信任策略

    說明

    策略內容中的5678901234****為帳號B的UID。

    本樣本中假設建立的RAM角色名稱為AliyunODPSRoleForOtherUser,其信任策略內容樣本如下,表示該RAM角色可以被帳號B下的MaxCompute服務扮演。

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": [
              "5678901234****@odps.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }
                            
  • 記錄帳號A的RAM角色AliyunODPSRoleForOtherUser的ARN(例如acs:ram::1234567890****:role/aliyunodpsroleforotheruser),用於後續建立外表時配置。fig_20220706_arn

  • 建立權限原則並為帳號A的RAM角色AliyunODPSRoleForOtherUser授權。具體操作,請參見建立自訂權限原則為RAM角色授權

    自訂權限原則樣本如下,表示RAM角色具有讀寫帳號A華東1(杭州)地區中名稱為cap1的執行個體及其下所有表的許可權。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "ots:*",
          "Resource": [
          "acs:ots:cn-hangzhou:1234567890****:instance/cap1",
          "acs:ots:cn-hangzhou:1234567890****:instance/cap1/table/*"
          ],
          "Condition": {}
        }
      ]
    }

    關於自訂許可權的更多資訊,請參見自訂RAM Policy

  • 在Table Store控制台建立執行個體和建立資料表。具體操作,請參見建立執行個體和資料表

    在本樣本中,建立的Table Store執行個體和資料表資訊如下:

    • 執行個體名稱:cap1

    • 資料表名稱:vehicle_track

    • 主鍵資訊:vid (integer),gt (integer)

    • 訪問網域名稱:https://cap1.cn-hangzhou.ots-internal.aliyuncs.com

      說明

      使用MaxCompute訪問Table Store時,建議使用Table Store的私網地址。

    • 確保執行個體網路類型配置為允許任意網路訪問

使用MaxCompute訪問Table Store

跨帳號訪問的操作與同帳號下的訪問相同,只是在建立外部表格時要使用角色ARN(即rolearn)。

帳號B通過MaxCompute建立外部表格,指定準備工作中建立的角色ARN來訪問Table Store。

CREATE EXTERNAL TABLE ads_log_ots_pt_external
(
vid bigint,
gt bigint,
longitude double,
latitude double,
distance double,
speed double,
oil_consumption double
)
STORED BY 'com.aliyun.odps.TableStoreStorageHandler'
WITH SERDEPROPERTIES (
'tablestore.columns.mapping'=':vid, :gt, longitude, latitude, distance, speed, oil_consumption',
'tablestore.table.name'='vehicle_track',
'odps.properties.rolearn'='acs:ram::1234567890****:role/aliyunodpsroleforotheruser'
)
LOCATION 'tablestore://cap1.cn-hangzhou.ots-internal.aliyuncs.com'
USING 'odps-udf-example.jar'