Todos os produtos
Search
Central de documentação

DataWorks:Associar uma função do RAM a um ambiente de desenvolvimento individual

Última atualização: Jun 27, 2026

A associação de uma função do RAM a um ambiente de desenvolvimento individual permite acessar outros serviços da Alibaba Cloud com credenciais de curta duração emitidas pelo Security Token Service (STS), em vez de codificar permanentemente um par de AccessKey. A rotação automática das credenciais reduz o risco de vazamentos.

Limitações

Cada ambiente de desenvolvimento individual aceita apenas uma função do RAM associada.

Antes de começar

Analise os cenários a seguir para definir a abordagem mais adequada ao seu ambiente:

Cenário

Abordagem recomendada

Observações

Uso de Notebook ou Python no DataWorks para acessar MaxCompute, Hologres, EMR Serverless Spark, Realtime Compute for Apache Flink ou Platform for AI (PAI)

Associe a função padrão do DataWorks

Não é necessário criar uma função do RAM

Ambiente de desenvolvimento individual configurado como público no workspace

Não associe uma função do RAM

Evita vazamentos acidentais de permissões; utilize um par de AccessKey diretamente no código

Acesso a serviços fora do escopo da função padrão

Associe uma função do RAM personalizada

Crie uma função do RAM cuja entidade confiável seja um serviço da Alibaba Cloud

Etapa 1: Associar uma função do RAM a um ambiente de desenvolvimento individual

Cenário 1: Associar a função padrão do DataWorks

A função padrão do DataWorks concede as permissões do proprietário do ambiente de desenvolvimento individual para acessar os seguintes serviços: MaxCompute, Hologres, EMR Serverless Spark, Realtime Compute for Apache Flink e Platform for AI (PAI). Não é necessário criar nenhuma função.

Após associar a função padrão, execute as operações abaixo sem configurar um par de AccessKey:

  • Use uma célula SQL do Notebook para acessar MaxCompute, Hologres, EMR Serverless Spark, Realtime Compute for Apache Flink ou PAI.

  • Use o SDK do MaxCompute para enviar uma tarefa a um projeto do MaxCompute no qual o proprietário do ambiente de desenvolvimento individual tenha permissões de execução.

image

Cenário 2: Não associar uma função do RAM

Se o ambiente de desenvolvimento individual estiver configurado como público no workspace, não associe uma função do RAM. Essa medida evita vazamentos acidentais de permissões. Ao criar ou reconfigurar o ambiente, defina RAM Role na seção Advanced Information como Do Not Associate Role e configure um par de AccessKey diretamente no código.

image

Etapa 2: Obter uma credencial de acesso temporária

Nota: Os três métodos abaixo dependem de um serviço local injetado automaticamente durante a criação do ambiente de desenvolvimento individual. Eles funcionam exclusivamente dentro desse ambiente. A execução deste código localmente ou em outro ambiente resultará em falha.

Escolha um dos métodos a seguir para obter uma credencial de acesso temporária da função do RAM associada ao seu ambiente de desenvolvimento individual.

Método 1: Usar a ferramenta Alibaba Cloud Credentials (recomendado)

A ferramenta Credentials chama o serviço local injetado para buscar uma credencial de acesso temporária e a rotaciona automaticamente.

Instale a ferramenta Credentials:

pip install alibabacloud_credentials

Use a ferramenta Credentials para obter as credenciais:

from alibabacloud_credentials.client import Client as CredClient
from alibabacloud_credentials.models import Config as CredConfig

credentialsConfig = CredConfig(
    type='credentials_uri'  # Fetches a temporary access credential via the injected URI.
                            # If no other credential source is configured in the default
                            # credential chain, omit this parameter.
)
credentialsClient = CredClient(credentialsConfig)

Para exemplos de SDK em outras linguagens, consulte Práticas recomendadas para usar credenciais de acesso em chamadas de API.

Método 2: Consultar o endpoint do serviço local

Execute o comando abaixo no terminal do seu ambiente de desenvolvimento individual:

# Retrieve a temporary access credential for the RAM role.
curl $ALIBABA_CLOUD_CREDENTIALS_URI

Uma resposta bem-sucedida tem o seguinte formato:

{
  "Code": "Success",
  "AccessKeyId": "STS.N*********7",
  "AccessKeySecret": "3***************d",
  "SecurityToken": "DFE32G*******",
  "Expiration": "2024-05-21T10:39:29Z"
}

Campo

Descrição

SecurityToken

Token temporário da função do RAM

Expiration

Horário de expiração da credencial em UTC

Método 3: Ler o arquivo de credenciais local

Leia o arquivo de credenciais em /mnt/.alibabacloud/credentials. O arquivo contém os mesmos campos da resposta apresentada no Método 2:

{
  "AccessKeyId": "STS.N*********7",
  "AccessKeySecret": "3***************d",
  "SecurityToken": "DFE32G*******",
  "Expiration": "2024-05-21T10:39:29Z"
}

Etapa 3: Acessar o MaxCompute usando a função do RAM

  1. Instale a ferramenta Credentials e o SDK do MaxCompute:

    # Install the Credentials tool.
    pip install alibabacloud_credentials
    # Install MaxCompute SDK.
    pip install odps
  2. Use a credencial de acesso temporária da função do RAM para listar tabelas em um projeto do MaxCompute:

    from alibabacloud_credentials import providers
    from odps.accounts import CredentialProviderAccount
    from odps import ODPS
    
    if __name__ == '__main__':
        account = CredentialProviderAccount(providers.DefaultCredentialsProvider())
        o = ODPS(
            account=account,
            project="<odps_project>",    # Replace with the name of the MaxCompute project to access.
            endpoint="<odps_endpoint>"   # Replace with the endpoint of the region where the project resides.
        )
    
        for t in o.list_tables():
            print(t)

    Substitua os placeholders a seguir:

    Placeholder

    Descrição

    <odps_project>

    Nome do projeto do MaxCompute a ser acessado

    <odps_endpoint>

    Endpoint da região onde o projeto está localizado

Próximos passos