A Alibaba Cloud CLI oferece suporte a cinco métodos avançados de credenciais — OIDC, CloudSSO, External, CredentialsURI e BearerToken — que eliminam a necessidade de armazenar AccessKeys de longo prazo localmente. Este tópico aborda os cenários aplicáveis e as etapas de configuração de cada método.
Requisitos de versão
A Alibaba Cloud CLI requer a versão 3.3.0 ou posterior. Execute o comando aliyun version para verificar sua versão atual. Se for anterior à 3.3.0, consulte Instalar ou atualizar a CLI para atualizá-la.
O método BearerToken requer a versão 3.3.16 ou posterior da Alibaba Cloud CLI.
OIDC
O método OIDC autentica assumindo uma função do RAM com um ID Token de um provedor de identidade compatível com OIDC. Use este método em pods do ACK ou ACS com o RRSA (RAM Roles for Service Accounts) ativado. A CLI lê o arquivo de token OIDC montado no pod, chama a API AssumeRoleWithOIDC do STS para obter uma credencial temporária e a renova automaticamente.
Pré-requisitos
Você criou um cluster ACK ou ACS e ativou o recurso RRSA para ACK ou ACS.
Você criou uma função do RAM para o provedor de identidade OIDC e a política de confiança permite que o provedor de identidade OIDC criado automaticamente pelo cluster assuma a função no formato
ack-rrsa-{cluster-id}.Você associou a conta de serviço do pod à função do RAM usando o RRSA.
Configurar a credencial
Configuração não interativa (recomendada)
Com o RRSA ativado, o componente ack-pod-identity-webhook injeta as seguintes variáveis de ambiente nos pods, reconhecidas automaticamente pela CLI. Para instalar o componente, siga as instruções em Gerenciar componentes para clusters gerenciados do ACK.
ALIBABA_CLOUD_OIDC_PROVIDER_ARNALIBABA_CLOUD_OIDC_TOKEN_FILEALIBABA_CLOUD_ROLE_ARN
Configure o perfil com variáveis de ambiente:
aliyun configure set \
--mode OIDC \
--profile OIDCProfile \
--oidc-provider-arn $ALIBABA_CLOUD_OIDC_PROVIDER_ARN \
--oidc-token-file $ALIBABA_CLOUD_OIDC_TOKEN_FILE \
--ram-role-arn $ALIBABA_CLOUD_ROLE_ARN \
--role-session-name "rrsa-pod" \
--region cn-shanghai
Configuração interativa
-
Execute o comando a seguir para iniciar a configuração. Substitua
<ProfileName>por um nome de perfil personalizado, comoOIDCProfile.aliyun configure --mode OIDC --profile <ProfileName> -
Quando solicitado, insira o ARN do provedor OIDC, o caminho do arquivo de token OIDC, o ARN da função do RAM, o nome da sessão da função, a região padrão e o idioma.
Configuring profile 'OIDC_Profile' in 'OIDC' authenticate mode... OIDC Provider ARN []: acs:ram::012345678910****:oidc-provider/TestOidcIdp OIDC Token File []: /path/to/oidctoken RAM Role ARN []: acs:ram::012345678910****:role/Alice Role Session Name []: rrsa-pod-name Default Region Id []: cn-shanghai Default Output Format [json]: json (Only support json) Default Language [zh|en] en: en Saving profile[OIDC_Profile] ...Done. O terminal exibe
Configure Donee uma mensagem de boas-vindas, indicando sucesso.
Execute aliyun sts get-caller-identity no pod para verificar as credenciais.
Renovação de credenciais
O cluster rotaciona automaticamente o arquivo de token OIDC no pod. A CLI chama a API AssumeRoleWithOIDC do STS com o token mais recente para renovar a credencial. Nenhuma ação do usuário é necessária.
CloudSSO
O método CloudSSO destina-se a empresas que utilizam o serviço de diretório CloudSSO. Ele permite fazer logon na CLI com uma identidade unificada e alternar entre contas do diretório de recursos e configurações de acesso.
Pré-requisitos
Sua empresa implantou o CloudSSO e configurou um diretório de usuários e configurações de acesso.
O usuário do CloudSSO recebeu pelo menos uma configuração de acesso.
Você possui a URL de logon do CloudSSO fornecida pelo administrador, geralmente no formato
https://signin-<region>.alibabacloudsso.com/<directory-name>/login. Obter a URL do portal do usuário.
Configurar a credencial
-
Execute o comando a seguir para iniciar a configuração. Substitua
<ProfileName>por um nome de perfil personalizado, comoSSOProfile.aliyun configure --mode CloudSSO --profile <ProfileName> -
Quando solicitado, insira a
SignIn Url.Configuring profile 'SSOProfile' in 'CloudSSO' authenticate mode... CloudSSO Sign In Url []: https://signin-<region>.alibabacloudsso.com/<directory-name>/login -
Siga as instruções do navegador para concluir o logon no CloudSSO. Após fazer login, feche o navegador.
NotaSe nenhum navegador abrir, copie a
SignIn urle oUser codeda saída da CLI e cole-os em um navegador.Veja um exemplo de prompt:
If the browser does not open automatically, use the following URL to complete the login process: SignIn url: https://signin-****.alibabacloudsso.com/device/code User code: CGKM-LIXZ -
Após o logon bem-sucedido, a CLI lista as contas acessíveis. Insira o número da conta de destino.
Now you can login to your account with SSO configuration in the browser. You have successfully logged in. Please choose an account: 1. <RD Management Account> 2. <other-account-name> Please input the account number: 1 -
A CLI lista as configurações de acesso disponíveis. Insira o número da configuração desejada.
Please choose an access configuration: 1. <access-configuration1> 2. <access-configuration2> Please input the access configuration number: 2 -
Defina a região e o idioma padrão. Por exemplo:
Default Region Id []: cn-shanghai Default Language [zh|en] en: enDefina a região padrão como o local onde seus recursos estão hospedados. As regiões disponíveis estão listadas em Regiões e zonas de disponibilidade.
O terminal exibe
Configure Donee uma mensagem de boas-vindas, indicando sucesso.
Execute aliyun sts get-caller-identity para verificar a credencial.
Uma nova configuração torna-se ativa automaticamente. Para alternar perfis, execute o comando aliyun configure switch --profile <ProfileName>.
Renovação de credenciais
As credenciais do CloudSSO não são renovadas automaticamente. Após a expiração, execute aliyun configure --mode CloudSSO --profile <ProfileName> novamente para reconfigurar.
External
O método External executa um programa externo para recuperar credenciais. A CLI roda o programa especificado sempre que uma credencial é necessária e lê o resultado da saída padrão.
Pré-requisitos
-
Você possui um programa ou script que gera uma credencial no seguinte formato JSON para a stdout:
AccessKey
{ "mode": "AK", "access_key_id": "<yourAccessKeyID>", "access_key_secret": "<yourAccessKeySecret>" }STS token
{ "mode": "StsToken", "access_key_id": "<yourAccessKeyID>", "access_key_secret": "<yourAccessKeySecret>", "sts_token": "<yourSecurityToken>" } O programa deve sair com o código de status 0.
Configurar a credencial
Configuração não interativa (recomendada)
Bash
aliyun configure set \
--mode External \
--profile ExternalProfile \
--process-command "/path/to/credential-helper" \
--region cn-shanghai
PowerShell
aliyun configure set `
--mode External `
--profile ExternalProfile `
--process-command "/path/to/credential-helper" `
--region cn-shanghai
Configuração interativa
aliyun configure --mode External --profile <ProfileName>
Quando solicitado, insira o Process Command, a região padrão e o idioma para concluir a configuração.
Execute aliyun sts get-caller-identity para verificar a credencial.
Renovação de credenciais
A CLI não armazena em cache nem renova credenciais External. Ela reexecuta o programa sempre que uma credencial é necessária.
CredentialsURI
O método CredentialsURI recupera tokens temporários do STS via HTTP GET de um endpoint especificado. Use este método com um serviço de distribuição de credenciais autogerenciado.
Pré-requisitos
Você possui um endpoint HTTP(S) que retorna credenciais com HTTP 200 no seguinte formato JSON:
{
"Code": "Success",
"AccessKeyId": "<yourAccessKeyID>",
"AccessKeySecret": "<yourAccessKeySecret>",
"SecurityToken": "<yourSecurityToken>"
}
Se a URL não retornar HTTP 200 ou o formato da resposta for inesperado, a CLI trata a solicitação como falha.
O campo
Codeno JSON de resposta deve ser"Success"(diferencia maiúsculas de minúsculas).
Configurar a credencial
-
Execute o comando a seguir para iniciar a configuração. Substitua
<ProfileName>por um nome de perfil personalizado, comoURIProfile.aliyun configure --mode CredentialsURI --profile <ProfileName> -
Quando solicitado, insira a Credentials URI, a região padrão e o idioma.
Configuring profile 'URIProfile' in 'CredentialsURI' authenticate mode... Credentials URI []: http://credentials.uri/ Default Region Id []: cn-shanghai Default Output Format [json]: json (Only support json) Default Language [zh|en] en: en Saving profile[URIProfile] ...Done.Defina a região padrão como o local onde seus recursos estão hospedados. As regiões disponíveis estão listadas em Regiões e zonas de disponibilidade.
O terminal exibe
Configure Donee uma mensagem de boas-vindas, indicando sucesso.
Um novo perfil torna-se ativo automaticamente. Para alternar perfis, execute o comando aliyun configure switch --profile <ProfileName>.
Execute aliyun sts get-caller-identity para verificar a credencial.
Renovação de credenciais
Após a expiração da credencial, a CLI envia automaticamente uma nova solicitação GET para o endpoint. Seu endpoint deve retornar um token STS válido para cada solicitação.
BearerToken
O método BearerToken autentica nas APIs da Alibaba Cloud usando um Bearer Token. Este método chama APIs por meio de plugins de produto.
Pré-requisitos
Você possui um Bearer Token do serviço de destino.
Você instalou o plugin da CLI para o produto de destino:
aliyun plugin install --name <plugin-name>.
O modo BearerToken requer plugins de produto. Instale o plugin antes de chamar a API:
aliyun plugin install --name <plugin-name>.A versão da CLI deve ser ≥
3.3.16.
Configurar a credencial
Configuração não interativa (recomendada)
aliyun configure set \
--mode BearerToken \
--profile BearerProfile \
--bearer-token <your-bearer-token> \
--region cn-shanghai
Para usar um cabeçalho de autenticação personalizado, adicione o parâmetro --bearer-token-header-key:
aliyun configure set \
--mode BearerToken \
--profile BearerProfile \
--bearer-token <your-bearer-token> \
--bearer-token-header-key <custom-header-name> \
--region cn-shanghai
Configuração interativa
-
Execute o comando a seguir para iniciar a configuração. Substitua
<ProfileName>por um nome de perfil personalizado, comoBearerProfile.aliyun configure --mode BearerToken --profile <ProfileName> -
Quando solicitado, insira o Bearer Token, uma Bearer Token Header Key opcional (deixe em branco para usar o padrão), a região padrão e o idioma.
Configuring profile 'BearerProfile' in 'BearerToken' authenticate mode... Bearer Token []: eyJhbGciOiJSUzI1**** Bearer Token Header Key [] (optional, e.g. x-custom-token; leave empty for x-acs-bearer-token): Default Region Id []: cn-shanghai Default Output Format [json]: json (Only support json) Default Language [zh|en] en: en Saving profile[BearerProfile] ...Done. O terminal exibe
Configure Donee uma mensagem de boas-vindas, indicando sucesso.
Verifique a credencial chamando uma API por meio do plugin do produto:
aliyun <command> <sub-command> --profile BearerProfile
No modo BearerToken, configure hello não verifica a conectividade e sempre retorna sucesso. Verifique a credencial com uma chamada de API real.
Variáveis de ambiente
O método BearerToken oferece suporte às seguintes variáveis de ambiente:
|
Variável de ambiente |
Descrição |
|
|
Valor do Bearer Token. |
|
|
Nome do cabeçalho de autenticação personalizado. O padrão é |
Excluir credencial
Para excluir um perfil:
aliyun configure delete --profile <ProfileName>
Excluir o perfil ativo faz com que a CLI alterne para o primeiro perfil da lista.