Alibaba Cloud CLI admite cinco métodos de credenciales avanzadas: OIDC, CloudSSO, External, CredentialsURI y BearerToken. Estos métodos eliminan la necesidad de almacenar AccessKeys a largo plazo de forma local. Este tema describe los escenarios aplicables y los pasos de configuración para cada método.
Requisitos de versión
Se requiere la versión 3.3.0 o posterior de Alibaba Cloud CLI. Ejecute el comando aliyun version para comprobar su versión actual. Si su versión es anterior a la 3.3.0, consulte Install or update the CLI para actualizarla.
El método BearerToken requiere la versión 3.3.16 o posterior de Alibaba Cloud CLI.
OIDC
El método OIDC realiza la autenticación mediante la asunción de un rol de RAM con un ID Token de un proveedor de identidad compatible con OIDC. Utilice este método en pods de ACK o ACS que tengan habilitada la función RRSA (RAM Roles for Service Accounts). La CLI lee el archivo de token OIDC montado en el pod, llama a la API AssumeRoleWithOIDC de STS para obtener una credencial temporal y la renueva automáticamente.
Requisitos previos
Ha creado un clúster de ACK o ACS y ha habilitado la función RRSA para ACK o ACS.
Ha created a RAM role for the OIDC identity provider, y la directiva de confianza permite que el proveedor de identidad OIDC creado automáticamente por el clúster asuma el rol, con el formato
ack-rrsa-{cluster-id}.Ha asociado la cuenta de servicio del pod con el rol de RAM mediante RRSA.
Configurar la credencial
Configuración no interactiva (recomendada)
Con RRSA habilitado, el componente ack-pod-identity-webhook inyecta las siguientes variables de entorno en los pods, las cuales la CLI reconoce automáticamente. Para instalar el componente, siga Manage components for ACK managed clusters.
ALIBABA_CLOUD_OIDC_PROVIDER_ARNALIBABA_CLOUD_OIDC_TOKEN_FILEALIBABA_CLOUD_ROLE_ARN
Configure el perfil con variables de entorno:
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
Configuración interactiva
-
Ejecute el siguiente comando para iniciar la configuración. Reemplace
<ProfileName>con un nombre de perfil personalizado, comoOIDCProfile.aliyun configure --mode OIDC --profile <ProfileName> -
En los mensajes del sistema, introduzca el ARN del proveedor OIDC, la ruta del archivo de token OIDC, el ARN del rol de RAM, el nombre de la sesión del rol, la región predeterminada y el 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. La terminal muestra
Configure Doney un mensaje de bienvenida, lo que indica que la operación se completó correctamente.
Ejecute aliyun sts get-caller-identity en el pod para verificar las credenciales.
Renovación de credenciales
El clúster rota automáticamente el archivo de token OIDC en el pod. La CLI llama a la API AssumeRoleWithOIDC de STS con el token más reciente para renovar la credencial. No se requiere ninguna acción por parte del usuario.
CloudSSO
El método CloudSSO está diseñado para empresas que utilizan el servicio de directorio CloudSSO. Permite iniciar sesión en la CLI con una identidad unificada y cambiar entre cuentas del directorio de recursos y configuraciones de acceso.
Requisitos previos
Su empresa ha implementado CloudSSO y ha configurado un directorio de usuarios y configuraciones de acceso.
El usuario de CloudSSO tiene asignada como mínimo una configuración de acceso.
Dispone de la URL de inicio de sesión de CloudSSO proporcionada por su administrador, generalmente con el formato
https://signin-<region>.alibabacloudsso.com/<directory-name>/login. Obtain the user portal URL.
Configurar la credencial
-
Ejecute el siguiente comando para iniciar la configuración. Reemplace
<ProfileName>con un nombre de perfil personalizado, comoSSOProfile.aliyun configure --mode CloudSSO --profile <ProfileName> -
Cuando se le solicite, introduzca la
SignIn Url.Configuring profile 'SSOProfile' in 'CloudSSO' authenticate mode... CloudSSO Sign In Url []: https://signin-<region>.alibabacloudsso.com/<directory-name>/login -
Siga las instrucciones del navegador para completar el inicio de sesión en CloudSSO. Después de iniciar sesión, cierre el navegador.
NotaSi no se abre ningún navegador, copie la
SignIn urly elUser codede la salida de la CLI y péquelos en un navegador.A continuación se muestra un ejemplo de mensaje del sistema:
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 -
Tras iniciar sesión correctamente, la CLI muestra las cuentas a las que puede acceder. Introduzca el número de la cuenta 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 -
La CLI enumera las access configurations disponibles. Introduzca el número de la configuración que desea utilizar.
Please choose an access configuration: 1. <access-configuration1> 2. <access-configuration2> Please input the access configuration number: 2 -
Establezca la región y el idioma predeterminados. Por ejemplo:
Default Region Id []: cn-shanghai Default Language [zh|en] en: enEstablezca la región predeterminada según la ubicación de sus recursos. Las regiones disponibles se enumeran en Regions and availability zones.
La terminal muestra
Configure Doney un mensaje de bienvenida, lo que indica que la operación se completó correctamente.
Ejecute aliyun sts get-caller-identity para verificar la credencial.
Una nueva configuración se activa automáticamente. Para cambiar de perfil, ejecute el comando aliyun configure switch --profile <ProfileName>.
Renovación de credenciales
Las credenciales de CloudSSO no se renuevan automáticamente. Tras su caducidad, ejecute nuevamente aliyun configure --mode CloudSSO --profile <ProfileName> para volver a configurarlas.
External
El método External ejecuta un programa externo para recuperar credenciales. La CLI ejecuta el programa especificado cada vez que necesita una credencial y lee el resultado desde su salida estándar.
Requisitos previos
-
Dispone de un programa o script que genera una credencial en la salida estándar con el siguiente formato JSON:
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>" } El programa debe finalizar con el código de estado 0.
Configurar la credencial
Configuración no interactiva (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
Configuración interactiva
aliyun configure --mode External --profile <ProfileName>
En los mensajes del sistema, introduzca el comando de proceso, la región predeterminada y el idioma para completar la configuración.
Ejecute aliyun sts get-caller-identity para verificar la credencial.
Renovación de credenciales
La CLI no almacena en caché ni renueva las credenciales External. Vuelve a ejecutar el programa cada vez que necesita una credencial.
CredentialsURI
El método CredentialsURI recupera tokens temporales de STS mediante una solicitud HTTP GET a un endpoint específico. Utilice este método con un servicio de distribución de credenciales autogestionado.
Requisitos previos
Debe contar con un endpoint HTTP(S) que devuelva credenciales con un código HTTP 200 en el siguiente formato JSON:
{
"Code": "Success",
"AccessKeyId": "<yourAccessKeyID>",
"AccessKeySecret": "<yourAccessKeySecret>",
"SecurityToken": "<yourSecurityToken>"
}
Si la URL no devuelve un código HTTP 200 o el formato de respuesta es inesperado, la CLI considera la solicitud como fallida.
El campo
Codeen el JSON de respuesta debe ser"Success"(distingue entre mayúsculas y minúsculas).
Configurar la credencial
-
Ejecute el siguiente comando para iniciar la configuración. Reemplace
<ProfileName>con un nombre de perfil personalizado, comoURIProfile.aliyun configure --mode CredentialsURI --profile <ProfileName> -
En los mensajes del sistema, introduzca la URI de credenciales, la región predeterminada y el 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.Establezca la región predeterminada según la ubicación de sus recursos. Las regiones disponibles se enumeran en Regions and availability zones.
La terminal muestra
Configure Doney un mensaje de bienvenida, lo que indica que la operación se completó correctamente.
Un nuevo perfil se activa automáticamente. Para cambiar de perfil, ejecute el comando aliyun configure switch --profile <ProfileName>.
Ejecute aliyun sts get-caller-identity para verificar la credencial.
Renovación de credenciales
Cuando la credencial caduca, la CLI envía automáticamente una nueva solicitud GET al endpoint. Su endpoint debe devolver un token de STS válido para cada solicitud.
BearerToken
El método BearerToken autentica las llamadas a las API de Alibaba Cloud mediante un Bearer Token. Este método invoca las API a través de plugins de producto.
Requisitos previos
Dispone de un Bearer Token del servicio de destino.
Ha instalado el plugin de la CLI para el producto de destino:
aliyun plugin install --name <plugin-name>.
El modo BearerToken requiere plugins de producto. Instale el plugin antes de llamar a la API:
aliyun plugin install --name <plugin-name>.La versión de la CLI debe ser ≥
3.3.16.
Configurar la credencial
Configuración no interactiva (recomendada)
aliyun configure set \
--mode BearerToken \
--profile BearerProfile \
--bearer-token <your-bearer-token> \
--region cn-shanghai
Para usar un encabezado de autenticación personalizado, agregue el 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
Configuración interactiva
-
Ejecute el siguiente comando para iniciar la configuración. Reemplace
<ProfileName>con un nombre de perfil personalizado, comoBearerProfile.aliyun configure --mode BearerToken --profile <ProfileName> -
En los mensajes del sistema, introduzca el Bearer Token, una clave de encabezado de Bearer Token opcional (déjela en blanco para usar el valor predeterminado), la región predeterminada y el 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. La terminal muestra
Configure Doney un mensaje de bienvenida, lo que indica que la operación se completó correctamente.
Verifique la credencial llamando a una API a través del plugin del producto:
aliyun <command> <sub-command> --profile BearerProfile
En el modo BearerToken, configure hello no comprueba la conectividad y siempre devuelve éxito. Verifique la credencial con una llamada real a la API.
Variables de entorno
El método BearerToken admite las siguientes variables de entorno:
|
Variable de entorno |
Descripción |
|
|
Valor del Bearer Token. |
|
|
Nombre del encabezado de autenticación personalizado. El valor predeterminado es |
Eliminar credencial
Para eliminar un perfil:
aliyun configure delete --profile <ProfileName>
Al eliminar el perfil activo, la CLI cambia al primer perfil de la lista.