Todos os produtos
Search
Central de documentação

Tablestore:Autorização entre contas

Última atualização: Jul 03, 2026

Este tópico descreve como conectar o Tablestore e o MaxCompute em diferentes contas da Alibaba Cloud.

Pré-requisitos

O acesso entre contas exige duas contas da Alibaba Cloud. Neste guia, a Conta A concede permissões de acesso à Conta B, permitindo que a Conta B use o MaxCompute para acessar os dados do Tablestore da Conta A. As informações básicas das contas são:

Nota

Substitua esses valores pelas suas informações reais.

Item

Tablestore

MaxCompute

Nome da conta Alibaba Cloud

Conta A

Conta B

UID

1234567890****

5678901234****

Antes de usar o MaxCompute para acessar o Tablestore entre contas, conclua as tarefas a seguir:

  • Na página de detalhes do produto MaxCompute, ative o MaxCompute para a Conta B e crie um workspace. Para mais informações, consulte Criar um workspace.

  • Obtenha os pares de AccessKey da Conta A e da Conta B. Para mais informações, consulte Obter um par de AccessKey.

  • Na Conta A, crie uma função do Resource Access Management (RAM) para uma conta da Alibaba Cloud confiável e configure a política de confiança correspondente. Para mais informações, consulte Criar uma função RAM para uma conta da Alibaba Cloud e Modificar a política de confiança de uma função RAM.

    Nota

    Na política, 5678901234**** é o UID da Conta B.

    Neste exemplo, a função RAM chama-se aliyunodpsroleforotheruser. A política de confiança de exemplo abaixo permite que o serviço MaxCompute na Conta B assuma essa função RAM.

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": [
              "5678901234****@odps.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }
                            
  • Anote o ARN da função RAM aliyunodpsroleforotheruser da Conta A (por exemplo, acs:ram::1234567890**:role/aliyunodpsroleforotheruser). Esse ARN é necessário para criar a tabela externa. Após criar a função, copie o ARN na seção informações básicas** da página de detalhes da função RAM. O formato do ARN é acs:ram::UID_da_Conta_A:role/aliyunodpsroleforotheruser.

  • Crie uma política de permissão personalizada e anexe-a à função RAM aliyunodpsroleforotheruser na Conta A. Para mais informações, consulte Criar uma política personalizada e Gerenciar permissões de uma função RAM.

    A política de permissão de exemplo abaixo concede à função RAM permissões de leitura e gravação na instância do Tablestore chamada cap1 e em todas as tabelas de dados associadas na região China (Hangzhou).

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

    Para mais informações sobre permissões personalizadas, consulte Política RAM personalizada.

  • No console do Tablestore, crie uma instância e uma tabela de dados. Para mais informações, consulte Criar instância e Criar uma tabela de dados.

    Neste exemplo, a instância do Tablestore e a tabela de dados usam a configuração a seguir:

    • Nome da instância: cap1

    • Nome da tabela de dados: vehicle_track

    • Chaves primárias: vid (inteiro), gt (inteiro)

    • Endpoint: https://cap1.cn-hangzhou.ots-internal.aliyuncs.com

      Nota

      Use o endpoint privado da instância do Tablestore para acesso a partir do MaxCompute.

    • Verifique se o tipo de rede da instância está definido como Any Network.

Usar o MaxCompute para acessar o Tablestore

O procedimento de acesso entre contas assemelha-se ao acesso na mesma conta, mas exige a especificação do ARN da função durante a criação da tabela externa.

A Conta B usa o MaxCompute para criar uma tabela externa e especifica o ARN da função descrito na seção Pré-requisitos para acessar o Tablestore.

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'