Configuración de políticas de Identity and Access Management

Data Flow necesita que se configuren políticas comunes en Identity and Access Management (IAM) para gestionar y ejecutar aplicaciones de Spark.

Puede utilizar las plantillas de políticas en IAM o crear manualmente las políticas. Para obtener más información sobre cómo funcionan las políticas de IAM, consulte la documentación de Identity and Access Management without Identity Domains o la documentación de Identity and Access Management with Identity Domains. Cree las cuatro políticas siguientes:
  • política de nivel de servicio de flujo de datos
  • dataflow-admins-policy
  • dataflow-data-engineers-policy
  • dataflow-sql-users-policy

Plantillas de políticas de Data Flow

Data Flow tiene cuatro plantillas de políticas comunes. Se muestran en el orden en el que necesita crear las políticas.

Permitir a los administradores de Data Flow gestionar todas las aplicaciones y ejecuciones
Para usuarios administradores (o super usuarios) del servicio que pueden realizar cualquier acción en el servicio, incluida la gestión de aplicaciones propiedad de otros usuarios y ejecuciones iniciadas por cualquier usuario dentro de su arrendamiento según las políticas asignadas al grupo
Permitir a los usuarios de Data Flow gestionar sus propias aplicaciones y ejecuciones.
Todos los demás usuarios que solo tienen autorización para crear y suprimir sus propias aplicaciones. Sin embargo, pueden ejecutar cualquier aplicación en su arrendamiento y no tener otros derechos administrativos, como la supresión de aplicaciones propiedad de otros usuarios o la cancelación de ejecuciones iniciadas por otros usuarios.
Permite que el servicio Data Flow realice acciones en nombre del usuario o grupo en objetos del arrendamiento.
El servicio Data Flow necesita permiso para realizar acciones en nombre del usuario o grupo en objetos del arrendamiento.
(Opcional) Permita a los usuarios de Data Flow crear, editar o cambiar puntos finales privados.
Esta plantilla de política permite el uso de virtual-network-family, el acceso a recursos más específicos, operaciones específicas y el cambio de la configuración de red.

Creación de políticas mediante plantillas de creador de políticas de IAM

Utilice las plantillas del creador de políticas de IAM para crear las políticas de Data Flow.

Siga los pasos para utilizar la consola para crear una política con plantillas en el generador de políticas en IAM sin dominios de identidad o con dominios de identidad y utilice las plantillas:
  1. En el menú de navegación, seleccione Identity & Security.
  2. En Identidad seleccione Políticas.
3. Creación de política de nivel de servicio de flujo de datos
  1. En la página Políticas, seleccione Crear política.
  2. Asigne a la política el nombre dataflow-service-level-policy.
  3. (Opcional) Introduzca una descripción para buscar la política. No incluir información confidencial.
  4. Seleccione el compartimento en la raíz de su arrendamiento.
  5. En Casos de uso de política, seleccione Data Flow.
  6. En Plantillas de políticas comunes, seleccione Allow Data Flow service to perform common actions on behalf of users.
    Se ha seleccionado la política Permitir que el servicio Data Flow realice acciones comunes en nombre del usuario y se muestran las sentencias de política correspondientes.
  7. Haga clic en Crear.
4. Creando dataflow-admins-policy
  1. En la página Políticas, seleccione Crear política.
  2. Asigne a la política el nombre dataflow-admins-policy.
  3. (Opcional) Introduzca una descripción para buscar la política. No incluir información confidencial.
  4. Seleccione el compartimento en la raíz del arrendamiento.
  5. En Casos de uso de política, seleccione Data Flow.
  6. En Plantillas de políticas comunes, seleccione Let dataflow-admins perform common admin operations related to Data Flow service.
    Se selecciona la política Permitir que dataflow-admins realice operaciones de administración comunes relacionadas con el servicio Data Flow y se muestran las sentencias de política para él.
  7. Haga clic en Crear.
5. Creación de política de ingeniería de datos de flujo de datos
  1. En la página Políticas, seleccione Crear política.
  2. Asigne a la política el nombre dataflow-data-engineers-policy.
  3. (Opcional) Introduzca una descripción para buscar la política. No incluir información confidencial.
  4. En Compartimento, seleccione dataflow-compartment.
  5. En Casos de uso de política, seleccione Data Flow.
  6. En Plantillas de políticas comunes, seleccione Let dataflow-data-engineers perform common data engineering operations using Data Flow service.
    La política Permitir que los ingenieros de datos de flujo de datos realicen operaciones de ingeniería de datos comunes mediante el servicio Data Flow está seleccionada y se muestran las sentencias de política correspondientes.
  7. Seleccione Grupos.
  8. En la lista de grupos, seleccione dataflow-data-engineers.
  9. En Ubicación, seleccione dataflow-compartment.
  10. Haga clic en Crear.
6. Creando dataflow-sql-users-policy
  1. En la página Políticas, seleccione Crear política.
  2. Asigne a la política el nombre dataflow-sql-users-policy.
  3. (Opcional) Introduzca una descripción para buscar la política. No incluir información confidencial.
  4. En Compartimento, seleccione dataflow-compartment.
  5. En Casos de uso de política, seleccione Data Flow.
  6. En Plantillas de políticas comunes, seleccione Let dataflow-sql-users read and connect to Data Flow Interactive SQL clusters via JDBC or ODBC.
    Se ha seleccionado la política Permitir a dataflow-SQL-users leer y conectarse a clusters SQL interactivos de Data Flow mediante JDBC u ODBC, y se muestran las sentencias de política correspondientes.
  7. Seleccione Grupos.
  8. En la lista de grupos, seleccione dataflow-sql-users.
  9. En Ubicación, seleccione dataflow-compartment.
  10. Haga clic en Crear.

Creación manual de políticas

En lugar de utilizar las plantillas de IAM para crear las políticas de Data Flow, puede crearlas usted mismo en el creador de políticas de IAM.

Siga los pasos de Gestión de políticas en IAM con dominios de identidad o sin dominios de identidad para crear manualmente las siguientes políticas:

Políticas de usuario de Data Flow
Como práctica general, clasifique a los usuarios de Data Flow en dos grupos para realizar una separación clara de autoridad:
  • Para usuarios administradores (o superusuarios) del servicio que pueden realizar cualquier acción en el servicio, incluida la gestión de aplicaciones propiedad de otros usuarios y ejecuciones iniciadas por cualquier usuario dentro de su arrendamiento según las políticas asignadas al grupo:
    • Cree un grupo en el servicio de identidad denominado dataflow-admin y agregue usuarios a ese grupo.
    • Cree una política denominada dataflow-admin y agregue las siguientes sentencias:
      ALLOW GROUP dataflow-admin TO READ buckets IN <TENANCY>
      ALLOW GROUP dataflow-admin TO MANAGE dataflow-family IN <TENANCY>
      ALLOW GROUP dataflow-admin TO MANAGE objects IN <TENANCY> WHERE ALL
                {target.bucket.name='dataflow-logs', any {request.permission='OBJECT_CREATE',
                request.permission='OBJECT_INSPECT'}}
    Incluye acceso al cubo dataflow-logs.
  • La segunda categoría es para todos los demás usuarios que solo tienen autorización para crear y suprimir sus propias aplicaciones. Sin embargo, pueden ejecutar cualquier aplicación en su arrendamiento y no tener otros derechos administrativos, como la supresión de aplicaciones propiedad de otros usuarios o la cancelación de ejecuciones iniciadas por otros usuarios.
    • Cree un grupo en el servicio de identidad denominado dataflow-users y agregue usuarios al mismo.
    • Cree una política denominada dataflow-users y agregue las siguientes sentencias:
      ALLOW GROUP dataflow-users TO READ buckets IN <TENANCY>
      ALLOW GROUP dataflow-users TO USE dataflow-family IN <TENANCY>
      ALLOW GROUP dataflow-users TO MANAGE dataflow-family IN <TENANCY> WHERE ANY 
      {request.user.id = target.user.id, request.permission = 'DATAFLOW_APPLICATION_CREATE', 
      request.permission = 'DATAFLOW_RUN_CREATE'}
      ALLOW GROUP dataflow-users TO MANAGE objects IN <TENANCY> WHERE ALL 
      {target.bucket.name='dataflow-logs', any {request.permission='OBJECT_CREATE', 
      request.permission='OBJECT_INSPECT'}}
Políticas de Oracle Cloud Infrastructure Logging

Estas políticas le permiten utilizar Oracle Cloud Infrastructure Logging con Data Flow.

Para activar los logs de servicio, debe otorgar al usuario acceso de gestión en el grupo de logs y acceso al recurso. Los logs y los grupos de logs utilizan el tipo de recurso log-group, pero para buscar el contenido de los logs, debe utilizar el tipo de recurso log-content. Agregue las siguientes políticas:
allow group dataflow-users to manage log-groups in compartment <compartment_name>
allow group dataflow-users to manage log-content in compartment <compartment_name>

Configuración de una política para Spark Streaming

Para utilizar Spark Streaming con Data Flow, necesita más que las políticas comunes.

Debe haber creado las políticas comunes mediante las plantillas del creador de políticas de IAM o manualmente.

Puede utilizar el creador de políticas de IAM para gestionar el acceso a los orígenes y los fregaderos desde los que consumen o producen sus aplicaciones de transmisión. Por ejemplo, el pool de flujos específico o el cubo específico de Object Storage que se encuentran en una ubicación que seleccione. O bien, puede seguir estos pasos para crear una política manualmente:

  1. Cree una política denominada dataflow-streaming-policy en la raíz de su arrendamiento.
  2. Agregue las siguientes sentencias para permitir que las ejecuciones de Data Flow del compartimento dataflow-compartment consuman o produzcan a partir de un pool de flujos específico. El pool de flujos tiene un ID de stream-pool-ocid1 y un cubo de Object Storage denominado stream-bucket-1.
    ALLOW ANY-USER TO {STREAM_INSPECT, STREAM_READ, STREAM_CONSUME, STREAM_PRODUCE} IN TENANCY WHERE ALL
    {request.principal.type='dataflowrun', request.resource.compartment.id = '<compartment_id>', target.streampool.id = 'stream-pool-ocid1'}
    ALLOW ANY-USER TO MANAGE OBJECTS IN TENANCY WHERE ALL 
    {request.principal.type='dataflowrun', request.resource.compartment.id = '<compartment_id>', target.bucket.name = '<bucket_name>'}