Preparar el arrendamiento para el desarrollo de funciones

Para permitir que una función acceda a otro recurso de Oracle Cloud Infrastructure, debe incluir la función en un grupo dinámico y, a continuación, crear una política para otorgar acceso al grupo dinámico a ese recurso.

Crear un Grupo Dinámico para Funciones

Los grupos dinámicos permiten agrupar instancias de equipo Oracle Cloud Infrastructure como actores "principales" (similares a los grupos de usuarios). A continuación, puede crear políticas para permitir que las instancias realicen llamadas de API en los servicios de Oracle Cloud Infrastructure.

Al crear un grupo dinámico, en lugar de agregar miembros explícitamente al grupo, se define un juego de reglas coincidentes para definir los miembros del grupo. Por ejemplo, una regla puede especificar que todas las instancias de un compartimento concreto son miembros del grupo dinámico. Los miembros pueden cambiar dinámicamente a medida que se inician y terminan las instancias en ese compartimento.

  1. Abra la consola, haga clic en Identidad y, a continuación, haga clic en Grupos dinámicos. Se muestra una lista de los grupos dinámicos del arrendamiento.
  2. Haga clic en Crear Grupo Dinámico.
  3. Introduzca lo siguiente:
    • Nombre: Nombre único para el grupo. El nombre debe ser único en todos los grupos del arrendamiento (grupos dinámicos y grupos de usuarios). No puede cambiarlo más tarde.
    • Descripción: Una descripción amistosa. No puede cambiar esto en la consola, pero puede cambiarlo mediante la API.
  4. Introduzca las reglas de coincidencia. Los recursos que cumplen los criterios de regla son miembros del grupo.
    • Regla 1: Para permitir que todas las funciones de un compartimento puedan acceder a un recurso, introduzca una regla similar a la siguiente, donde <compartment_id> es el OCID del compartimento donde se desplegarán la aplicación y las funciones asociadas:
      ALL {resource.type = 'fnfunc', resource.compartment.id = '<compartment_id>'}
    • Introduzca reglas adicionales según sea necesario. Para agregar una regla, haga clic en Regla +Additional.

  5. Si tiene permisos para crear un recurso, también tiene permisos para aplicar etiquetas de formato libre a ese recurso. Para aplicar una etiqueta definida, debe tener permisos para utilizar el espacio de nombres de etiqueta. Si no está seguro de si debe aplicar etiquetas, omita esta opción (puede aplicar etiquetas más adelante) o pregunte al administrador.
  6. Haga clic en Crear Grupo Dinámico.

    Se verifica la sintaxis de regla de coincidencia, pero los OCID que utilizó en las reglas no lo son. Asegúrese de que los OCID introducidos son correctos.

Crear Políticas para Funciones

Una política permite a un grupo trabajar de ciertas maneras con tipos específicos de recursos en un compartimento concreto.

El grupo y compartimento para el que está escribiendo la política ya debe existir.

En los siguientes pasos, agregue políticas al compartimento en el que se desplegarán la aplicación y las funciones asociadas y al compartimento raíz de la instancia.

  1. Abra el menú de navegación. En Gobernanza y Administración, haga clic en Identidad y, a continuación, en Políticas.
    Se muestra una lista de las políticas del compartimento que está viendo.
  2. En la lista de compartimentos de la izquierda, seleccione el compartimento en el que se desplegarán la aplicación y las funciones asociadas.
  3. Haga clic en Crear política.
  4. Proporcione lo siguiente:
    • Nombre: Nombre único de la política. El nombre debe ser único en todas las políticas del arrendamiento. No puede cambiarlo más adelante.
    • Descripción: Una descripción amistosa. Puede cambiarlo más tarde si lo desea.
    • Control de versiones de políticas: seleccione Mantener política actualizada si desea que la política permanezca actualizada con cualquier cambio futuro en las definiciones de verbos y recursos del servicio. O si prefiere limitar el acceso de acuerdo con las definiciones actuales en una fecha específica, seleccione Usar fecha de versión e introduzca esa fecha en formato AAAA-MM-DD.
  5. Proporcione una sentencia de política. Para agregar una o más sentencias predefinidas, haga clic en Personalizar (Avanzado).
    Agregue las siguientes sentencias de política en las que <group_name> es el nombre del grupo dinámico asociado y <compartment_name> es el compartimento en el que se desplegarán la aplicación y las funciones asociadas:
    • Agregue las siguientes sentencias para permitir que las funciones accedan a recursos en el compartimento:
      Allow dynamic-group <group_name> to manage buckets in compartment <compartment_name>
      Allow dynamic-group <group_name> to manage objects in compartment <compartment_name>
      allow dynamic-group <group_name> to use autonomous-databases in compartment <compartment_name> where request.permission='AUTONOMOUS_DATABASE_CONTENT_READ'
      Allow dynamic-group <group_name> to inspect instances in compartment <compartment_name>
      Allow service FaaS to use virtual-network-family in compartment <compartment_name>
      Allow group fleetAdmins to manage functions-family in compartment <compartment_name>
    • Agregue las siguientes sentencias para que Oracle Cloud Infrastructure Events pueda llamar a funciones cuando se cargue un archivo en Oracle Cloud Infrastructure Object Storage:
      Allow dynamic-group <group_name> to inspect streams in compartment <compartment_name>
      Allow dynamic-group <group_name> to manage cloudevents-rules in compartment <compartment_name>
      Allow dynamic-group <group_name> to use stream-push in compartment <compartment_name>
      Allow dynamic-group <group_name> to use stream-pull in compartment <compartment_name>
  6. Haga clic en Crear.
    La política recién creada se muestra con las políticas del compartimento.
  7. En la lista de compartimentos de la izquierda, seleccione el compartimento raíz (<instance-name> (root)) y repita los pasos 3 y 4 anteriores.
  8. Proporcione una sentencia de política. Para agregar una o más sentencias predefinidas, haga clic en Personalizar (Avanzado).
    Agregue las siguientes sentencias de política en las que <compartment_name> es el compartimento en el que se desplegarán la aplicación y las funciones asociadas:
    Allow service FaaS to manage repos in tenancy
    Allow service FaaS to use virtual-network-family in compartment <compartment_name>
  9. Haga clic en Crear.
    La política recién creada se muestra con las políticas para el compartimento raíz.