Al ejecutar Alibaba Cloud CLI en una ECS instance o una ECI instance, puede autenticarse mediante el tipo de credencial EcsRamRole. La CLI obtiene automáticamente las temporary security credentials (tokens STS) del Instance Metadata Service (IMDS) correspondientes al rol RAM asociado a su instancia. No se requiere ningún par de AccessKey. Este es el método de autenticación recomendado para cargas de trabajo que se ejecutan en instancias de Alibaba Cloud. En este tema se describen los requisitos previos y el procedimiento de configuración para las credenciales EcsRamRole.
Requisitos previos
Alibaba Cloud CLI versión
3.3.0o posterior. Ejecutealiyun versionpara comprobar su versión. Para actualizarla, consulte Install or update the Alibaba Cloud CLI.La CLI debe estar instalada en una instancia ECS o en una instancia ECI. Los entornos de desarrollo locales no admiten este tipo de credencial.
Debe haber un rol RAM con los permisos necesarios asociado a la instancia. Para obtener instrucciones, consulte Create a RAM role and grant it to an ECS instance y Grant an instance RAM role to an ECI instance.
Configurar credenciales
Configuración interactiva
-
Ejecute el siguiente comando. Reemplace
<ProfileName>con un nombre para el perfil, comoEcsProfile.aliyun configure --mode EcsRamRole --profile <ProfileName> -
Introduzca la información solicitada en cada indicador:
Configuring profile 'EcsProfile' in 'EcsRamRole' authenticate mode... Ecs Ram Role []: ecs-role-name Default Region Id []: cn-shanghai Default Output Format [json]: json (Only support json) Default Language [zh|en] en: en Saving profile[EcsProfile] ...Done.Para consultar los ID de región disponibles, véase Regions and availability zones. Si un servicio en la nube no admite acceso entre regiones, establezca la región predeterminada en aquella donde estén desplegados sus recursos.
Cuando la terminal muestre
Configure Donejunto con un mensaje de bienvenida, la configuración habrá finalizado.
Configuración no interactiva
Bash
aliyun configure set \
--profile EcsProfile \
--mode EcsRamRole \
--ram-role-name ECSAdmin \
--region cn-hangzhou
PowerShell
aliyun configure set `
--profile EcsProfile `
--mode EcsRamRole `
--ram-role-name ECSAdmin `
--region cn-hangzhou
Una vez configurado un perfil, este se convierte automáticamente en el perfil activo. Para cambiar a otro perfil, ejecute el comando aliyun configure switch --profile <ProfileName>.
Comprobar credenciales
Ejecute el siguiente comando para comprobar que las credenciales funcionan correctamente:
aliyun sts get-caller-identity
Si las credenciales están configuradas correctamente, la salida incluirá el nombre del rol RAM en el campo Arn:
{
"AccountId": "191317683912****",
"Arn": "acs:ram::191317683912****:assumed-role/<ecs-role-name>/<role-session-name>",
"IdentityType": "AssumedRoleUser",
"PrincipalId": "30004467717606****:<role-session-name>",
"RequestId": "0FFADC33-EA49-5E2A-977F-0BA820D6****",
"RoleId": "30004467717606****"
}
Actualización de credenciales
Las credenciales EcsRamRole son credenciales temporales STS que se obtienen a través del IMDS. El IMDS gestiona la actualización de credenciales automáticamente, por lo que todo el proceso resulta transparente para usted. No se requiere ninguna intervención manual.
Eliminar credenciales
Para quitar un perfil EcsRamRole de la configuración local de la CLI, ejecute:
aliyun configure delete --profile <ProfileName>
Este comando solo elimina el perfil del archivo ~/.aliyun/config.json. No desasocia el rol RAM de la instancia. Para revocar completamente el acceso, desasocie el rol RAM desde la consola de ECS.
Preguntas frecuentes
¿Cómo compruebo si hay un rol RAM asociado a mi instancia?
Ejecute el siguiente comando en la instancia para consultar el IMDS:
curl http://100.100.100.200/latest/meta-data/ram/security-credentials/
Si el comando devuelve información sobre el rol, significa que hay un rol RAM asociado. Una respuesta vacía o un error 404 indica que no existe ningún rol RAM vinculado.
¿Qué hago si falla la obtención de credenciales al usar credenciales EcsRamRole?
Alibaba Cloud CLI utiliza el modo reforzado (IMDSv2) de forma predeterminada para obtener credenciales del Instance Metadata Service. Si la obtención de credenciales falla, puede controlar el comportamiento de respaldo mediante la variable de entorno ALIBABA_CLOUD_IMDSV1_DISABLED:
false(predeterminado): La CLI recurre al modo normal (IMDSv1) para obtener las credenciales.true: La CLI utiliza exclusivamente el modo reforzado. Si este modo falla, la CLI genera un error en lugar de recurrir al modo normal.