Agrega condiciones de IAM

Esta página se aplica a Apigee y Apigee Hybrid.

Las Condiciones de administración de identidades y accesos (IAM) te permiten definir y aplicar el control de acceso condicional para los recursos de Google Cloud, incluidos los recursos de API Hub. Para obtener más información sobre las Condiciones de IAM, consulta Descripción general de las Condiciones de IAM.

En el concentrador de API, puedes aplicar el acceso condicional según los siguientes atributos de condición de recursos de IAM:

  • Atributo de condición resource.service: Se usa para configurar el acceso condicional según el servicio de Google Cloud que se usa. Por ejemplo, puedes configurar una condición que limite el acceso de un usuario a los recursos que usan apihub.googleapis.com. Para obtener una lista de valores admitidos, consulta Valores de servicios de recursos.
  • Atributo de condición resource.type: Se usa para configurar el acceso condicional según el tipo de recurso al que se accede. Por ejemplo, puedes configurar una condición que limite el acceso de un usuario a apihub.googleapis.com/Api. Para obtener una lista de valores admitidos, consulta Valores de tipos de recursos.
  • Atributo de condición resource.name: Se usa para configurar el acceso condicional según todo o parte del nombre de un recurso. Para obtener una lista de los formatos de nombre de concentrador de API admitidos, consulta Formato de nombre de recurso.

Agregar condición de IAM

Para agregar una condición de IAM a una principal existente (usuario, grupo o cuenta de servicio), sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página IAM.

    Ir a IAM

  2. Selecciona tu proyecto, organización o carpeta.
  3. En la lista de principales, busca el principal al que deseas agregar la condición de IAM y haz clic en (Editar principal).

    Aparecerá el panel Editar acceso.

  4. Busca la función a la que deseas agregar la condición de IAM y haz clic en + Agregar condición de IAM.
  5. En el panel Agregar condición, proporciona la siguiente información:
    1. Título: Ingresa un nombre para la condición que deseas agregar a la función.
    2. Descripción: Ingresa una descripción para la condición (opcional).
    3. Puedes agregar una condición mediante el Creador de condiciones o el Editor de condiciones.

      El creador de condiciones proporciona una interfaz interactiva en la que puedes seleccionar el tipo de condición y el operador deseados, así como otros detalles aplicables sobre la expresión. El editor de condiciones proporciona una interfaz basada en texto en la que puedes ingresar de forma manual una expresión de condición mediante la sintaxis CEL.

      Para obtener instrucciones detalladas sobre cómo usar el Creador de condiciones o el Editor de condiciones, consulta Configura el acceso basado en recursos.

    4. Haz clic en Guardar para aplicar la condición.
  6. Haz clic en Guardar de nuevo desde el panel Editar acceso para actualizar la principal.

Ejemplos de uso de condiciones de IAM para el concentrador de APIs

Ejemplo 1: Control de acceso para todos los recursos de la API que comienzan con la condición de IAM según el nombre del recurso.

La siguiente expresión de condición define el control de acceso de la siguiente manera:

  • Acceso a los recursos de la API que comienzan con un prefijo. Esto incluye el acceso a todos los recursos de la API, incluidas las versiones, las implementaciones, las especificaciones, las operaciones y las definiciones.
  • Acceso no condicional predeterminado basado en roles a otros recursos del concentrador de la API
  (
    resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/apis/API_ID_PREFIX") ||
    (
      resource.type != "apihub.googleapis.com/Api" &&
      resource.type != "apihub.googleapis.com/Version" &&
      resource.type != "apihub.googleapis.com/Spec" &&
      resource.type != "apihub.googleapis.com/ApiOperation" &&
      resource.type != "apihub.googleapis.com/Definition"
    )
  )

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu Google Cloud proyecto.
  • LOCATION: La ubicación del concentrador de APIs.
  • API_ID_PREFIX: Es el prefijo del nombre del recurso de API.

Ejemplo 2: Control de acceso para varias APIs con condiciones de IAM según el tipo de recurso

La siguiente expresión de condición define el control de acceso de la siguiente manera:

  • Acceso a los recursos de la API del concentrador de APIs que comienzan con un prefijo
  • Acceso al recurso de versión del concentrador de APIs que comienza con un ID de versión especificado.
  • Acceso a los recursos de especificación del concentrador de APIs que comienzan con un ID de especificación especificado
  • Acceso no condicional predeterminado basado en roles a otros recursos del concentrador de la API
  (
    resource.service == "apihub.googleapis.com" &&
    resource.type == "apihub.googleapis.com/Api" &&
    resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/apis/API1_ID_PREFIX")
  ) ||
  (
    resource.service == "apihub.googleapis.com" &&
    resource.type == "apihub.googleapis.com/Version" &&
    resource.name == "projects/PROJECT_ID/locations/LOCATION/apis/API2_ID/versions/API2_VERSION_ID"
  ) ||
  (
    resource.service == "apihub.googleapis.com" &&
    resource.type == "apihub.googleapis.com/Spec" &&
    resource.name == "projects/PROJECT_ID/locations/LOCATION/apis/API3_ID/versions/API3_VERSION_ID/specs/API3_SPEC_ID"
  ) ||
  (
    resource.type != "apihub.googleapis.com/Api" &&
    resource.type != "apihub.googleapis.com/Version" &&
    resource.type != "apihub.googleapis.com/Spec" &&
    resource.type != "apihub.googleapis.com/ApiOperation" &&
    resource.type != "apihub.googleapis.com/Definition"
  )
Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID de tu Google Cloud proyecto.
  • LOCATION: La ubicación del concentrador de APIs.
  • API1_ID_PREFIX: Es el prefijo del primer nombre de recurso de API.
  • API2_ID: Es el ID del segundo recurso de API.
  • API2_VERSION_ID: Es el ID del segundo recurso de versión de la API.
  • API3_ID: Es el ID del tercer recurso de API.
  • API3_VERSION_ID: Es el ID del tercer recurso de versión de la API.
  • API3_SPEC_ID: Es el ID del tercer recurso de especificación de la API.