Alibaba Cloud CLI utiliza credenciales para autenticarse al invocar las API de los servicios en la nube y gestionar recursos. Este tema describe cómo seleccionar el tipo de credencial adecuado según su caso de uso, así como configurar y administrar dichas credenciales.
Seleccionar un tipo de credencial
Alibaba Cloud CLI admite varios tipos de credenciales. Seleccione el que mejor se adapte a su caso de uso.
|
Tipo de credencial |
Caso de uso |
Admite configuración no interactiva |
Configuración |
|
OAuth (Recomendado) |
Inicie sesión con una cuenta de Alibaba Cloud, un usuario de RAM o SSO desde un navegador. Admite MFA y claves de acceso. No requiere almacenar AccessKeys a largo plazo, lo que garantiza una alta seguridad. |
No |
|
|
EcsRamRole (Recomendado) |
Al ejecutar la CLI en una instancia ECS, obtiene automáticamente credenciales de seguridad temporales del rol de RAM asociado a la instancia. No es necesario configurar ni almacenar AccessKeys. |
Sí |
|
|
RamRoleArn (Recomendado) |
Utilice Assume a RAM role para operar recursos bajo la identidad del rol. Ideal para escalada temporal de privilegios o acceso entre cuentas. Por ejemplo, un usuario de RAM con permisos básicos puede asumir un rol de RAM con permisos de gestión de recursos o acceder a recursos en distintas cuentas de Alibaba Cloud. Emplea credenciales de seguridad temporales (token STS). |
Sí |
|
|
ChainableRamRoleArn |
Use role chain para asumir roles de forma secuencial y acceder a recursos entre cuentas. |
Sí |
|
|
OIDC |
Autentica y asume un rol mediante un token de ID emitido por un proveedor de identidad externo compatible con OIDC (OpenID Connect). Recomendado para pods de ACK/ACS con RRSA (Roles de RAM para cuentas de servicio) habilitado. |
Sí |
|
|
CloudSSO |
Diseñado para empresas con múltiples cuentas que utilizan Cloud SSO y Resource Directory. Permite iniciar sesión desde el navegador con soporte para MFA, de manera similar a OAuth. |
No |
|
|
External |
Ejecuta un programa externo para obtener dinámicamente una credencial (AccessKey o token de seguridad temporal). Apropiado para escenarios con proveedores de credenciales personalizados. |
Sí |
|
|
CredentialsURI |
Obtiene una credencial de seguridad temporal (token STS) desde una URI HTTP proporcionada por usted. Útil para servicios de distribución de credenciales autoalojados. |
No |
|
|
StsToken |
Proporcione manualmente una credencial de seguridad temporal (token STS). Deberá actualizarla manualmente cuando expire. |
Sí |
|
|
BearerToken |
Usa un bearer token para autenticarse ante los servicios de la API de Alibaba Cloud. Adecuado para procesos automatizados como CI/CD. |
Sí |
|
|
AK (No recomendado) |
Utiliza un AccessKey permanente de una cuenta de Alibaba Cloud o un usuario de RAM para autenticación directa. La credencial tiene validez permanente y es relativamente menos segura. Si necesita usar este método, le recomendamos revisar primero AccessKey best practices. |
Sí |
Si utiliza Cloud Shell, el sistema configura automáticamente una credencial temporal. La identidad corresponde al usuario o rol de RAM que ha iniciado sesión en la consola, y los permisos coinciden con dicha identidad. Puede ejecutar comandos de la CLI sin necesidad de configuración manual.
Configurar credenciales
Alibaba Cloud CLI ofrece dos métodos para configurar credenciales: configuración interactiva y configuración no interactiva.
Configuración interactiva
La configuración interactiva emplea un asistente en línea de comandos que lo guía paso a paso. El sistema le solicitará introducir cada parámetro de la credencial en secuencia. Este método es ideal para entornos de desarrollo local o para configuraciones iniciales.
aliyun configure --mode <AuthenticateMode> --profile <ProfileName>
Ejemplo: para crear un perfil de credenciales EcsRamRole llamado EcsProfile:
aliyun configure --mode EcsRamRole --profile EcsProfile
A continuación se muestra un ejemplo de sesión interactiva:
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.
Configuración no interactiva
Especifique los parámetros de configuración directamente mediante argumentos en la línea de comandos, sin interacción. Esta opción es adecuada para escenarios de automatización como scripts y canalizaciones de CI/CD.
Ejemplo: para crear un perfil de credenciales AK denominado 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 los parámetros de configuración admitidos por cada tipo de credencial, revise la página de configuración detallada correspondiente. Los siguientes parámetros son comunes a todos los tipos:
|
Parámetros comunes |
Descripción |
|
|
Nombre del perfil. Si no se especifica, se utiliza active profile. |
|
|
Tipo de credencial. Ejemplos: |
|
|
ID de región predeterminado, como |
La tabla Select a credential type muestra qué tipos admiten configuración no interactiva.
Puede crear varios perfiles para el mismo tipo de credencial con nombres únicos. Por ejemplo, cree los perfiles AK ak-dev y ak-prod para desarrollo y producción.
Comprobar la configuración de credenciales
Una vez configurada la credencial, ejecute el siguiente comando para verificar que sea válida:
aliyun sts get-caller-identity
Si la credencial se configuró correctamente, la salida será similar a la siguiente:
-
Si la identidad autenticada es un usuario de RAM:
{ "AccountId": "173305794806****", "Arn": "acs:ram::173305794806****:user/<user-name>", "IdentityType": "RAMUser", "PrincipalId": "20407046578681****", "RequestId": "D012C652-FF76-5101-81B3-45A1DDAC****", "UserId": "20407046578681****" } -
Si la identidad autenticada es un rol de 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****" }
Una verificación exitosa solo confirma que la autenticación funcionó. Para gestionar recursos, también debe adjuntar las políticas de permisos correspondientes a la identidad asociada con la credencial.
Gestionar credenciales
Utilice los subcomandos de aliyun configure para consultar, cambiar, modificar y eliminar perfiles de credenciales.
Consultar configuraciones
Ver lista de perfiles y perfil activo
Consulte todas las credenciales configuradas y su estado en la computadora actual. Use este comando para revisar información resumida de los perfiles, como nombres y tipos de credencial, e identificar cuál está activo.
aliyun configure list
A continuación se muestra un ejemplo de salida. El asterisco (*) indica el perfil de credenciales activo. Este perfil representa el conjunto predeterminado de credenciales y parámetros (como región e idioma) que utiliza la CLI. A menos que especifique otro perfil mediante el parámetro --profile o una variable de entorno, todos los comandos usarán 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
Ver detalles del perfil
Ejecute el siguiente comando para consultar la información detallada de un perfil de credenciales específico:
aliyun configure get [--profile <ProfileName>] [<SETTING_NAME>...]
SETTING_NAME: Nombre de la configuración que desea consultar. Puede especificar varias configuraciones simultáneamente. Si no se indica ninguna, se muestra toda la información del perfil. Si la configuración especificada no existe, el comando no devuelve resultados.
Ejemplo 1: Consultar los detalles de un perfil llamado OAuthProfile:
aliyun configure get --profile OAuthProfile
Salida:
{
"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"
}
Ejemplo 2: Consultar únicamente el nombre del perfil, el tipo de credencial y el idioma predeterminado de OAuthProfile:
aliyun configure get --profile OAuthProfile profile mode language
Salida:
profile=OAuthProfile
mode=OAuth
language=en
Ubicación del archivo de configuración
Para consultar o respaldar manualmente el archivo de configuración de credenciales, búsquelo en las siguientes rutas:
|
Sistema operativo |
Ruta de almacenamiento |
|
Linux / macOS |
|
|
Windows |
|
Cambiar de perfil
Cambiar el perfil activo
Establezca un perfil específico como activo. Alibaba Cloud CLI incluye el comando aliyun configure switch desde la versión v3.0.214. Tras realizar el cambio, todas las solicitudes posteriores que no indiquen explícitamente una credencial mediante el parámetro --profile utilizarán automáticamente este perfil.
aliyun configure switch --profile <ProfileName>
Ejecute aliyun configure list para confirmar el nombre del perfil destino antes de cambiarlo.
Ejemplo: Cambiar a un perfil llamado prod:
aliyun configure switch --profile prod
Después del cambio, ejecute aliyun configure list para confirmar que el perfil objetivo aparece marcado con *.
Usar un perfil para un solo comando
Utilice el parámetro --profile en un comando individual para especificar temporalmente un perfil. Esto no afecta al perfil activo.
Ejemplo: Usar el perfil prod para consultar la lista de regiones de ECS:
aliyun ecs describe-regions --profile prod
Modificar un perfil
Use aliyun configure set para modificar los valores de los parámetros de un perfil existente. Solo necesita especificar los parámetros que desea cambiar; los demás permanecerán sin modificaciones.
aliyun configure set --profile <ProfileName> --<ParameterName> <NewValue>
Parámetros comunes:
--region: Región predeterminada--language: Idioma de salida (zh / en)
Para más detalles sobre los parámetros, consulte la documentación de cada tipo de credencial.
Ejemplo: Modificar la región predeterminada del perfil default:
aliyun configure set --profile default --region cn-shanghai
Al modificar un perfil, este se establece automáticamente como activo.
Eliminar un perfil
Ejecute el siguiente comando para eliminar un perfil específico:
aliyun configure delete --profile <ProfileName>
Ejemplo: Eliminar un perfil llamado dev:
aliyun configure delete --profile dev
La operación de eliminación es irreversible. Si elimina el perfil activo, el primer perfil de la lista pasará a ser automáticamente el nuevo perfil activo.
Tras la eliminación, ejecute el comando aliyun configure list para confirmar que el perfil se quitó de la lista.
Preguntas frecuentes
¿Qué hago si introduzco información incorrecta durante la configuración interactiva?
Utilice aliyun configure set para modificar el campo correspondiente. No es necesario volver a configurar todo desde cero. Ejemplo:
aliyun configure set --profile <ProfileName> --<ParameterName> <CorrectValue>
Un comando de la CLI no usa el perfil activo
La CLI determina el perfil que debe usar según la siguiente prioridad (de mayor a menor). Una prioridad más alta anula a las inferiores:
El parámetro de línea de comandos
--profile: Aplica solo al comando actual y tiene la máxima precedencia.La variable de entorno
ALIBABA_CLOUD_PROFILE: Aplica a todos los comandos en la sesión de terminal actual.El perfil activo: Es el perfil marcado con un
*en la salida del comandoaliyun configure list. Esta configuración es persistente.
Si el resultado de un comando no coincide con lo esperado, compruebe si están definidos el parámetro --profile o la variable de entorno ALIBABA_CLOUD_PROFILE, ya que estos anulan al perfil activo. Ejecute echo $ALIBABA_CLOUD_PROFILE para verificar si la variable de entorno está configurada.
Error: load current configuration failed unknown profile default
Mensaje de error completo:
ERROR: load current configuration failed unknown profile default, run configure to check
Causa:
Se eliminaron todos los perfiles de credenciales, lo que impide que Alibaba Cloud CLI funcione correctamente.
Solución:
Elimine manualmente el archivo config.json y ejecute el comando aliyun configure para volver a configurar las credenciales. Para conocer la ubicación del archivo, consulte Configuration file location. Por ejemplo, en Linux o macOS, ejecute el siguiente comando para eliminar el archivo:
rm ~/.aliyun/config.json