Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
En esta página se describe cómo crear espacios de Apigee en tu organización de Apigee para gestionar las políticas de Gestión de Identidades y Accesos (IAM) de los recursos de la API de Apigee a gran escala.
En esta guía se describen los pasos necesarios para hacer lo siguiente:
- Crear un espacio
- Gestionar miembros y roles en un espacio
- Ver todos los espacios de una organización
- Obtener detalles del espacio
- Actualizar un espacio
- Eliminar un espacio
Para obtener más información sobre las ventajas de usar Apigee Spaces para gestionar tus recursos de API, consulta Apigee Spaces.
Antes de empezar
Antes de empezar a usar los espacios, ten en cuenta lo siguiente:
- Aprovisionar Apigee. Confirma que la organización de suscripción o de pago por uso de Apigee que quieres usar se ha aprovisionado. Para obtener más información sobre los pasos necesarios para aprovisionar Apigee, consulta la introducción al aprovisionamiento.
- Obtén tus credenciales de autenticación. Antes de ejecutar comandos para crear y gestionar espacios en la línea de comandos, obtén tus credenciales de autenticación de
gcloud
con el siguiente comando:export TOKEN=$(gcloud auth print-access-token)
Roles y permisos necesarios
Make sure that you have the following role or roles on the project: Apigee > Apigee Organization Admin
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Ir a IAM - Selecciona el proyecto.
- Haz clic en Conceder acceso.
-
En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.
- En la lista Selecciona un rol, elige un rol.
- Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
- Haz clic en Guardar.
- ORG_NAME es el nombre de tu organización de Apigee.
- SPACE_NAME es el nombre y el ID del espacio.
- DISPLAY_NAME es el nombre del espacio tal como debe aparecer en la interfaz de Apigee en la consola de Cloud. Si no se proporciona ningún nombre visible, se usará el nombre del espacio.
- Lista de miembros del espacio
- El rol o la lista de roles concedidos a los miembros
- ORG_NAME es el nombre de la organización de Apigee.
- SPACE_NAME es el nombre del espacio.
- USER_EMAIL es la dirección de correo de un usuario que vas a añadir al espacio.
- IAM_ROLE es el nombre del rol de IAM que vas a asignar al usuario como miembro del espacio.
- ORG_NAME es el nombre de la organización de Apigee.
- SPACE_NAME es el nombre del espacio.
- GROUP_EMAIL es la dirección de correo de un grupo que vas a añadir al espacio.
- IAM_ROLE es el nombre del rol de gestión de identidades y accesos que vas a asignar al equipo como miembro del espacio.
- ORG_NAME es el nombre de la organización de Apigee.
- SPACE_NAME es el nombre del espacio.
- ORG_NAME es el nombre de la organización de Apigee.
- SPACE_NAME es el nombre del espacio.
- ORG_NAME es el nombre de la organización de Apigee.
- SPACE_NAME es el nombre y el ID del espacio.
- DISPLAY_NAME es el nuevo nombre visible del espacio.
- Más información sobre Apigee Spaces
- Consulta cómo gestionar recursos de API con Apigee Spaces.
- Consulta la documentación sobre gestión de identidades y accesos (IAM).
Crear un espacio
Para realizar esta tarea, necesitas el permiso apigee.spaces.create
.
Este permiso se incluye en el rol Apigee Organization Admin
.
Para crear un espacio en tu organización de Apigee, usa el siguiente comando:
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces" \ --data-raw '{ "name":"SPACE_NAME", "displayName":"DISPLAY_NAME", }'
Donde:
Por ejemplo, el siguiente comando crea un espacio llamado rojo en la organización acme:
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ https://apigee.googleapis.com/v1/organizations/acme/spaces \ --data-raw '{ "name":"red", "displayName":"Red", }'
Una vez que hayas creado un espacio en tu organización, los miembros de la organización que usen la interfaz de Apigee en la consola de Cloud verán el espacio como un parámetro disponible al crear recursos de la API en la interfaz. Además, cuando veas listas de proxies de API, productos de API y flujos compartidos en la interfaz de usuario, el espacio aparecerá como un atributo de los recursos de API asignados a ese espacio.
Espacios.Gestionar miembros y roles en un espacio
Una vez que hayas creado un espacio, podrás añadir miembros del equipo y asignarles los roles de gestión de identidades y accesos necesarios para crear y gestionar recursos de la API en el espacio. Los usuarios de Apigee solo pueden crear y gestionar recursos en los espacios en los que sean miembros del equipo y tengan los permisos adecuados. Como el control de acceso de IAM se concede a nivel de espacio, los miembros de la organización no pueden acceder a los recursos de la API de Apigee que pertenecen al espacio ni gestionarlos, a menos que se les añada específicamente al espacio. Para obtener una descripción general de los roles y permisos de gestión de identidades y accesos necesarios para gestionar los recursos de espacio, consulta Crear y gestionar recursos de espacio.
Añadir un miembro de la organización a un espacio
Cuando se añade un miembro de una organización a un espacio, se crea un enlace de política de gestión de identidades y accesos para el espacio que toma dos argumentos:
Para realizar esta tarea, necesitas el permiso apigee.spaces.setIamPolicy
.
Este permiso se incluye en el rol Apigee Organization Admin
.
Para añadir un miembro de la organización a un espacio y asignarle un rol de gestión de identidades y accesos, usa el siguiente comando:
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:setIamPolicy" -d \ '{ "policy":{ "bindings":[ { "members": ["user:USER_EMAIL"], "role": "roles/IAM_ROLE" } ] } }'
Donde:
Por ejemplo, este comando añade el usuario mi-correo@acme.com al espacio rojo de la organización acme y le asigna el rol de IAM apigee.spaceContentEditor
:
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:setIamPolicy" -d \ '{ "policy":{ "bindings":[ { "members": ["user:my-email@acme.com"], "role": "roles/apigee.spaceContentEditor" } ] } }'
Se pueden añadir roles y permisos adicionales a los miembros de un espacio actualizando la política de gestión de identidades y accesos del espacio. Para actualizar la política de gestión de identidades y accesos de un espacio, utiliza el método setIamPolicy
descrito en esta sección con la lista revisada de roles y permisos que quieras. Se creará una política de gestión de identidades y accesos para el espacio, con los roles y permisos ajustados en consecuencia.
Añadir un equipo de miembros a un espacio
También puedes añadir un equipo de miembros a un espacio y asignarles uno o varios roles de gestión de identidades y accesos. Para añadir un equipo de miembros a un espacio y asignar un rol de gestión de identidades y accesos, usa el siguiente comando:
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:setIamPolicy" -d \ '{ "policy":{ "bindings":[ { "members": ["group:GROUP_EMAIL"], "role": "roles/IAM_ROLE" } ] } }'
Donde:
Por ejemplo, este comando añade el grupo acme-team@acme.com al espacio rojo de la organización acme y asigna el rol apigee.spaceContentEditor
al grupo:
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:setIamPolicy" -d \ '{ "policy":{ "bindings":[ { "members": ["group:red-team@acme.com"], "role": "roles/apigee.spaceContentEditor" } ] } }'
Como se indica en el artículo Añadir un miembro de la organización a un espacio, el rol de gestión de identidades y accesos apigee.spaceContentEditor
contiene muchos de los permisos necesarios para gestionar los recursos de un espacio.
Sin embargo, es posible que tengas que conceder roles adicionales a los usuarios para que puedan realizar tareas específicas.
Verificar la asignación de la política de gestión de identidades y accesos de espacios
Para realizar esta tarea, necesitas el permiso apigee.spaces.getIamPolicy
.
Este permiso se incluye en el rol Apigee Organization Admin
.
Para comprobar que la política de IAM se ha definido correctamente en el espacio, usa el siguiente comando:
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:getIamPolicy"
Donde:
Por ejemplo, el siguiente comando se usa para confirmar que la política de IAM se ha definido correctamente para el espacio rojo de la organización acme:
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:getIamPolicy"
La salida del comando devuelve la política de gestión de identidades y accesos actual del espacio y debería tener un aspecto similar al siguiente:
{ "version": "0", "bindings": [ { "role": "roles/apigee.spaceContentEditor", "members": [ "group:red-team@acme.com" ] } ] }
En este ejemplo, la política de gestión de identidades y accesos del espacio concede el rol apigee.spaceContentEditor
a los miembros del espacio, en este caso, a los miembros del grupo red-team@acme.com.
Ten en cuenta que los miembros del equipo rojo son los únicos miembros de la organización que tienen acceso al espacio rojo. Esto significa que solo los miembros del equipo rojo pueden crear y gestionar recursos de API en el espacio rojo. Si los miembros de otro equipo de la organización, como team-blue@acme.com, intentan acceder a un proxy de API creado en el espacio red, verán el siguiente error:
{ "error": { "code": 403, "message": "Permission denied on resource \"organizations\/acme\/apis\/proxy-1\" (or it may not exist).", "status": "PERMISSION_DENIED" } }
Quitar miembros de un espacio
Para quitar miembros o un grupo de miembros de un espacio, debes definir una nueva política de IAM para el espacio con una lista revisada de miembros o grupos. Si usas el método setIamPolicy
, se creará una nueva política de IAM para el espacio, y los roles y los miembros se ajustarán en consecuencia.
Por ejemplo, para actualizar los miembros del espacio de blue, primero puedes consultar la política de gestión de identidades y accesos actual con el siguiente comando:
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/blue:getIamPolicy"
La salida del comando devuelve la política de gestión de identidades y accesos actual del espacio y debería tener un aspecto similar al siguiente:
{ "version": "0", "bindings": [ { "role": "roles/apigee.spaceContentEditor", "members": [ "group: blue-team@acme.com", "users: user-a@acme.com, user-b@acme.com, user-c@acme.com" ] } ] }
Para quitar a user-b@acme.com del espacio, usa el siguiente comando:
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-type: application/json" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/blue:setIamPolicy" -d \ '{ "policy":{ "bindings":[ { "members": [ "group:blue-team@acme.com", "users: user-a@acme.com, user-c@acme.com" ] "role": "roles/apigee.spaceContentEditor" } ] } }'
La nueva política de IAM del espacio ya no incluirá user-b@acme.com.
Para quitar a un miembro de un grupo incluido en un espacio, primero debes quitarlo del grupo y, a continuación, volver a ejecutar el comando setIamPolicy para actualizar la política de IAM del espacio con la pertenencia correcta del alias de correo del grupo.
Mostrar todos los espacios de una organización
Para realizar esta tarea, necesitas el permiso apigee.spaces.list
.
Este permiso se incluye en el rol Apigee Organization Admin
.
Para mostrar todos los espacios de una organización de Apigee, usa el siguiente comando:
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces"
Donde ORG_NAME es el nombre de la organización de Apigee.
Por ejemplo, el siguiente comando muestra todos los espacios de la organización acme:
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces"
Este comando devuelve algo parecido a lo siguiente:
{ "spaces": [ { "name": "red", "createTime": "2024-08-02T23:26:03.001512Z", "updateTime": "2024-08-02T23:26:03.001512Z" }, { "name": "blue", "createTime": "2024-08-02T00:34:54.159331Z", "updateTime": "2024-08-02T00:34:54.159331Z" } ] }
Obtener detalles del espacio
Para realizar esta tarea, necesitarás el permiso apigee.spaces.get
.
Este permiso se incluye en el rol Apigee Organization Admin
.
Usa el siguiente comando para obtener los detalles del espacio:
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME"
Donde:
Por ejemplo, el siguiente comando obtiene detalles sobre el espacio rojo de la organización acme:
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/red"
Este comando devuelve algo parecido a lo siguiente:
{ "name": "red", "createTime": "2024-08-02T23:26:03.001512Z", "updateTime": "2024-08-02T23:26:03.001512Z" }
Actualizar un espacio
Para realizar esta tarea, necesitas el permiso apigee.spaces.update
.
Este permiso se incluye en el rol Apigee Organization Admin
.
Para actualizar un espacio de tu organización de Apigee, usa el siguiente comando:
curl -X PATCH -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME" \ --data-raw '{ "displayName":"DISPLAY_NAME" }'
Donde:
Por ejemplo, el siguiente comando actualiza el nombre visible del espacio rojo de la organización acme:
curl -X PATCH -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/red" -d \ '{ "displayName": "Red team space" }'
Eliminar un espacio
Para realizar esta tarea, necesitas el permiso apigee.spaces.delete
.
Este permiso se incluye en el rol Apigee Organization Admin
. Antes de eliminar un espacio, asegúrate de que también se hayan eliminado todos los recursos que contiene.
Para eliminar un espacio de tu organización de Apigee, usa el siguiente comando:
curl -X DELETE -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME"
Por ejemplo, el siguiente comando elimina el espacio rojo de la organización acme:
curl -X DELETE -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/red"
Si intentas eliminar un espacio que aún tiene recursos activos asociados, verás el siguiente error:
{ "error": { "code": 400, "message": "Space \"red\" has resources associated with it. Please delete the resources before deleting the space.", "status": "FAILED_PRECONDITION" } }
Para solucionar el error, elimina o mueve los recursos del espacio antes de intentar eliminarlo.