Configurar Políticas de Gerenciamento de Identidades e Acessos

O serviço Data Flow requer que políticas comuns sejam configuradas no IAM (Identity and Access Management) para gerenciar e executar aplicativos Spark.

Você pode usar os modelos de política no serviço IAM ou criar manualmente as políticas. Para obter mais informações sobre como as políticas do serviço IAM funcionam, consulte a documentação do serviço Identity and Access Management sem Domínios de Identidades ou a documentação do serviço Identity and Access Management com Domínios de Identidades. Crie as quatro políticas a seguir:
  • política de nível de serviço de fluxo de dados
  • dataflow-admins-política
  • política de dataflow-data-engineers
  • dataflow-sql-users-policy

Modelos de Política do Serviço Data Flow

O serviço Data Flow tem quatro Modelos de Política Comuns. Eles são listados na ordem em que você precisa criar as políticas.

Permitir que administradores do serviço Data Flow gerenciem todos os Aplicativos e Execuções
Para usuários administrativos (ou super usuários) do serviço que podem executar qualquer ação no serviço, incluindo o gerenciamento de aplicativos pertencentes a outros usuários e execuções iniciadas por qualquer usuário na tenancy deles, sujeitas às políticas designadas ao grupo
Permitir que usuários do serviço Data Flow gerenciem seus próprios Aplicativos e Execuções.
Todos os outros usuários que só têm autorização para criar e excluir seus próprios aplicativos. Mas eles podem executar qualquer aplicativo em sua tenancy e não ter outros direitos administrativos, como excluir aplicativos de propriedade de outros usuários ou cancelar execuções iniciadas por outros usuários.
Permite que o serviço Data Flow execute ações em nome do usuário ou grupo em objetos dentro da tenancy.
O serviço Data Flow precisa de permissão para executar ações em nome do usuário ou grupo nos objetos da tenancy.
(Opcional) Permite que usuários do serviço Data Flow criem, editem ou alterem pontos finais privados.
Esse modelo de política permite o uso da família de redes virtuais, permite o acesso a recursos mais específicos, permite o acesso a operações específicas e permite a alteração da configuração da rede.

Criando Políticas com Modelos do IAM Policy Builder

Use os modelos do IAM Policy Builder para criar suas políticas para o Serviço Data Flow.

Usando modelos do Policy Builder no IAM sem Domínios de Identidade ou com Domínios de Identidade, siga as etapas para usar a Console a fim de criar uma política:
  1. No menu de navegação, selecione Identity & Security.
  2. Em Identidade selecione Políticas.
3. Criando dataflow-service-level-policy
  1. Na página Políticas, selecione Criar Política.
  2. Dê à política o Nome dataflow-service-level-policy.
  3. (Opcional) Digite uma Descrição para ajudá-lo a localizar a política. Não inclua informações confidenciais.
  4. Selecione o compartimento na raiz de sua tenancy.
  5. Em Casos de Uso da Política, selecione Data Flow.
  6. Em Modelos de Política Comuns, selecione Allow Data Flow service to perform common actions on behalf of users.
    A política Permitir que o serviço Data Flow execute ações comuns em nome do usuário é selecionada e as instruções de política para ela são exibidas.
  7. Selecione Criar.
4. Criando dataflow-admins-policy
  1. Na página Políticas, selecione Criar Política.
  2. Dê à política o Nome dataflow-admins-policy.
  3. (Opcional) Digite uma Descrição para ajudá-lo a localizar a política. Não inclua informações confidenciais.
  4. Selecione o compartimento na raiz da tenancy.
  5. Em Casos de Uso da Política, selecione Data Flow.
  6. Em Modelos de Política Comuns, selecione Let dataflow-admins perform common admin operations related to Data Flow service.
    A política Permitir que administradores de fluxo de dados executem operações administrativas comuns relacionadas ao serviço Data Flow é selecionada e as instruções de política para ele são exibidas.
  7. Selecione Criar.
5. Criando política de dataflow-data-engineers-data
  1. Na página Políticas, selecione Criar Política.
  2. Dê à política o Nome dataflow-data-engineers-policy.
  3. (Opcional) Digite uma Descrição para ajudá-lo a localizar a política. Não inclua informações confidenciais.
  4. Para Compartimento, selecione dataflow-compartment.
  5. Em Casos de Uso da Política, selecione Data Flow.
  6. Em Modelos de Política Comuns, selecione Let dataflow-data-engineers perform common data engineering operations using Data Flow service.
    A política Permitir que dataflow-data-engineers executem operações comuns de engenharia de dados usando o serviço Data Flow é selecionada e as instruções de política para ela são exibidas.
  7. Selecione Grupos.
  8. Na lista de grupos, selecione dataflow-data-engineers.
  9. Em Local, selecione dataflow-compartment.
  10. Selecione Criar.
6. Criando dataflow-sql-users-policy
  1. Na página Políticas, selecione Criar Política.
  2. Dê à política o Nome dataflow-sql-users-policy.
  3. (Opcional) Digite uma Descrição para ajudá-lo a localizar a política. Não inclua informações confidenciais.
  4. Para Compartimento, selecione dataflow-compartment.
  5. Em Casos de Uso da Política, selecione Data Flow.
  6. Em Modelos de Política Comuns, selecione Let dataflow-sql-users read and connect to Data Flow Interactive SQL clusters via JDBC or ODBC.
    A política Permitir que dataflow-SQL-users leiam e se conectem aos clusters de SQL Interativa do serviço Data Flow via JDBC ou ODBC está selecionada, e as instruções de política para ela são exibidas.
  7. Selecione Grupos.
  8. Na lista de grupos, selecione dataflow-sql-users.
  9. Em Local, selecione dataflow-compartment.
  10. Selecione Criar.

Criar Políticas Manualmente

Em vez de usar os modelos no serviço IAM para criar as políticas do Serviço Data Flow, você mesmo pode criá-las no Criador de Política do IAM.

Seguindo as etapas do Gerenciamento de Políticas no IAM com Domínios de Identidades ou sem Domínios de Identidades para criar manualmente as seguintes políticas:

Políticas do Usuário do Serviço Data Flow
Como prática geral, categorize seus usuários do Data Flow em dois grupos para ter uma clara separação de autoridade:
  • Para usuários administrativos (ou super usuários) do serviço que podem executar qualquer ação no serviço, incluindo o gerenciamento de aplicativos pertencentes a outros usuários e execuções iniciadas por qualquer usuário na tenancy deles, sujeitas às políticas designadas ao grupo:
    • Crie um grupo no seu serviço de identidade chamado dataflow-admin e adicione usuários a este grupo.
    • Crie uma política chamada dataflow-admin e adicione as seguintes instruções:
      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'}}
    Ela inclui acesso ao bucket dataflow-logs.
  • A segunda categoria é para todos os outros usuários que só têm autorização para criar e excluir seus próprios aplicativos. Mas eles podem executar qualquer aplicativo em sua tenancy e não ter outros direitos administrativos, como excluir aplicativos de propriedade de outros usuários ou cancelar execuções iniciadas por outros usuários.
    • Crie um grupo no seu serviço de identidade chamado dataflow-users e adicione usuários a este grupo.
    • Crie uma política chamada dataflow-users e adicione as seguintes instruções:
      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 do Oracle Cloud Infrastructure Logging

Essas políticas permitem que você use o Oracle Cloud Infrastructure Logging com o serviço Data Flow.

Para ativar logs, você deve conceder ao seu usuário acesso de gerenciamento no grupo de logs e acesso ao recurso. Os logs e grupos de logs usam o resource-type log-group, mas para pesquisar o conteúdo de logs, você deve usar o resource-type log-content. Adicione as seguintes 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>

Configurando uma Política para o Serviço Spark Streaming

Para usar o Spark Streaming com o serviço Data Flow, você precisa de mais do que as políticas comuns.

Você deve ter criado as políticas comuns usando os modelos do IAM Policy Builder ou manualmente.

Você pode usar o IAM Policy Builder para gerenciar o acesso às origens e sumidouros que seus aplicativos de streaming consomem ou para os quais produzem. Por exemplo, o pool de streams específico ou o bucket de Armazenamento de Objetos específico que estão em um local que você escolhe. Ou você pode seguir estas etapas para criar uma política manualmente:

  1. Crie uma política chamada dataflow-streaming-policy na raiz da sua tenancy.
  2. Adicione as instruções a seguir para permitir que Execuções do Serviço Data Flow no compartimento dataflow-compartment consumam ou produzam de um pool de streams específico. O pool de streams tem um ID de stream-pool-ocid1 e um bucket do Object Storage chamado 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>'}