Imagina esto: quieres automatizar la creación de cuentas SAP BTP y entornos Cloud Foundry con Terraform sin gestionar nombres de usuario ni contraseñas ni rotar credenciales de larga duración
Gracias a la integración OIDC con proveedores de CI CD como Github Gitlab Jenkins y Azure DevOps ya es posible prescindir de credenciales persistentes y usar tokens breves seguros y just in time
En este artículo explicamos cómo configurar Github Actions para autenticarse directamente contra SAP BTP mediante el flujo JWT Bearer Assertion y usar Terraform u OpenTofu para aprovisionar recursos de BTP entornos Cloud Foundry y más
Qué es un JWT Bearer Assertion: es un mecanismo por el cual un cliente demuestra su identidad ante un servidor de autorización usando un token JWT firmado en lugar de una contraseña tradicional Los tokens son efímeros y mejoran la seguridad y la rotación
Resumen operativo: Github genera un token OIDC breve para el workflow ese token se obtiene en tiempo de ejecución y se pasa como variable de entorno a los proveedores Terraform para BTP y Cloud Foundry El SAP Cloud Identity Service valida la firma del token contra las claves públicas JWKS de Github y si todo es correcto permite las llamadas a la API en nombre de la acción
Secuencia de eventos 1 El workflow de Github se dispara 2 Github OIDC emite un JWT para el workflow 3 El JWT se guarda en variables de entorno y se usa como assertion token 4 Los proveedores Terraform para btp y cloudfoundry usan ese token para autenticarse 5 SAP Cloud Identity Service verifica el token contra JWKS 6 Si la validación es correcta se permiten las operaciones
Paso 1 establecer confianza entre SAP BTP y SAP Cloud Identity Services siguiendo la documentación oficial Esto incluye configurar el proveedor de identidad corporativo y mapear claims necesarios
Paso 2 crear el repositorio en Github en la organización deseada El nombre del repositorio será parte de la identidad del repo user en Cloud Identity Services
Paso 3 configurar SAP Cloud Identity Services Añadir el usuario repo con formato repo slash Organizacion slash nombre del repositorio Añadirlo a un grupo Mapear repository name como NameId y configurar la federación e identidad OIDC para Github
Paso 4 añadir el usuario repo creado en Cloud Identity Services al Global Account de BTP y asignarle los role collections adecuados por ejemplo Global Account Administrator solo si es necesario para la tarea evite privilegios excesivos
Paso 5 añadir contenido al repositorio Estructura sugerida .github workflows deploy.yml main.tf provider.tf terraform.tfvars variables.tf En main.tf puede definir recursos como btp_subaccount la instancia de entorno cloudfoundry y un cloudfoundry_space Ejemplo de recursos incluye crear un subaccount inicializar Cloud Foundry y crear un espacio dentro de CF
Archivo variables.tf declare variables globalaccount e idp y otras que necesite Archivo provider.tf configure required_providers btp y cloudfoundry Configure provider btp con globalaccount e idp Configure provider cloudfoundry con api_url adecuado a la region y origin igual al idp Tenga en cuenta que las credenciales serán los assertion tokens pasados por las variables de entorno BTP_ASSERTION y CF_ASSERTION_TOKEN
Paso 6 añadir el workflow de Github El workflow debe pedir permiso id token write en permissions Generar el id token usando acciones como actions slash github script o mediante curl y establecer la salida con el token Luego exportar BTP_ASSERTION y CF_ASSERTION_TOKEN con la salida y ejecutar terraform init y terraform apply pasando variables como region idp globalaccount El flujo crea un token temporal firmado que SAP Cloud Identity valida y que los proveedores Terraform consumen
Paso 7 disparar el workflow desde la pestaña Actions en Github introducir la region idp global account id y tenant issuer url El job generará el token y Terraform realizará las operaciones definidas
Ventajas clave automatización sin credenciales de larga duración rotación y responsabilidad reducida mayor seguridad y menos gestión manual Integración compatible con Terraform y OpenTofu
Buenas prácticas usar backends remotos cifrados como HCP Vault S3 GCS o Azure Blob para estados Terraform aplicar principio de mínimo privilegio proteger el repositorio en Github exigir revisores para workflows que alteren infraestructura y probar primero en entornos de desarrollo y pruebas
Conclusión federando Github Actions con SAP Cloud Identity y aprovechando JWT Bearer Assertion se puede aprovisionar recursos SAP BTP y entornos Cloud Foundry sin almacenar ni rotar credenciales de servicio de larga duración Esto simplifica pipelines y mejora la seguridad
Sobre Q2BSTUDIO Somos Q2BSTUDIO una empresa de desarrollo de software a medida especializada en aplicaciones a medida y software a medida Ofrecemos servicios de inteligencia artificial e ia para empresas desarrollamos agentes IA integrables y soluciones de power bi para inteligencia de negocio Además somos expertos en ciberseguridad y en servicios cloud aws y azure Nuestros servicios incluyen consultoría implementación y soporte para proyectos de inteligencia artificial servicios inteligencia de negocio aplicaciones a medida ciberseguridad y modernización cloud
Si buscas automatizar despliegues integrar IA en procesos o construir software a medida Q2BSTUDIO puede ayudar con soluciones seguras y escalables combinando experiencia en Terraform Github Actions SAP BTP y Cloud Foundry con capacidades en inteligencia artificial agentes IA power bi ciberseguridad y servicios cloud aws y azure
Palabras clave para mejorar posicionamiento aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio ia para empresas agentes IA power bi