Todos os produtos
Search
Central de documentação

DataWorks:Configure uma função do RAM para um ambiente de desenvolvimento individual

Última atualização: Aug 24, 2026

Ao associar uma função do RAM da instância à sua instância, você utiliza uma credencial temporária do STS para acessar outros recursos da cloud em vez de usar um AccessKey permanente. Essa prática reduz o risco de vazamento de credenciais e aumenta a segurança. Este tópico descreve como obter uma credencial temporária do STS usando uma função do RAM da instância.

Informações básicas

Uma função do RAM da instância é uma função do RAM cuja entidade confiável é um service da Alibaba Cloud. Isso permite que o service da cloud assuma a função para garantir acesso seguro entre services. Para mais informações sobre funções do RAM, consulte What is a RAM role?.

O uso de uma função do RAM da instância para obter uma credencial de acesso temporária destinada à autenticação e ao controle de acesso oferece um benefício principal:

  • Segurança aprimorada

    Não é necessário gerenciar credenciais na instância. A utilização de uma credencial temporária do STS no lugar de um AccessKey permanente diminui o risco de vazamento de credenciais.

Limites

É possível associar apenas uma função do RAM a uma instância de ambiente de desenvolvimento individual.

Etapa 1: Configurar a função do RAM

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

Ao utilizar Notebook ou Python para desenvolvimento, você acessa alguns products da cloud sem precisar fornecer um AccessKey ID e um AccessKey Secret.

A função padrão do DataWorks concede permissões de acesso apenas ao MaxCompute, Hologres, EMR Serverless Spark, Realtime Compute for Apache Flink e Platform for AI (PAI). Quando você usa uma credencial de acesso temporária emitida por essa função para acessar esses services, obtém as mesmas permissões do proprietário do ambiente de desenvolvimento individual.

Associar a função padrão do DataWorks à sua instância fornece uma credencial de acesso temporária que permite o acesso a recursos básicos de desenvolvimento sem escalonamento de privilégios, eliminando a necessidade de criar uma função personalizada do RAM.

Após associar a função padrão do DataWorks, não é necessário configurar um AccessKey nos seguintes cenários:

  • Acesse o MaxCompute, Hologres, EMR Serverless Spark, Realtime Compute for Apache Flink ou Platform for AI (PAI) utilizando uma célula SQL do Notebook.

  • Envie tarefas para um projeto do MaxCompute onde o proprietário da instância tenha permissões de execução, utilizando o ODPS SDK.

Na seção Advanced Information, localize a configuração Instance RAM role e selecione DataWorks default role.

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

Se sua instância estiver visível publicamente no workspace, não associe uma função do RAM a ela para evitar vazamento de permissões. Ao criar ou modificar uma instância, defina a opção Instance RAM role na seção Advanced Information como Do not associate role.

Caso nenhuma função do RAM esteja associada, você acessa os products da cloud configurando o AccessKey ID e o AccessKey Secret diretamente no seu código.

Etapa 2: Obter uma credencial de acesso temporária

Depois de associar uma função do RAM a uma instância de ambiente de desenvolvimento individual, obtenha uma credencial de acesso temporária de uma das seguintes maneiras.

Método 1: Usar a ferramenta Credentials

A ferramenta Credentials chama um service local injetado automaticamente na instância durante a criação. Esse service busca uma credencial temporária do STS e realiza a rotação automática dela.

Para obter a credencial da função do RAM da instância com a ferramenta Credentials, execute o comando abaixo para instalar a ferramenta. O exemplo a seguir utiliza Python.

pip install alibabacloud_credentials

O código a seguir apresenta um exemplo de uso da ferramenta Credentials. Para exemplos de SDK em outras linguagens, consulte Best practices for using an access credential to call API operations.

from alibabacloud_credentials.client import Client as CredClient
from alibabacloud_credentials.models import Config as CredConfig
credentialsConfig = CredConfig(
	type='credentials_uri'   # Optional. If you have not configured other providers in the default credential chain, you do not need to explicitly specify this parameter. The Credentials SDK automatically obtains a temporary credential by using the URI.
)
credentialsClient = CredClient(credentialsConfig)

Método 2: Consultar o endpoint do service local

No terminal da sua instância de ambiente de desenvolvimento individual, execute o comando abaixo para consultar diretamente o service local injetado e obter as credenciais.

# Obtain the temporary access credential for the instance RAM role.
curl $ALIBABA_CLOUD_CREDENTIALS_URI

O código a seguir mostra um exemplo de resposta. Os parâmetros são descritos abaixo:

  • SecurityToken: Token temporário da função do RAM da instância.

  • Expiration: Tempo de expiração da credencial de acesso temporária.

{
	"Code": "Success",
	"AccessKeyId": "************",
	"AccessKeySecret": "************",
	"SecurityToken": "DFE32G*******",
	"Expiration": "2024-05-21T10:39:29Z"
}

Método 3: Ler o arquivo de credenciais local

Acesse um arquivo em um caminho específico dentro da instância de ambiente de desenvolvimento individual para obter a credencial de acesso temporária da função do RAM da instância. O arquivo está localizado em /mnt/.alibabacloud/credentials e contém o seguinte conteúdo:

{
	"AccessKeyId": "*********",
	"AccessKeySecret": "***************",
	"SecurityToken": "DFE32G*******",
	"Expiration": "2024-05-21T10:39:29Z"
}

Etapa 3: Acessar o MaxCompute

  1. Execute os comandos abaixo para instalar a ferramenta Credentials e o ODPS SDK.

    # Install the Credentials tool.
    pip install alibabacloud_credentials
    # Install the ODPS SDK.
    pip install odps
  2. Utilize a credencial temporária da função do RAM da instância para acessar o ODPS e recuperar a lista de tabelas de um projeto especificado.

    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 your project name.
                 endpoint="{odps_endpoint}"# Replace with the endpoint of the region where your project is located.
                )
        for t in o.list_tables():
            print(t)