Configuración del acceso para enlaces de servicio
Los enlaces de servicio en Code Engine utilizan un ID de servicio para acceder a los servicios de IBM Cloud. Un ID de servicio contiene las credenciales para comunicarse con una instancia de servicio en nombre de su proyecto Code Engine. Antes de poder vincular una instancia de servicio a una carga de trabajo de Code Engine, debe configurar el acceso para las vinculaciones en función de si desea que Code Engine cree y gestione automáticamente el ID de servicio por usted o si desea utilizar un ID de servicio que usted gestione.
¿Está interesado en configurar el proyecto de forma que todos los usuarios del proyecto puedan crear y suprimir enlaces de servicio? Con permisos suficientes, puede utilizar las páginas Integraciones de proyecto en la consola para configurar operaciones de enlace de servicio desde una sola página. Si no tiene permisos suficientes para realizar estas acciones, puede utilizar esta página para ayudarle a comprender los permisos necesarios. Consulte Configuración de valores para todo el proyecto.
Para poder enlazar la app, el trabajo o la función a una instancia de servicio de IBM Cloud específica, determine si desea crear y gestionar su propio ID de servicio o si desea que Code Engine cree y gestione automáticamente el ID de servicio. En función de su elección, asigne las políticas de acceso adecuadas. Code Engine utiliza un ID de servicio por proyecto para trabajar con enlaces de servicio.
-
Si desea que Code Engine cree y gestione automáticamente el ID de servicio, configure las políticas de acceso de enlace de servicio predeterminadas. Asegúrese de que se hayan asignado las políticas de acceso adecuadas a la cuenta IBM Cloud que se utiliza con el proyecto Code Engine.
- Si el proyecto Code Engine está en el mismo grupo de recursos que la instancia de servicio con la que desea enlazar, debe configurar las políticas de acceso de enlace de servicio predeterminadas.
- Si el proyecto Code Engine está en un grupo de recursos distinto de la instancia de servicio a la que desea enlazar, tendrá que configurar políticas de acceso de enlace de servicio predeterminadas para Code Engine para crear y gestionar automáticamente el ID de servicio para los enlaces de servicio, y tendrá que configurar el proyecto para enlazar servicios en un grupo de recursos diferente.
-
Si desea más control sobre las políticas de acceso, puede elegir utilizar un ID de servicio personalizado para los enlaces de servicio que está configurado en la instancia de servicio. En este caso, asigne políticas de acceso al ID de servicio personalizado. Deberá configurar el proyecto para utilizar el ID de servicio personalizado.
Uso de las políticas de acceso predeterminadas para el enlace de servicios
De forma predeterminada, Code Engine crea automáticamente un ID de servicio para acceder a todos los servicios del grupo de recursos del proyecto Code Engine cuando la cuenta que se utiliza con el proyecto tiene permisos suficientes. El ID de servicio se crea durante la primera operación de enlace de servicio.
Para utilizar las políticas de acceso de enlace de servicio predeterminadas cuando el proyecto Code Engine está en el mismo grupo de recursos que la instancia de servicio a la que desea enlazar, configure el acceso para Code Engine para crear y gestionar automáticamente el ID de servicio para los enlaces de servicio.
Configuración del acceso para Code Engine para crear y gestionar automáticamente el ID de servicio para enlaces de servicio
Si la instancia de servicio está en el mismo grupo de recursos que el proyecto de Code Engine y desea que Code Engine cree y gestione automáticamente el ID de servicio para el enlace de servicio, la cuenta de IBM Cloud que se utiliza con el
proyecto de Code Engine debe tener acceso de servicio y Writer Operator mínimo.
Con estos permisos establecidos para su cuenta, al crear un enlace de servicio, Code Engine comprueba y configura automáticamente un ID de servicio con acceso Operator y Manager para todos los servicios del grupo
de recursos del proyecto Code Engine. Code Engine utiliza este ID de servicio para acceder a los servicios IBM Cloud con enlaces de servicio.
Siempre que Code Engine crea el ID de servicio que se utiliza para los enlaces de servicio para el proyecto, este ID de servicio se reutiliza con los enlaces de servicio subsiguientes dentro del mismo proyecto, a menos que ejecute el mandato
de CLI project update para configurar el proyecto para enlazar servicios en un grupo de recursos diferente o que ejecute el mandato de CLI project update para utilizar un ID de servicio
personalizado de con permisos de acceso para los enlaces de servicio de Code Engine.
Por ejemplo, supongamos que desea que Code Engine cree y gestione automáticamente el ID de servicio para los enlaces de servicio para una instancia de servicio de IBM Cloudant. Además, suponga que la cuenta my-user que se utiliza
con el proyecto Code Engine y la instancia de servicio IBM Cloudant están en el mismo grupo de recursos.
Los pasos siguientes describen una forma de configurar los permisos de acceso necesarios para que Code Engine pueda crear y gestionar automáticamente el ID de servicio para los enlaces de servicio para my-user. El propietario
de la cuenta para la instancia de servicio realiza los pasos siguientes para asignar permisos para my-user.
-
Cree un grupo de recursos de IAM para los usuarios que crean enlaces de servicio de Code Engine.
- Inicie la Visión general de acceso(IAM).
- Seleccione Gestionar > Cuenta > Grupos de recursos > Crear grupo de recursos.
- Cree un grupo de recursos; por ejemplo,
CodeEngine_servicebindings_resourcegroup.
-
Cree las instancias de servicio con las que desea enlazar en el mismo grupo de recursos. Para este ejemplo, cree una instancia de servicio de IBM Cloudant en el grupo de recursos
CodeEngine_servicebindings_resource group. -
Cree un grupo de acceso de IAM para los usuarios que crean enlaces de servicio de Code Engine.
-
Inicie la Visión general de acceso(IAM).
-
Seleccione Gestionar > Acceso (IAM) > Grupos de acceso.
-
Cree un grupo; por ejemplo,
CodeEngine_servicebindings_accessgroup. -
Desde este nuevo grupo de acceso, pulse el separador Acceso y asigne las dos políticas de acceso siguientes al grupo de acceso. Para la primera política de acceso,
- En «Servicio», selecciona «
All Identity and Access enabled services». - Para Recursos, seleccione el grupo de recursos específico que ha creado en el paso anterior; por ejemplo,
CodeEngine_servicebindings_resourcegroup. - Para el acceso de grupo de recursos, seleccione
Viewer. - Para roles y acciones, seleccione Acceso de plataforma de
Administrator. - Pulse Añadir para añadir la política de acceso a este grupo de acceso.
- En «Servicio», selecciona «
-
Asigne la segunda política de acceso para este grupo de acceso.
- En «Servicio», selecciona «
Code Engine». - Para Recursos, seleccione el grupo de recursos específico que ha creado en el paso anterior; por ejemplo,
CodeEngine_servicebindings_resourcegroup. - Para el acceso de grupo de recursos, seleccione
Viewer. - Para roles y acciones, seleccione Acceso de servicio de
Writery Acceso de plataforma deOperator. - Pulse Añadir para añadir la política de acceso a este grupo de acceso.
- En «Servicio», selecciona «
-
Pulse Asignar para asignar las políticas de acceso a este grupo de acceso.
-
-
Añada el usuario
my-usera este grupo de acceso.
Ahora está preparado para crear enlaces de servicio en Code Engine donde Code Engine crea automáticamente un ID de servicio con permisos suficientes para crear credenciales de servicio para las instancias de servicio especificadas. Consulte enlazar una instancia de servicio a una carga de trabajo de app, trabajo o función.
Configuración de un proyecto para enlazar servicios en un grupo de recursos diferente
De forma predeterminada, Code Engine crea automáticamente un ID de servicio para acceder a todos los servicios del grupo de recursos del proyecto Code Engine cuando la cuenta que se utiliza con el proyecto tiene permisos suficientes. El ID de servicio se crea durante la primera operación de enlace de servicio.
Sin embargo, si la instancia de servicio de IBM Cloud que desea enlazar con el proyecto de Code Engine está en un grupo de recursos distinto del grupo de recursos de Code Engine para la carga de trabajo y desea que Code Engine cree y gestione automáticamente el ID de servicio para el servicio debe completar las acciones siguientes antes de crear el enlace de servicio.
- Configure el acceso para Code Engine para crear y gestionar automáticamente el ID de servicio para los enlaces de servicio.
- Actualice el proyecto para acceder a las instancias de servicio en otros grupos de recursos.
Por ejemplo, si el proyecto Code Engine está en el grupo de recursos Default y desea enlazar con una instancia de servicio que existe en el grupo de recursos dev, debe actualizar el proyecto Code Engine para que Code
Engine pueda acceder a las instancias de servicios de otros grupos de recursos.
Actualizar el proyecto para acceder a instancias de servicio en otros grupos de recursos
Cuando los recursos a los que desea enlazar estén en un grupo de recursos diferente, configure el proyecto Code Engine con la CLI para que pueda acceder a los recursos en el grupo de recursos diferente. Utilice el mandato ibmcloud ce project update y especifique la opción --binding-resource-group para configurar un proyecto Code Engine para el acceso de enlace de servicio para todas las instancias de servicio de un grupo de recursos. Este mandato indica al proyecto Code
Engine a qué grupo de recursos se puede enlazar. Puede actualizar el proyecto para enlazar servicios a un grupo de recursos diferente sólo con la CLI.
El project update comando funciona dentro del proyecto seleccionado como contexto actual. Antes de utilizar el comando project update confirme que se encuentra en el proyecto deseado.
Utilice el mandato ibmcloud ce project current para visualizar detalles del proyecto de destino actual. Si es necesario, utiliza el
ibmcloud ce project select comando seleccionar tu proyecto como contexto actual.
-
Para configurar el acceso de enlace de servicio para todas las instancias de servicio en el grupo de recursos Default,
ibmcloud ce project update --binding-resource-group Default -
Para configurar el acceso de enlace de servicio para todas las instancias de servicio de un grupo de recursos, especificando el ID del grupo de recursos,
ibmcloud ce project update --binding-resource-group-id abcdabcdabcdabcdabcdabcdabcdabcdPara obtener una lista de los grupos de recursos, incluidos los ID de grupo de recursos, ejecute
ibmcloud resource groups. -
Para configurar el acceso a la vinculación de servicios para todas las instancias de servicio de todos los grupos de recursos:
ibmcloud ce project update --binding-resource-group "*"
Al ejecutar el project update comando, se crea un identificador de servicio para el proyecto, que se utiliza para configurar el proyecto actual con los enlaces de servicio. Si no tiene permiso para crear este
ID de servicio, recibirá un error que indica que el proyecto no está preparado para trabajar con enlaces de servicio. Hable con el administrador de la cuenta sobre las políticas de acceso o solicite al administrador que configure el acceso para Code Engine para crear y gestionar automáticamente el ID de servicio para los enlaces de servicio.
Utilización de un ID de servicio personalizado para enlaces de servicio
Si desea más control sobre las políticas de acceso o los grupos de recursos, puede crear un ID de servicio personalizado para la instancia de servicio.
Su organización puede optar por utilizar un ID de servicio personalizado para acceder a una instancia de servicio específica si el propietario de la cuenta no desea otorgar acceso Administrator para un usuario a los Todos los servicios habilitados para identidad y acceso dentro de un grupo de recursos, que es necesario para que Code Engine cree y gestione automáticamente el ID de servicio para los enlaces de servicio. Es posible que el propietario de la cuenta desee limitar el acceso del usuario a un tipo
de servicio o instancia de servicio específicos. En estos casos, un ID de servicio personalizado proporciona este control.
Para utilizar un ID de servicio personalizado para enlaces de servicio,
- Cree un ID de servicio personalizado con permisos de acceso para los enlaces de servicio de Code Engine.
- Configure el proyecto para utilizar el ID de servicio personalizado.
Creación de un ID de servicio personalizado con permisos de acceso para los enlaces de servicio Code Engine
Cuando utilice un ID de servicio personalizado, debe proporcionar al ID de servicio personalizado Operator acceso de plataforma para que este ID de servicio pueda crear las credenciales de servicio para los enlaces de servicio.
Por ejemplo, supongamos que desea crear un enlace de servicio para enlazar una carga de trabajo de Code Engine a una instancia de servicio de IBM Cloudant. Sin embargo, no desea otorgar al usuario Administrator acceso para todos
los Todos los servicios habilitados para identidad y acceso dentro de un grupo de recursos. Sin embargo, desea otorgar al usuario acceso a una instancia específica de IBM Cloudant.
Los pasos siguientes describen una forma de configurar un ID de servicio personalizado con los permisos de acceso necesarios para que Code Engine pueda crear enlaces de servicio para my-user. El propietario de la cuenta para la
instancia de servicio realiza los pasos siguientes para crear un ID de servicio personalizado.
-
Cree un grupo de recursos de IAM para los usuarios que crean enlaces de servicio de Code Engine.
- Inicie la Visión general de acceso(IAM).
- Seleccione Gestionar > Cuenta > Grupos de recursos > Crear grupo de recursos.
- Cree un grupo de recursos; por ejemplo,
CodeEngine_servicebindings_resourcegroup.
-
Cree las instancias de servicio con las que desea enlazar en el mismo grupo de recursos. Para este ejemplo, cree una instancia de servicio de IBM Cloudant en el grupo de recursos
CodeEngine_servicebindings_resource group. -
Cree un grupo de acceso de IAM para los usuarios que crean enlaces de servicio de Code Engine.
- Inicie la Visión general de acceso(IAM).
- Seleccione Gestionar > Acceso (IAM) > Grupos de acceso.
- Cree un grupo; por ejemplo,
CodeEngine_servicebindings_accessgroup. - En este nuevo grupo de acceso, pulse el separador Acceso y asigne la siguiente política de acceso para el servicio Code Engine.
- Para Servicio, seleccione Code Engine.
- Para Recursos, seleccione el grupo de recursos específico que ha creado en el paso anterior; por ejemplo,
CodeEngine_servicebindings_resourcegroup. - Para el acceso de grupo de recursos, seleccione
Viewer. - Para roles y acciones, seleccione Acceso de servicio de
Writery Acceso de plataforma deOperator. - Pulse Añadir para añadir la política de acceso a este grupo de acceso.
- Pulse Asignar para asignar las políticas de acceso a este grupo de acceso.
- Cree las instancias de servicio con las que desea enlazar en el mismo grupo de recursos. Para este ejemplo, cree una instancia de servicio de IBM Cloudant en el grupo de recursos
CodeEngine_servicebindings_resource group.
-
Añada el usuario
my-usera este grupo de acceso. -
Cree un ID de servicio para la instancia de servicio con la que desea enlazar.
- Inicie la Visión general de acceso(IAM).
- Seleccione Gestionar > Acceso (IAM) > ID de servicio.
- Cree un ID de servicio; por ejemplo,
CodeEngine_servicebindings_serviceid. - Desde este nuevo ID de servicio, pulse Asignar grupo. En la página Asignar acceso, seleccione Política de acceso. No seleccione Grupos de acceso. Asigne la siguiente política de acceso,
- Para Servicio, seleccione la instancia de servicio con la que desea enlazar; por ejemplo, la instancia de servicio IBM Cloudant.
- Para Recursos, seleccione el grupo de recursos específico que ha creado para los usuarios que pueden crear enlaces de servicio a este servicio.
- Para el acceso de grupo de recursos, seleccione
Viewer. - Para roles y acciones, seleccione Acceso de servicio de
Managery Acceso de plataforma deOperator. - Pulse Añadir para añadir la política de acceso a este ID de servicio.
- Pulse Asignar para asignar las políticas de acceso a este ID de servicio.
Ahora que tiene un ID de servicio personalizado para los enlaces de servicio, debe configurar el proyecto Code Engine para utilizar el ID de servicio personalizado.
Configuración de un proyecto para utilizar un ID de servicio personalizado
Para configurar un proyecto Code Engine para que el enlace de servicio utilice un ID de servicio personalizado que gestione, utilice el mandato de CLI ibmcloud ce project update y especifique la opción --binding-service-id. Puede actualizar el proyecto para utilizar un ID de servicio personalizado sólo con la CLI.
El project update comando funciona dentro del proyecto seleccionado como contexto actual. Antes de utilizar el comando project update confirme que se encuentra en el proyecto deseado.
Utilice el mandato ibmcloud ce project current para visualizar detalles del proyecto de destino actual. Si es necesario, utiliza el
ibmcloud ce project select comando seleccionar tu proyecto como contexto actual.
-
Para averiguar el ID de tu servicio personalizado, haz clic en «Detalles» en la página de tu ID de servicio desde la consola o bien ejecuta el comando de la CLI «
ibmcloud iam service-ids». -
Ejecute el mandato
ibmcloud ce project update. Por ejemplo, si el ID de tu servicio esServiceId-12a3456b-c78d-901e-f2a3b4cabcde:ibmcloud ce project update --binding-service-id ServiceId-12a3456b-c78d-901e-f2a3b4cabcde
Siempre que ejecute el mandato project update --binding-service-id, Code Engine sustituye cualquier ID de servicio existente y utiliza este ID de servicio para los enlaces de servicio.
Próximos pasos
Ahora que el acceso a los enlaces de servicio está configurado, está preparado para enlazar una instancia de servicio a una carga de trabajo de app, trabajo o función.