A Alibaba Cloud CLI usa credenciais para autenticar chamadas às APIs de serviços em nuvem e gerenciar recursos. Este tópico descreve como escolher o tipo de credencial adequado ao seu caso de uso, além de explicar como configurar e gerenciar essas credenciais.
Selecione um tipo de credencial
A Alibaba Cloud CLI oferece suporte a diversos tipos de credencial. Escolha a opção que melhor atende à sua necessidade.
|
Tipo de credencial |
Caso de uso |
Suporta configuração não interativa |
Configuração |
|
OAuth (Recomendado) |
Faça login com uma conta Alibaba Cloud, usuário RAM ou SSO diretamente no navegador. Oferece suporte a MFA e passkeys. Elimina a necessidade de armazenar AccessKeys de longo prazo, garantindo maior segurança. |
Não |
|
|
EcsRamRole (Recomendado) |
Ao executar a CLI em uma instância ECS, obtém automaticamente credenciais de segurança temporárias da função RAM associada à instância. Dispensa a configuração ou armazenamento de AccessKey. |
Sim |
|
|
RamRoleArn (Recomendado) |
Assuma uma função RAM para operar recursos com a identidade dessa função. Ideal para elevação temporária de privilégios ou acesso entre contas. Por exemplo, um usuário RAM com permissões básicas pode assumir uma função com permissões de gerenciamento de recursos ou acessar recursos em diferentes contas Alibaba Cloud. Usa credenciais de segurança temporárias (STS token). |
Sim |
|
|
ChainableRamRoleArn |
Use uma cadeia de funções para assumir funções sequencialmente e permitir o acesso a recursos entre contas. |
Sim |
|
|
OIDC |
Autentica e assume uma função por meio de um ID token emitido por um provedor de identidade externo compatível com OIDC (OpenID Connect). Recomendado para pods ACK/ACS com RRSA (RAM Roles for Service Accounts) ativado. |
Sim |
|
|
CloudSSO |
Destinado a empresas com múltiplas contas que usam Cloud SSO e Resource Directory. Funciona com login via navegador e suporte a MFA, semelhante ao OAuth. |
Não |
|
|
External |
Chama um programa executável externo para obter dinamicamente uma credencial (AccessKey ou token de segurança temporário). Adequado para cenários com provedores de credenciais personalizados. |
Sim |
|
|
CredentialsURI |
Obtém uma credencial de segurança temporária (STS token) a partir de uma URI HTTP fornecida por você. Indicada para serviços de distribuição de credenciais auto-hospedados. |
Não |
|
|
StsToken |
Forneça manualmente uma credencial de segurança temporária (STS token). O token precisa ser atualizado manualmente após a expiração. |
Sim |
|
|
BearerToken |
Usa um bearer token para autenticar chamadas às APIs da Alibaba Cloud. Projetado para cenários automatizados, como pipelines de CI/CD. |
Sim |
|
|
AK (Não recomendado) |
Usa um AccessKey de longo prazo de uma conta Alibaba Cloud ou usuário RAM para autenticação direta. A credencial tem validade permanente e é relativamente menos segura. Caso precise usar este método, recomendamos revisar as Melhores práticas de AccessKey. |
Sim |
Ao usar o Cloud Shell, o sistema configura automaticamente uma credencial temporária. A identidade corresponde ao usuário RAM ou função atualmente conectado ao console, mantendo as mesmas permissões. Assim, você pode executar comandos da CLI sem configuração manual.
Configure credenciais
A Alibaba Cloud CLI permite configurar credenciais de duas formas: interativa e não interativa.
Configuração interativa
A configuração interativa usa um assistente de linha de comando que orienta o processo passo a passo. O sistema solicita cada parâmetro da credencial em sequência. Esta abordagem é ideal para ambientes de desenvolvimento local ou para configurações iniciais.
aliyun configure --mode <AuthenticateMode> --profile <ProfileName>
Exemplo: para criar um perfil de credencial EcsRamRole chamado EcsProfile:
aliyun configure --mode EcsRamRole --profile EcsProfile
Veja abaixo um exemplo de sessão interativa:
Configuring profile 'EcsProfile' in 'EcsRamRole' authenticate mode...
Ecs Ram Role []: ECSAdmin
Default Region Id []: cn-shanghai
Default Output Format [json]: json (Only support json)
Default Language [zh|en] en: en
Saving profile[EcsProfile] ...Done.
Configuração não interativa
Especifique os parâmetros de configuração da credencial diretamente via argumentos de linha de comando, sem entrada interativa. Mais indicado para cenários de automação, como scripts e pipelines de CI/CD.
Exemplo: para crie um perfil de credencial AK chamado AkProfile:
Bash
aliyun configure set \
--profile AkProfile \
--mode AK \
--access-key-id ************ \
--access-key-secret ************ \
--region "cn-shanghai"
PowerShell
aliyun configure set `
--profile AkProfile `
--mode AK `
--access-key-id ************ `
--access-key-secret ************ `
--region "cn-shanghai"
Para consultar os parâmetros suportados por cada tipo de credencial, acesse a página de configuração detalhada correspondente. Os parâmetros abaixo são comuns a todos os tipos:
|
Parâmetros comuns |
Descrição |
|
|
Nome do perfil. Se não especificado, o perfil ativo será usado. |
|
|
Tipo de credencial. Exemplos: |
|
|
ID da região padrão, como |
A tabela Selecione um tipo de credencial indica quais tipos aceitam configuração não interativa.
Você pode crie vários perfis para o mesmo tipo de credencial, desde que tenham nomes únicos. Por exemplo, crie os perfis AK ak-dev e ak-prod para separar os ambientes de desenvolvimento e produção.
Verifique a configuração da credencial
Após configurar a credencial, execute o comando abaixo para validar se ela funciona corretamente:
aliyun sts get-caller-identity
Se a configuração estiver correta, a saída será semelhante a uma das seguintes:
-
Quando a identidade autenticada for um usuário RAM:
{ "AccountId": "173305794806****", "Arn": "acs:ram::173305794806****:user/<user-name>", "IdentityType": "RAMUser", "PrincipalId": "20407046578681****", "RequestId": "D012C652-FF76-5101-81B3-45A1DDAC****", "UserId": "20407046578681****" } -
Quando a identidade autenticada for uma função RAM:
{ "AccountId": "191317683912****", "Arn": "acs:ram::191317683912****:assumed-role/<role-name>/<role-session-name>", "IdentityType": "AssumedRoleUser", "PrincipalId": "30004467717606****:<role-session-name>", "RequestId": "0FFADC33-EA49-5E2A-977F-0BA820D6****", "RoleId": "30004467717606****" }
Uma verificação bem-sucedida confirma apenas que a autenticação funcionou. Para gerencie recursos, anexe as políticas de permissão adequadas à identidade vinculada à credencial.
Gerencie credenciais
Use os subcomandos de aliyun configure para visualize, alternar, modifique e exclua perfis de credenciais.
Visualize configurações
Visualize lista de perfis e perfil ativo
Liste todas as credenciais configuradas e seus status na máquina atual. Use este comando para verifique informações resumidas dos perfis, como nomes e tipos de credencial, além de identificar o perfil ativo.
aliyun configure list
Confira um exemplo de saída abaixo. O asterisco (*) indica o perfil de credencial ativo. Esse perfil representa o conjunto padrão de credenciais e parâmetros (como região e idioma) usado pela CLI. A menos que você especifique outro perfil por meio do parâmetro --profile ou de uma variável de ambiente, todos os comandos adotarão este perfil.
Profile | Credential | Valid | Region | Language
--------- | ------------------ | ------- | ---------------- | --------
default | AK:***UyLX | Valid | cn-shanghai | en
OAuthProfile | OAuth:fiA5bnZkyw@CN | Valid | cn-hangzhou | en
EcsProfile * | EcsRamRole:ecs-role-name | Valid | cn-beijing | zh
Visualize detalhes do perfil
Execute o comando a seguir para consultar as informações detalhadas de um perfil de credencial específico:
aliyun configure get [--profile <ProfileName>] [<SETTING_NAME>...]
SETTING_NAME: Nome das configurações a visualize. Você pode especifique várias configurações simultaneamente. Se nenhum valor for informado, todas as informações do perfil serão exibidas. Caso a configuração especificada não exista, o comando não retornará saída.
Exemplo 1: Visualize os detalhes de um perfil chamado OAuthProfile:
aliyun configure get --profile OAuthProfile
Saída:
{
"name": "OAuthProfile",
"mode": "OAuth",
"access_key_id": "STS.9jYc5erFPDLrwNGWc7Sob2ZRHenhHfz7pw9*************",
"access_key_secret": "3AcNFz37QykuHEwgzWramXGZaCrM1mDHpG1s7v******",
"sts_token": "CAIS5gJ1q6Ft5DqyfSjI2KnsKI/Rn5lx846Zd******",
"region_id": "cn-hangzhou",
"output_format": "json",
"language": "zh",
"sts_expiration": 1776751437,
"oauth_access_token": "eyJhbGciOiJSUzI1NiIsI*******",
"oauth_refresh_token": "ALGuHPAmSWxR5ynSsoRXhWpUtsxXHcLpGLnZqVvVXZDkjcbMsMasoshv1MnyRhkTq******",
"oauth_access_token_expire": 1776751436,
"oauth_site_type": "CN"
}
Exemplo 2: Visualize apenas o nome do perfil, o tipo de credencial e o idioma padrão do OAuthProfile:
aliyun configure get --profile OAuthProfile profile mode language
Saída:
profile=OAuthProfile
mode=OAuth
language=en
Localização do arquivo de configuração
Para visualize ou fazer backup manual do arquivo de configuração de credenciais, localize-o nos seguintes caminhos:
|
Sistema operacional |
Caminho de armazenamento |
|
Linux / macOS |
|
|
Windows |
|
Alternar perfis
Alternar o perfil ativo
Defina um perfil específico como o novo perfil ativo. A Alibaba Cloud CLI suporta o comando aliyun configure switch desde a versão v3.0.214. Após a alteração, todas as requisições subsequentes que não especificarem explicitamente uma credencial pelo parâmetro --profile usarão automaticamente este perfil.
aliyun configure switch --profile <ProfileName>
Execute aliyun configure list para confirme o nome do perfil de destino antes de alternar.
Exemplo: Alternar para um perfil chamado prod:
aliyun configure switch --profile prod
Após a troca, execute aliyun configure list para confirme que o perfil de destino está marcado com *.
Usar um perfil para um único comando
Use o parâmetro --profile em um comando isolado para especifique temporariamente um perfil. Essa ação não altera o perfil ativo.
Exemplo: Use o perfil prod para consultar a lista de regiões do ECS:
aliyun ecs describe-regions --profile prod
Modifique um perfil
Use aliyun configure set para alterar valores de parâmetros de um perfil existente. Basta especifique os parâmetros a modifique; os demais permanecerão inalterados.
aliyun configure set --profile <ProfileName> --<ParameterName> <NewValue>
Parâmetros comuns:
--region: Região padrão--language: Idioma de saída (zh / en)
Para obter a lista completa de parâmetros, consulte a documentação de cada tipo de credencial.
Exemplo: Modifique a região padrão do perfil default:
aliyun configure set --profile default --region cn-shanghai
Ao modifique um perfil, ele é automaticamente definido como o perfil ativo.
Exclua um perfil
Execute o comando abaixo para remover um perfil específico:
aliyun configure delete --profile <ProfileName>
Exemplo: Exclua um perfil chamado dev:
aliyun configure delete --profile dev
A operação de exclusão é irreversível. Se você exclua o perfil ativo, o primeiro perfil da lista assumirá automaticamente essa posição.
Após a exclusão, execute o comando aliyun configure list para confirme que o perfil foi removido da lista.
Perguntas frequentes
O que fazer se eu insira informações incorretas durante a configuração interativa?
Use aliyun configure set para corrigir o campo correspondente. Não é necessário refazer toda a configuração do zero. Exemplo:
aliyun configure set --profile <ProfileName> --<ParameterName> <CorrectValue>
Um comando da CLI não está usando o perfil ativo
A CLI determina o perfil efetivo com base na seguinte ordem de prioridade (da maior para a menor). Prioridades mais altas sobrescrevem as mais baixas:
Parâmetro de linha de comando
--profile: Aplica-se apenas ao comando atual e possui a maior precedência.Variável de ambiente
ALIBABA_CLOUD_PROFILE: Afeta todos os comandos na sessão atual do terminal.Perfil ativo: Perfil marcado com
*na saída do comandoaliyun configure list. Esta configuração é persistente.
Se o resultado de um comando não corresponder ao esperado, verifique se o parâmetro --profile ou a variável de ambiente ALIBABA_CLOUD_PROFILE estão definidos, pois eles sobrescrevem o perfil ativo. Execute echo $ALIBABA_CLOUD_PROFILE para verifique se a variável de ambiente está configurada.
Erro: load current configuration failed unknown profile default
Mensagem de erro completa:
ERROR: load current configuration failed unknown profile default, run configure to check
Causa:
Todos os perfis de credenciais foram excluídos, impedindo o funcionamento correto da Alibaba Cloud CLI.
Solução:
Exclua manualmente o arquivo config.json e execute o comando aliyun configure para reconfigurar as credenciais. Para saber onde encontrar o arquivo, consulte Localização do arquivo de configuração. Por exemplo, no Linux ou macOS, execute o seguinte comando para exclua o arquivo:
rm ~/.aliyun/config.json