Todos os produtos
Search
Central de documentação

MaxCompute:Autorização para fontes de dados externas

Última atualização: Sep 24, 2026

O MaxCompute integra-se ao RAM e ao STS para permitir acesso seguro a fontes de dados externas. Este tópico descreve os métodos de autorização que utilizam RAM e STS para diferentes cenários.

OSS/Tablestore: autorização por função RAM

Para que uma tabela externa do MaxCompute acesse dados no OSS ou no Tablestore, o proprietário precisa associar uma função RAM com as permissões de acesso necessárias à tabela externa. Após a associação, o proprietário pode conceder permissões aos usuários que precisam acessar essa tabela externa.

Escolha um método de autorização de acordo com seus requisitos de negócio. Use a autorização personalizada para um controle de permissões mais granular.

Autorização na mesma conta

Quando o MaxCompute e o OSS/Tablestore pertencem à mesma conta da Alibaba Cloud, o MaxCompute oferece suporte à autorização com um clique e à autorização personalizada.

  • Autorização com um clique: Após fazer login na sua conta da Alibaba Cloud, clique aqui para concluir a autorização com um clique. Esse método cria por padrão uma função chamada AliyunODPSDefaultRole. Essa função tem permissões amplas e é adequada para testes.

  • Autorização personalizada: Crie uma nova função no RAM console e configure políticas de acesso e uma política de confiança adequadas para ela. Esse método oferece controle granular de permissões. Execute as seguintes etapas:

    1. Crie uma função RAM.

      Faça login no RAM console e crie uma função RAM, como test-admin. Para mais informações, consulte Criar uma função RAM para uma conta Alibaba Cloud confiável.

    2. Modifique a política de confiança da função RAM.

      1. Faça login no RAM console.

      2. No painel de navegação à esquerda, selecione Identities > Roles.

      3. Na página Roles, clique em Role Name da função desejada para acessar a página de detalhes da função.

      4. Na aba Trust Policy, clique em Edit Trust Policy e, na página Edit Trust Policy, selecione a aba JSON Editor.

        Configure a seguinte política:

        {
         "Statement": [
         {
         "Action": "sts:AssumeRole",
         "Effect": "Allow",
         "Principal": {
         "Service": [
         "odps.aliyuncs.com"
         ]
         }
         }
         ],
         "Version": "1"
        }
      5. Após concluir, clique em OK.

    3. Crie uma política de acesso.

      Na página Policies do RAM console, crie uma política de acesso personalizada. Por exemplo, você pode nomeá-la AliyunODPSRolePolicy.

      As políticas a seguir fornecem permissões comuns. Personalize-as conforme necessário. Para mais informações, consulte Criar uma política de acesso personalizada.

      OSS access policy

      {
      "Version": "1",
      "Statement": [
      {
       "Action": [
              "oss:ListBuckets",
              "oss:GetObject",
              "oss:ListObjects",
              "oss:PutObject",
              "oss:DeleteObject",
              "oss:AbortMultipartUpload",
              "oss:ListParts",
              "oss:GetBucketInfo",
              "oss:PostDataLakeStorageFileOperation",
              "oss:PostDataLakeStorageAdminOperation"
       ],
       "Resource": "*",
       "Effect": "Allow"
      }
      ]
      }

      Tablestore access policy

      {
      "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. Associe a política de acesso personalizada à nova função RAM.

      1. Faça login no RAM console.

      2. No painel de navegação à esquerda, selecione Identities > Roles.

      3. Na página Roles, clique em Role Name da função desejada para acessar a página de detalhes da função.

      4. Na aba Manage Permissions, clique em Create Authorization. No painel Create Authorization exibido, selecione as políticas a conceder à função e clique em OK.

        Para mais informações, consulte Gerenciar as permissões de uma função RAM.

Autorização entre contas

Se o MaxCompute e o OSS/Tablestore pertencerem a contas diferentes da Alibaba Cloud, somente a autorização personalizada é compatível.

O proprietário da conta da Alibaba Cloud que detém o OSS ou o Tablestore deve criar uma função no RAM console e configurar suas políticas de acesso e de confiança da seguinte forma:

  1. Crie uma função RAM.

    Faça login no RAM console e crie uma função RAM. Por exemplo, uma função chamada test-admin. Para mais informações sobre como criar uma função, consulte Criar uma função RAM para uma conta Alibaba Cloud confiável.

  2. Modifique a política de confiança da função RAM.

    1. Faça login no RAM console.

    2. No painel de navegação à esquerda, selecione Identities > Roles.

    3. Na página Roles, clique em Role Name da função desejada para acessar a página de detalhes da função.

    4. Na aba Trust Policy, clique em Edit Trust Policy e, na página Edit Trust Policy, selecione a aba JSON Editor.

      Configure a seguinte política. Substitua <MaxCompute_owner_account_ID> pelo ID da conta da Alibaba Cloud proprietária do projeto MaxCompute.

      {
      "Statement": [
      {
       "Action": "sts:AssumeRole",
       "Effect": "Allow",
       "Principal": {
       "Service": [
       "<MaxCompute_owner_account_ID>@odps.aliyuncs.com"
       ]
       }
      }
      ],
      "Version": "1"
      }
    5. Após concluir, clique em OK.

  3. Na página Policies do RAM console, crie uma política de acesso personalizada. Por exemplo, você pode nomeá-la AliyunODPSRolePolicy.

    As políticas a seguir fornecem permissões comuns. Personalize-as conforme necessário. Para mais informações, consulte Criar uma política de acesso personalizada.

    OSS access policy

    {
    "Version": "1",
    "Statement": [
    {
     "Action": [
            "oss:ListBuckets",
            "oss:GetObject",
            "oss:ListObjects",
            "oss:PutObject",
            "oss:DeleteObject",
            "oss:AbortMultipartUpload",
            "oss:ListParts",
            "oss:GetBucketInfo",
            "oss:PostDataLakeStorageFileOperation",
            "oss:PostDataLakeStorageAdminOperation"
     ],
     "Resource": "*",
     "Effect": "Allow"
    }
    ]
    }

    Tablestore access policy

    {
    "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. Associe a política de acesso personalizada à nova função RAM.

    1. Faça login no RAM console.

    2. No painel de navegação à esquerda, selecione Identities > Roles.

    3. Na página Roles, clique em Role Name da função desejada para acessar a página de detalhes da função.

    4. Na aba Manage Permissions, clique em Create Authorization. No painel Create Authorization exibido, selecione as políticas a conceder à função e clique em OK.

      Para mais informações, consulte Gerenciar as permissões de uma função RAM.

Hologres: autorização de função RAM

Para permitir que uma tabela externa do MaxCompute acesse dados no Hologres diretamente, o proprietário da tabela deve associar uma função RAM com as permissões de acesso a dados do Hologres necessárias à tabela externa. Após associar a função, o proprietário pode conceder permissões aos usuários que precisam acessar essa tabela externa. Escolha um método de autorização de acordo com seus requisitos de negócio.

Autorização entre contas da mesma titularidade

Quando MaxCompute e Hologres pertencem à mesma conta do Alibaba Cloud, conceda as permissões conforme descrito a seguir:

  1. Crie uma função RAM

    Crie uma função RAM para obter seu Alibaba Cloud Resource Name (ARN). O ARN é necessário para a autenticação STS ao criar a tabela externa. Selecione um tipo de entidade confiável de acordo com seus requisitos de negócio. Neste exemplo, o tipo de entidade confiável é uma conta do Alibaba Cloud.

    • Alibaba Cloud account

      Um usuário RAM de uma conta do Alibaba Cloud pode assumir uma função RAM para acessar recursos cloud. Para mais informações, consulte Create a RAM role for a trusted Alibaba Cloud account.

    • Identity provider

      Configure o single sign-on (SSO) para permitir que usuários do sistema de identidade corporativa façam logon no console do Alibaba Cloud. Isso atende aos requisitos de logon e autenticação unificados de usuários. Para mais informações, consulte Create a RAM role for a trusted identity provider.

    Execute as seguintes etapas:

    1. Faça login no RAM console.

    2. Na barra de navegação à esquerda, selecione Identities > Roles.

    3. Na página Roles, clique em Create Role.

  2. Modifique a política de confiança

    1. Na página Roles, clique no Role Name desejado para acessar a página de detalhes da função.

    2. Na aba Trust Policy, clique em Edit Trust Policy e, na página Edit Trust Policy, selecione a aba JSON Editor.

    3. Modifique a política de confiança conforme os exemplos a seguir.

      O conteúdo da configuração da política de confiança depende do tipo de entidade confiável selecionado. Na política, <UID> é o ID da conta do Alibaba Cloud. Obtenha o ID na página User Information.

      Trusted entity: Alibaba Cloud account

      {
       "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"
      }

      Trusted entity: Identity provider

      {
       "Statement": [
       {
       "Action": "sts:AssumeRole",
       "Condition": {
       "StringEquals": {
       "saml:recipient": "https://signin.alibabacloud.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. Adicione a função RAM a uma instância do Hologres e conceda permissões

    A função RAM requer permissões de desenvolvedor na instância do Hologres para acessar recursos dentro do seu escopo de autorização.

    Por padrão, funções RAM não podem visualizar nem gerenciar instâncias no console de gerenciamento do Hologres. O proprietário da conta do Alibaba Cloud deve conceder as permissões necessárias antes de prosseguir.

    Adicione a função RAM a uma instância do Hologres

    Hologres management console

    1. Faça logon no Hologres management console. No canto superior esquerdo, selecione uma região.

    2. No painel de navegação à esquerda, clique em Instances.

    3. Na página Instances, clique no nome da instância desejada.

    4. Na página de detalhes da instância, no painel de navegação à esquerda, clique em Account Management.

    5. Na página Users, clique em Add User.

    6. Na caixa de diálogo Add User, configure as definições e clique em OK.

      • Em Role, selecione a função RAM criada na Etapa 1.

      • Em Member Role, selecione Normal User.

    7. Na página Users, no painel de navegação à esquerda, clique em DB authorization.

    8. Na página DB authorization, clique em Create Database.

    9. Na caixa de diálogo Create Database, configure as definições e clique em OK.

      Em Policies, selecione SPM.

    10. Na página DB authorization, localize o banco de dados desejado e clique em Authorize User na coluna Actions.

    11. No canto superior direito, clique em Create Authorization. Na caixa de diálogo Create Authorization, configure User e User Group.

      • Users: selecione o usuário RAM a configurar.

      • Em Groups, selecione Developer.

    RAM console

    Anexe a política de acesso AliyunODPSRolePolicy à nova função RAM.

    1. Faça login no RAM console.

    2. Na barra de navegação à esquerda, selecione Identities > Users.

    3. Na página Users, clique no User Logon Name/Display Name desejado para acessar a página de detalhes do usuário.

    4. Na página de detalhes do usuário, clique na aba Manage Permissions.

    5. Na aba Manage Permissions, selecione Individual e clique em Grant Permission.

    6. No painel Grant Permission, selecione a política a conceder ao usuário e clique em OK.

      Em Access Policy, selecione AliyunRAMReadOnlyAccess.

      Para mais informações, consulte Grant permissions to a RAM user.

    SQL

    Para as instruções SQL necessárias, consulte Permission model.

    Nota

    O Hologres também suporta autorização por meio de uma service-linked role. Para mais informações, consulte Service-linked role authorization for Hologres (identity passthrough).

Autorização entre contas de titularidades distintas

Quando MaxCompute e Hologres pertencem a contas do Alibaba Cloud diferentes, conceda as permissões conforme descrito a seguir:

  1. Crie uma função RAM

    Crie uma função RAM para obter seu ARN. O ARN é necessário para a autenticação STS ao criar a tabela externa. Selecione um tipo de entidade confiável de acordo com seus requisitos de negócio. Neste exemplo, o tipo de entidade confiável é uma conta do Alibaba Cloud.

    • Alibaba Cloud account

      Um usuário RAM de uma conta do Alibaba Cloud pode assumir uma função RAM para acessar recursos cloud. Para mais informações, consulte Create a RAM role for a trusted Alibaba Cloud account.

    • Identity provider

      Configure o SSO para permitir que usuários do sistema de identidade corporativa façam logon no console do Alibaba Cloud. Isso atende aos requisitos de logon e autenticação unificados de usuários. Para mais informações, consulte Create a RAM role for a trusted identity provider.

    Execute as seguintes etapas:

    1. Faça login no RAM console.

    2. Na barra de navegação à esquerda, selecione Identities > Roles.

    3. Na página Roles, clique em Create Role.

  2. Modifique a política de confiança

    1. Na página Roles, clique no Role Name desejado para acessar a página de detalhes da função.

    2. Na aba Trust Policy, clique em Edit Trust Policy e, na página Edit Trust Policy, selecione a aba JSON Editor.

    3. Modifique a política de confiança conforme os exemplos a seguir.

      O conteúdo da configuração da política de confiança depende do tipo de entidade confiável selecionado. Nesta política, <UID> representa o ID da conta do Alibaba Cloud, que pode ser encontrado na página User Information.

      Trusted entity: Alibaba Cloud account

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

      Trusted entity: Identity provider

      {
       "Statement": [
       {
       "Action": "sts:AssumeRole",
       "Condition": {
       "StringEquals": {
       "saml:recipient": "https://signin.alibabacloud.com/saml-role/sso"
       }
       },
       "Effect": "Allow",
       "Principal": {
       "Federated": [
       "acs:ram::<MaxCompute_owner_account_ID>:saml-provider/IDP"
       ]
       }
       },
       {
       "Action": "sts:AssumeRole",
       "Effect": "Allow",
       "Principal": {
       "Service": [
       "<MaxCompute_owner_account_ID>@odps.aliyuncs.com"
       ]
       }
       }
       ],
       "Version": "1"
      }
  3. Adicione a função RAM a uma instância do Hologres e conceda permissões

    A função RAM requer permissões de desenvolvedor na instância do Hologres para acessar recursos dentro do seu escopo de autorização.

    Por padrão, funções RAM não podem visualizar nem gerenciar instâncias no console de gerenciamento do Hologres. O proprietário da conta do Alibaba Cloud deve conceder as permissões necessárias antes de prosseguir.

    Adicione a função RAM a uma instância do Hologres

    Hologres management console

    1. Faça logon no Hologres management console. No canto superior esquerdo, selecione uma região.

    2. No painel de navegação à esquerda, clique em Instances.

    3. Na página Instances, clique no nome da instância desejada.

    4. Na página de detalhes da instância, no painel de navegação à esquerda, clique em Account Management.

    5. Na página Users, clique em Add User.

    6. Na caixa de diálogo Add User, configure as definições e clique em OK.

      • Em Role, selecione a função RAM criada na Etapa 1.

      • Em Member Role, selecione Normal User.

    7. Na página Users, no painel de navegação à esquerda, clique em DB authorization.

    8. Na página DB authorization, clique em Create Database.

    9. Na caixa de diálogo Create Database, configure as definições e clique em OK.

      Em Policies, selecione SPM.

    10. Na página DB authorization, localize o banco de dados desejado e clique em Authorize User na coluna Actions.

    11. No canto superior direito, clique em Create Authorization. Na caixa de diálogo Create Authorization, configure User e User Group.

      • Users: selecione o usuário RAM a configurar.

      • Em Groups, selecione Developer.

    RAM console

    Anexe a política de acesso AliyunODPSRolePolicy à nova função RAM.

    1. Faça login no RAM console.

    2. Na barra de navegação à esquerda, selecione Identities > Users.

    3. Na página Users, clique no User Logon Name/Display Name desejado para acessar a página de detalhes do usuário.

    4. Na página de detalhes do usuário, clique na aba Manage Permissions.

    5. Na aba Manage Permissions, selecione Individual e clique em Grant Permission.

    6. No painel Grant Permission, selecione a política a conceder ao usuário e clique em OK.

      Em Access Policy, selecione AliyunRAMReadOnlyAccess.

      Para mais informações, consulte Grant permissions to a RAM user.

    SQL

    Para as instruções

    Hologres: Função vinculada ao service (passagem de identidade)

    Quando o MaxCompute acessa dados no Hologres por meio de uma fonte de dados externa e de um projeto externo, é necessário usar uma função vinculada ao service para conceder as permissões de acesso necessárias ao Hologres. Após criar a função, esse modo utiliza a passagem de identidade para autorização, repassando a identidade do usuário ao Hologres para autenticação e prevenindo acessos não autorizados. Para usar esse recurso, o usuário deve ser membro do projeto externo do MaxCompute e ter permissões na fonte de dados do Hologres mapeada para o projeto externo.

    1. Faça login no RAM console.

    2. No painel de navegação à esquerda, selecione Identities > Roles.

    3. Na página Roles, clique em Create Role.

    4. No canto superior direito da página Create Role, clique em Create Service Linked Role.

    5. Na página Create Service Linked Role, em Select Service, selecione aliyunserviceroleformaxcomputeidentitymgmt e clique em Create Service Linked Role.

      Se uma mensagem indicar que a função já existe, ela já foi autorizada. Ignore a mensagem.

    Paimon e DLF: Função vinculada ao service (passagem de identidade)

    Quando o MaxCompute acessa dados no DLF por meio de uma fonte de dados externa e de um projeto externo, é necessário usar uma função vinculada ao service para conceder as permissões de acesso necessárias ao DLF. Após criar a função, esse modo utiliza a passagem de identidade para autorização, repassando a identidade do usuário ao DLF para autenticação e prevenindo acessos não autorizados. Para usar esse recurso, o usuário deve ser membro do projeto externo do MaxCompute e ter permissões na fonte de dados do DLF mapeada para o projeto externo.

    1. Faça login no RAM console.

    2. No painel de navegação à esquerda, selecione Identities > Roles.

    3. Na página Roles, clique em Create Role.

    4. No canto superior direito da página Create Role, clique em Create Service Linked Role.

    5. Na página Create Service Linked Role, em Select Service, selecione AliyunServiceRoleForMaxComputeLakehouse e clique em Create Service Linked Role.

      Se uma mensagem indicar que a função já existe, ela já foi autorizada. Ignore a mensagem.