Consulta la documentación de
Apigee Edge.
En este tema, se describe cómo crear espacios de Apigee en tu organización de Apigee para administrar las políticas de Identity and Access Management para 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
- Administrar miembros y roles en un espacio
- Enumerar todos los espacios de una organización
- Obtener detalles del espacio
- Actualizar un espacio
- Borrar un espacio
Para obtener más información sobre los beneficios de usar Apigee Spaces para administrar tus recursos de API, consulta Apigee Spaces.
Antes de comenzar
Antes de comenzar a usar Spaces, ten en cuenta lo siguiente:
- Aprovisiona Apigee. Confirma que se aprovisione la organización de suscripción o pago por uso de Apigee que deseas usar. Para obtener más información acerca de los pasos necesarios para aprovisionar Apigee, consulta Introducción al aprovisionamiento.
- Obtén tus credenciales de autenticación. Antes de ejecutar comandos para crear y administrar Spaces 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 requeridos
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 Grant access.
-
En el campo Principales nuevas, ingresa tu identificador de usuario. Esta suele ser la dirección de correo electrónico de una Cuenta de Google.
- En la lista Seleccionar un rol, elige un rol.
- Para otorgar funciones adicionales, haz clic en Agregar otro rol y agrega cada rol adicional.
- Haz clic en Guardar.
Crea un espacio
Para realizar esta tarea, necesitas el permiso apigee.spaces.create
.
Este permiso se incluye en la función 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" }'
Aquí:
- ORG_NAME es el nombre de tu organización de Apigee.
- SPACE_NAME es el nombre del espacio que crearás.
Por ejemplo, con el siguiente comando, se 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", }'
Administra miembros y roles en un espacio
Una vez que hayas creado un espacio, puedes agregar miembros del equipo al espacio y asignar los roles de IAM necesarios para crear y administrar los recursos de API en el espacio. Los usuarios de Apigee solo pueden crear y administrar recursos en los espacios en los que sean miembros del equipo a los que se les hayan otorgado los permisos adecuados. Debido a que el control de acceso de IAM se otorga a nivel de los espacios, los miembros de la organización no pueden acceder a los recursos de la API de los espacios ni administrarlos, a menos que se agreguen específicamente a los espacios. Para obtener una descripción general de los roles y permisos de IAM necesarios para administrar los recursos de Space, consulta Roles y permisos necesarios.
Agrega un miembro de la organización a un espacio
Cuando se agrega un miembro de la organización a un Space, se crea una vinculación de política de IAM para el Space que toma dos argumentos:
- La lista de miembros de Space
- El rol o la lista de roles otorgados a los miembros
Para realizar esta tarea, necesitas el permiso apigee.spaces.setIamPolicy
.
Este permiso se incluye en la función Apigee Organization Admin
.
Para agregar un miembro de la organización a un Space y asignarle un rol de IAM, 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" } ] } }'
Aquí:
- 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 electrónico de un usuario que estás agregando al Space.
- IAM_ROLE es el nombre del rol de IAM que le asignas al usuario como miembro del Space.
Por ejemplo, este comando agrega el usuario mi-correo-electronico@acme.com al Space rojo en la organización acme y le otorga el rol de IAM apigee.apiAdminV2
:
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.apiAdminV2" } ] } }'
Para agregar roles y permisos adicionales a los miembros del Space, actualiza la política de IAM del Space. Para actualizar la política de IAM de un Space, usa el método setIamPolicy
que se describe en esta sección con la lista revisada de roles y permisos deseados. Se creará una nueva política de IAM para el Space, con roles y permisos ajustados según corresponda.
Agrega un equipo de miembros a un Space
Como alternativa, puedes agregar un equipo de miembros a un Space y asignarle uno o más roles de IAM. Para agregar un equipo de miembros a un Space y asignarle un rol de IAM, 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" } ] } }'
Aquí:
- 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 electrónico de un grupo que agregas al Space.
- IAM_ROLE es el nombre del rol de IAM que le asignas al equipo como miembro del Space.
Por ejemplo, este comando agrega el grupo acme-team@acme.com al Space rojo en la organización acme y le otorga el rol apigee.apiAdminV2
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.apiAdminV2" } ] } }'
Como se indica en Agrega un miembro de una organización a un Space, el rol de IAM apigee.apiAdminV2
contiene muchos de los permisos necesarios para administrar los recursos de Space.
Sin embargo, es posible que debas otorgar roles adicionales a los usuarios para que realicen tareas específicas.
Verifica la asignación de la política de IAM de Spaces
Para realizar esta tarea, necesitas el permiso apigee.spaces.getIamPolicy
.
Este permiso se incluye en la función Apigee Organization Admin
.
Para verificar que la política de IAM esté configurada correctamente para el Space, usa el siguiente comando:
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/ORG_NAME/spaces/SPACE_NAME:getIamPolicy"
Aquí:
- ORG_NAME es el nombre de la organización de Apigee.
- SPACE_NAME es el nombre del espacio.
Por ejemplo, el siguiente comando se usa para confirmar que la política de IAM esté configurada correctamente para el Space rojo en la organización acme:
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/red:getIamPolicy"
El resultado del comando muestra la política de IAM actual del Space y debería verse de la siguiente manera:
{ "version": "0", "bindings": [ { "role": "roles/apigee.apiAdminV2", "members": [ "group:red-team@acme.com" ] } ] }
En este ejemplo, la política de IAM del Space otorga el rol apigee.apiAdminV2
a los miembros del Space, 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 a los que se les otorgó acceso al Space rojo. Esto significa que solo los miembros del equipo rojo pueden crear y administrar recursos de API en el Space 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 rojo, 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" } }
Quita miembros de un Space
Para quitar miembros o un grupo de miembros de un Space, deberás configurar una nueva política de IAM para el Space, con una lista revisada de miembros o grupos. Si usas el método setIamPolicy
, se creará una nueva política de IAM para el Space, con los roles y los miembros ajustados según corresponda.
Por ejemplo, para actualizar a los miembros del Space del equipo azul, primero puedes verificar la política de IAM actual con el siguiente comando:
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/blue:getIamPolicy"
El resultado del comando muestra la política de IAM actual del Space y debería verse de la siguiente manera:
{ "version": "0", "bindings": [ { "role": "roles/apigee.apiAdminV2", "members": [ "group: blue-team@acme.com", "users: user-a@acme.com, user-b@acme.com, user-c@acme.com" ] } ] }
Para quitar user-b@acme.com del Space, 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.apiAdminV2" } ] } }'
La nueva política de IAM del Space ya no incluirá user-b@acme.com.
Para quitar a un miembro de un grupo incluido en un Space, primero quítalo del grupo y, luego, vuelve a ejecutar el comando setIamPolicy para actualizar la política de IAM del Space con la membresía correcta para el alias de correo electrónico del grupo.
Enumera todos los espacios de una organización
Para realizar esta tarea, necesitas el permiso apigee.spaces.list
.
Este permiso se incluye en la función Apigee Organization Admin
.
Para enumerar todos los espacios en 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"
En el ejemplo anterior, ORG_NAME es el nombre de la organización de Apigee.
Por ejemplo, el siguiente comando enumera 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 muestra algo similar 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" } ] }
Obtén detalles del espacio
Para realizar esta tarea, necesitarás el permiso apigee.spaces.get
.
Este permiso se incluye en la función 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"
Aquí:
- ORG_NAME es el nombre de la organización de Apigee.
- SPACE_NAME es el nombre del espacio.
Por ejemplo, el siguiente comando obtiene detalles sobre el espacio rojo en la organización acme:
curl -X GET -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/red"
Este comando muestra algo similar a lo siguiente:
{ "name": "red", "createTime": "2024-08-02T23:26:03.001512Z", "updateTime": "2024-08-02T23:26:03.001512Z" }
Actualiza un espacio
Para realizar esta tarea, necesitas el permiso apigee.spaces.update
.
Este permiso se incluye en la función Apigee Organization Admin
.
Para actualizar un espacio en 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" }'
Aquí:
- ORG_NAME es el nombre de la organización de Apigee.
- SPACE_NAME es el nombre del espacio.
- DISPLAY_NAME es el nuevo nombre visible del espacio.
Por ejemplo, con el siguiente comando, se actualiza el nombre visible del espacio rojo en 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" }'
Borra un espacio
Para realizar esta tarea, necesitas el permiso apigee.spaces.delete
.
Este permiso se incluye en la función Apigee Organization Admin
. Antes de borrar
un espacio, asegúrate de que también se hayan borrado todos los recursos del espacio.
Para borrar un espacio en 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 borra el espacio rojo en la organización acme:
curl -X DELETE -H "Authorization: Bearer $TOKEN" \ "https://apigee.googleapis.com/v1/organizations/acme/spaces/red"
Si intentas borrar un espacio con recursos activos aún 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 resolver el error, borra o mueve los recursos del Space antes de intentar borrarlo.
¿Qué sigue?
- Obtén más información sobre Espacios de Apigee.
- Obtén más información para administrar recursos de API con Apigee Spaces.
- Revisa la documentación de Identity and Access Management (IAM).