Una prueba de identidad y un token de acceso a la API tienen fines distintos. Un JWT OIDC acredita la identidad durante el intercambio. Las credenciales resultantes autorizan solicitudes según los permisos del rol de destino. Los tokens bearer de la API Basaltic usan una clave de firma separada y no sustituyen a los tokens de identidad de VM.
Generar un token mediante la API
Una cuenta de servicio autenticada o una sesión de rol asumido puede llamar aGetWebIdentityToken. Los usuarios humanos primero asumen un rol de la cuenta. La cuenta seleccionada debe coincidir con la carga autenticada. Los metadatos siguen disponibles para que la VM obtenga su prueba directamente.
Concede iam:GetWebIdentityToken sobre el CRN del propio rol o cuenta de servicio del solicitante. Restringe basalt:IdentityTokenAudience al destino. Por ejemplo:
BASALTIC_TOKEN. Mantén privada la respuesta:
token y expires_at. La duración predeterminada es de 300 segundos; los valores explícitos van de 60 a 300. La sesión de origen debe seguir siendo válida durante ese período. basalt:IdentityTokenDurationSeconds puede restringirlo más. Renueva llamando de nuevo al endpoint.
El sujeto se deriva de la identidad autenticada. No se aceptan nombres, sujetos elegidos por el solicitante ni claims JWT arbitrarios:
Elegir la audiencia de destino
Laaudience se elige para la plataforma receptora, no está fijada a AWS. Usa el valor que espera esa plataforma y configura permisos de emisión y confianza correspondientes. Los ejemplos de AWS usan sts.amazonaws.com; otro servicio puede exigir una URL, un identificador de cliente o una URN. La audiencia basaltic está reservada para tokens de la API Basaltic.
El claim JWT es aud. La forma iam.basaltic.sh:aud es una clave de condición de confianza de AWS que hace referencia a ese claim. Otras plataformas usan su propia configuración de mapeo de claims. Deben admitir JWTs externos de cargas de trabajo y firmas ES256 de Basaltic; una integración de inicio de sesión OIDC interactivo por sí sola no basta.
Aceptar una identidad externa
Deben superarse tres comprobaciones independientes:- Registra el emisor en la misma cuenta que el rol de destino, con las audiencias que acepta esa cuenta.
- Añade el CRN del proveedor a la política de confianza del rol y restringe el sujeto.
- Adjunta al rol políticas de permisos para las operaciones que necesita la carga.
Restringir la confianza
Vincula siempre la confianza al sujeto previsto. Usa también una condición de audiencia cuando un proveedor acepte varias audiencias, pero el rol deba aceptar solo una.Subject es una cadena. Audience es un conjunto, aunque el JWT contenga una sola audiencia: su condición necesita set_operator: "for_any_value" para comprobar pertenencia. Una condición escalar equals en Audience no coincide con ese conjunto.
Los proveedores genéricos de clientes exponen el emisor, el sujeto y la audiencia verificados para evaluar la confianza. Los claims personalizados arbitrarios del JWT no están disponibles como claves de política. No supongas que un claim de instancia EC2, una etiqueta de job de CI u otro campo personalizado restringe la confianza, salvo que el propio sujeto compatible aporte esa restricción.
Para GitHub Actions, usa el sujeto exacto emitido para tu workflow, incluidos los IDs inmutables del propietario y del repositorio cuando existan. Restringe la organización o el repositorio y la rama o el entorno previstos. Los proveedores GitHub exigen una restricción positiva de organización o repositorio en el sujeto. El nombre de sesión es una etiqueta de auditoría; no cambia el sujeto verificado.
Intercambiar la prueba
Envía el JWT y el CRN completo del rol de destino al endpoint público de IAM. El intercambio usa el propio JWT y no requiere una clave de acceso ni un token bearer Basaltic existente.account en la solicitud. La respuesta contiene credenciales temporales de clave de acceso y un token bearer. Usa el bearer para las APIs Basaltic y las credenciales temporales para el endpoint compatible con S3. Consulta autenticación.
Las sesiones de rol Basaltic duran una hora por defecto. Una duración explícita debe ser de al menos 900 segundos y respetar el máximo configurado del rol, hasta 12 horas. La caducidad de la prueba determina hasta cuándo se puede intercambiar; no acorta una sesión ya emitida.
Renovación y revocación
Obtén una nueva prueba de identidad del emisor e intercámbiala antes de que caduque la sesión Basaltic. Este intercambio no tiene refresh token OIDC. Actualizar las audiencias de un proveedor o eliminarlo impide nuevos intercambios que dejen de cumplir el registro. Cambiar la confianza del rol afecta a nuevos intercambios. Las sesiones existentes siguen siendo válidas hasta caducar o revocarse. Revoca una sesión para invalidar su bearer y sus credenciales temporales. Recrear un proveedor con el mismo nombre no restaura su vínculo de confianza anterior; actualiza la política del rol para autorizar al nuevo proveedor. Los proveedores marcados comois_system son gestionados por la plataforma y no se pueden modificar ni eliminar. Las cargas de clientes deben registrar su propio emisor accesible públicamente.
Descubrimiento y claves
Basaltic publica dos documentos de metadatos con fines distintos:
Descubre y almacena en caché el JWKS adecuado; no fijes una sola clave de firma. Durante la rotación se pueden publicar varias claves públicas. Verifica
kid, algoritmo, emisor, audiencia, sujeto y caducidad del JWT.

