Saltar al contenido principal
Una VM Basaltic puede obtener un JWT de identidad desde su servicio de metadatos sin almacenar credenciales de larga duración. Úsalo con AWS STS u otro servicio que confíe en el emisor OIDC de Basaltic. La VM necesita un rol IAM adjunto. Sus políticas deben permitir iam:GetWebIdentityToken sobre el CRN de ese rol. Restringe la audiencia al servicio de destino:
Aplícalo como política inline o adjunta al rol. También se aplican los límites de permisos del rol. 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:
La respuesta JSON contiene 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 es https://iam.basaltic.sh. Los JWTs usan ES256 e incluyen iss, sub, aud, iat, exp y jti. El sujeto es:
Usa el sujeto exacto en la política de confianza del destino. Estos UUIDs son inmutables. Renombrar un recurso no cambia su identidad; recrear una VM con el mismo nombre genera otro sujeto. Dos VMs que comparten un rol Basaltic siguen teniendo sujetos distintos. El destino debe verificar la firma con el JWKS descubierto del emisor antes de confiar en los claims. Decodificar un JWT sin verificarlo sirve para inspeccionar su contenido, pero no demuestra nada.

Mantener un archivo de token

La versión 1.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:
El comando permanece en ejecución. Usa --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
Configura la aplicación para esperar al archivo de token antes de su primera solicitud a AWS. El helper renueva las pruebas de identidad; el SDK AWS las intercambia y renueva las credenciales AWS. Consulta la configuración AWS.

Revocación y límites

Eliminar el rol, cambiar sus permisos o revocar la sesión de rol Basaltic subyacente bloquea nuevas emisiones mediante esa autorización. Los JWTs de identidad existentes siguen siendo utilizables hasta caducar, como máximo en cinco minutos. Son pruebas bearer, no tokens de un solo uso. Las credenciales ya emitidas por un servicio externo siguen las reglas de duración y revocación de ese servicio. Una prueba de cinco minutos puede producir una sesión AWS más larga. Para detener el acceso AWS existente, usa también los controles de revocación de sesiones de AWS. Todos los procesos que alcanzan el endpoint de metadatos de la VM pueden solicitar pruebas mediante el rol adjunto. Los permisos del archivo de token limitan a sus lectores locales; no aíslan procesos que pueden acceder a los metadatos por sí mismos. Usa VMs separadas para cargas que necesiten identidades de nube separadas. Desvincular un rol detiene nuevas pruebas por metadatos. Las sesiones Basaltic existentes aún pueden llamar a la API de tokens hasta ser revocadas o caducar; revócalas también al retirar el acceso.