Todos os produtos
Search
Central de documentação

Alibaba Cloud SDK:Manage access credentials

Última atualização: Jun 28, 2026

Configure as credenciais de autenticação do cliente Alibaba Cloud Python SDK V1.0 para fazer requisições de API.

O SDK oferece suporte a cinco tipos de credenciais. Escolha aquela que corresponde ao seu ambiente de implantação:

Tipo de credencial

Quando usar

Par de AccessKey

Desenvolvimento e testes locais com uma conta de usuário RAM

Credenciais STS

Necessidade de acesso de curta duração ou concessão de permissões temporárias a outros serviços

Credenciais de função RAM

Sua aplicação assume uma função RAM e precisa de renovação automática do token STS

Credenciais de função RAM do ECS

Seu código é executado em uma instância ECS com uma função RAM associada

Credenciais padrão

Desejo de que o SDK descubra credenciais automaticamente a partir de variáveis de ambiente

Nota

Nunca codifique credenciais diretamente no source code nem as envie para controle de versão. Armazene-as em variáveis de ambiente ou em um gerenciador de segredos.

Usar um par de AccessKey

Este método é ideal para desenvolvimento e testes locais durante a autenticação como usuário RAM. Armazene o AccessKey ID e o AccessKey secret em variáveis de ambiente e passe-os para AcsClient.

import os

from aliyunsdkcore.client import AcsClient
from aliyunsdkecs.request.v20140526.DescribeRegionsRequest import DescribeRegionsRequest

# Initialize the client.
client = AcsClient(
    os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),  # Get the AccessKey ID of the RAM user from an environment variable.
    os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),  # Get the AccessKey secret of the RAM user from an environment variable.
    '<region_id>'  # The region ID.
)

# Create an API request and set parameters.
request = DescribeRegionsRequest()

# Send the request.
response = client.do_action_with_exception(request)
print(str(response, encoding='utf-8'))

Usar credenciais STS

Recomendado quando você precisa de acesso temporário. O Security Token Service (STS) emite credenciais de segurança efêmeras — AccessKey ID, AccessKey secret e token de segurança — que expiram automaticamente.

import os

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.auth.credentials import StsTokenCredential
from aliyunsdkecs.request.v20140526.AcceptInquiredSystemEventRequest import AcceptInquiredSystemEventRequest

cred = StsTokenCredential(
    sts_access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),  # Obtain the AccessKey ID provided by STS from environment variables.
    sts_access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),  # Obtain the AccessKey secret provided by STS from environment variables.
    sts_token=os.environ.get('ALIBABA_CLOUD_SECURITY_TOKEN')  # Obtain the STS token provided by STS from environment variables.
)

client = AcsClient(
    region_id='<region_id>',
    credential=cred
)

request = AcceptInquiredSystemEventRequest()
request.set_accept_format('json')
response = client.do_action_with_exception(request)

print(str(response, encoding='utf-8'))

Usar credenciais de função RAM

Indicado para aplicações que precisam assumir uma função RAM. O cliente solicita e renova tokens STS automaticamente antes de cada chamada de API. Também é possível solicitar tokens STS manualmente e criar um cliente STS.

import os

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.auth.credentials import RamRoleArnCredential
from aliyunsdkecs.request.v20140526.DescribeRegionsRequest import DescribeRegionsRequest

cred = RamRoleArnCredential(
    sts_access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),  # Get the AccessKey ID of the RAM user from an environment variable.
    sts_access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),  # Get the AccessKey secret of the RAM user from an environment variable.
    role_arn='<ram_role_arn>',
    session_role_name='<session_role_name>'
)

client = AcsClient(
    region_id='<region_id>',
    credential=cred
)

request = DescribeRegionsRequest()
response = client.do_action_with_exception(request)
print(str(response, encoding='utf-8'))

Usar credenciais de função RAM do ECS

Utilize esta opção quando seu código for executado em uma instância ECS com uma função RAM associada. O SDK obtém credenciais de segurança temporárias automaticamente do endpoint de metadados da instância em http://100.100.100.200/latest/meta-data/ram/security-credentials/<role_name>. Nenhuma configuração de credencial é necessária no seu código.

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.auth.credentials import EcsRamRoleCredential
from aliyunsdkecs.request.v20140526.AcceptInquiredSystemEventRequest import AcceptInquiredSystemEventRequest

cred = EcsRamRoleCredential(
    role_name='<ram_role_name>'
)

client = AcsClient(
    region_id='<region_id>',
    credential=cred
)

request = AcceptInquiredSystemEventRequest()
request.set_accept_format('json')
response = client.do_action_with_exception(request)
print(str(response, encoding='utf-8'))

Usar a credencial padrão

Mais adequado para cenários em que se deseja a descoberta automática de credenciais pelo SDK. O sistema verifica as variáveis de ambiente ALIYUN_ACCESS_KEY_ID e ALIYUN_ACCESS_KEY_SECRET. Se ambas estiverem definidas e não vazias, o SDK as utiliza para criar uma credencial padrão.

from aliyunsdkcore.client import AcsClient
from aliyunsdkecs.request.v20140526.DescribeRegionsRequest import DescribeRegionsRequest

# Initialize the client.
client = AcsClient(
    region_id='<region_id>'  # The region ID.
)

# Create an API request and set parameters.
request = DescribeRegionsRequest()

# Send the request.
response = client.do_action_with_exception(request)
print(str(response, encoding='utf-8'))

Melhores práticas de segurança

  • Use variáveis de ambiente ou um gerenciador de segredos. Jamais codifique credenciais diretamente no source code ou as envie para um repositório.

  • Siga o princípio do menor privilégio. Conceda aos usuários RAM e funções RAM apenas as permissões estritamente necessárias.

  • Prefira credenciais de função RAM ou função RAM do ECS em produção. Ambos os tipos emitem tokens STS de curta duração e os renovam automaticamente, reduzindo o risco de exposição de credenciais.

  • Renove pares de AccessKey regularmente. Revogue quaisquer pares de AccessKey que não estejam mais em uso.

  • Utilize credenciais STS para acesso temporário. Ao conceder acesso a terceiros ou a processos efêmeros, emita credenciais STS com tempo de expiração apropriado em vez de compartilhar um par de AccessKey de longa duração.