iam:GetWebIdentityToken sobre el CRN de ese rol. Restringe la audiencia al servicio de destino:
basalt:IdentityTokenDurationSeconds contiene la duración solicitada en segundos, incluido el valor predeterminado 300 cuando no se indica una duración.
Solicitar un token dentro de la VM
Primero obtén un token de sesión IMDSv2. Después solicita un JWT de identidad con una audiencia externa:token y expires_at. La duración predeterminada es 300 segundos; puedes solicitar entre 60 y 300 segundos. Las solicitudes repetidas pueden devolver un token en caché aún válido, así que usa la caducidad devuelta. Cada solicitud comprueba los permisos actuales del rol, incluso al usar la caché.
Este endpoint siempre exige IMDSv2, aunque los metadatos normales permitan IMDSv1. Solo acepta audience y el campo opcional duration_seconds. La plataforma aporta la identidad de la VM; una solicitud no puede elegir otra VM, cuenta, organización o sujeto. La audiencia basaltic está reservada para el acceso a la API y se rechaza aquí.
Los tres tokens involucrados son distintos:
Claims de identidad
El emisor eshttps://iam.basaltic.sh. Los JWTs usan ES256 e incluyen iss, sub, aud, iat, exp y jti.
El sujeto es:
Mantener un archivo de token
La versión1.15.11-1 o posterior del agente guest incluye el comando identity-token. Actualiza basaltic-guest-agent desde el repositorio de paquetes Basaltic configurado en la VM antes de usarlo.
Ejecuta el helper con el mismo usuario de la aplicación y un directorio de salida privado. Renueva la prueba antes de caducar y sustituye atómicamente un archivo con modo 0600:
--once para una única tarea breve; ese archivo no se renueva. El modo continuo elimina el archivo al detenerse y elimina una prueba caducada si falla la renovación. Un segundo helper no puede controlar el mismo archivo de salida.
Para un servicio ejecutado con el usuario app ya existente, usa una unidad systemd separada:
/etc/systemd/system/basaltic-aws-identity.service

