Observação:

Ler Mensagens Publicadas em um OCI Stream do Editor de Dados de Eventos do Oracle Access Governance

Introdução

A Publicação de Dados de Eventos é um processo para exportar dados únicos e publicar continuamente eventos de dados contínuos para sistemas externos, como uma conta na nuvem da Oracle Cloud Infrastructure (OCI). Com o Oracle Access Governance, você tem a flexibilidade de exportar eventos únicos e publicar continuamente eventos de dados, como identidade, coleções de identidades, política, recurso, acesso a recursos etc., para sua tenancy na nuvem. Você pode usar esses dados para derivar insights, armazenar dados para conformidade ou para analisar dados de gerenciamento de acesso e governança.

Um evento refere-se a qualquer alteração no estado dos dados que ocorre quando há criação, modificação ou exclusão de componentes do Oracle Access Governance, como identidade, políticas, recursos etc. Usando o Event Data Publisher, os administradores obtêm controle total sobre o acesso e os dados de identidade e podem usá-los para automatizar o registro de eventos e simplificar os relatórios de conformidade.

O fluxo de Publicação de Eventos de Dados usa buckets do OCI para exportação única e publica atualizações subsequentes em streams do OCI ou buckets do OCI, dependendo do tamanho do arquivo.

Fluxo de Publicação de Eventos de Dados

Neste tutorial, mostraremos como as atualizações do usuário no OCI são capturadas e publicadas nos fluxos do OCI pelo Oracle Access Governance e como consumir e decodificar essas mensagens de fluxo usando um script por meio do OCI Cloud Shell.

Observação: o Editor de Dados de Eventos suporta a exportação de identidades, coleções de identidades, políticas e recursos; no entanto, este tutorial se concentra na captura de eventos para identidades.

Visão Geral do Script Shell

O objetivo desse script shell é recuperar e decodificar mensagens publicadas em um fluxo do OCI. Essas mensagens são codificadas de uma forma que as torna ilegíveis em seu formato bruto. Ao executar o script, você pode ver as mensagens em um formato claro e legível por humanos, garantindo que as informações críticas estejam acessíveis mesmo depois que elas desaparecerem da Console do OCI.

Especificamente, o script cria um cursor para marcar um ponto de partida para ler mensagens do fluxo do OCI especificado. O cursor é baseado em um deslocamento especificado e em uma partição cujos valores são extraídos produzindo uma mensagem de fluxo de teste. Usando o cursor, o script extrai mensagens do fluxo do OCI. Eventualmente, o script processa e decodifica cada mensagem recuperada.

Público-alvo

Administradores do Oracle Access Governance e do Oracle Cloud Infrastructure Identity and Access Management (OCI IAM).

Objetivos

Pré-requisitos

Tarefa 1: Recuperar Parâmetros-Chave do OCI Stream

Nesta tarefa, faremos log-in na Console do OCI para recuperar os principais parâmetros do stream.

  1. Faça log-in na Console do OCI, navegue até Analytics & AI, Messaging e clique em Streaming.

  2. Certifique-se de selecionar o compartimento no qual seu stream está localizado e clique no stream para exibir detalhes.

  3. Anote os valores do OCID e do Ponto Final de Mensagens do stream.

    Parâmetros do Fluxo de Coleta

  4. Clique em Produzir Mensagem de Teste, digite a mensagem de amostra como Dados e clique em Produzir. Ela deve retornar uma mensagem de Sucesso.

    Gerar Mensagem de Fluxo de Teste

  5. Clique em Cancelar para fechar a janela Testar Fluxo.

  6. Clique em Carregar Mensagens para verificar a mensagem de teste.

  7. Na seção Mensagens Recentes, anote os valores de Partição e Deslocamento.

    Obter Parâmetros da Mensagem do Fluxo

Tarefa 2: Atualizar Atributos do Usuário no OCI

Nesta tarefa, faremos alterações nos atributos do usuário no OCI.

  1. Vá para a Console do OCI, navegue até Identidade e Segurança e clique em Domínios.

  2. Selecione seu domínio e clique em Usuários. Clique no usuário que você deseja atualizar e clique em Editar Usuário.

  3. Atualize os valores de País, Título, Departamento, Centro de Custos, Tipo de Usuário, Número do Funcionário e assim por diante.

  4. Clique em Salvar alterações.

Observação: Se preferir, você poderá atualizar mais alguns usuários.

Tarefa 3: Executar Carga de Dados no Oracle Access Governance

Nesta tarefa, executaremos o carregamento de dados no Oracle Access Governance para sincronizar as alterações do OCI.

  1. Faça log-in no Oracle Access Governance, navegue até Administração de Serviços e Sistemas Orquestrados.

  2. Localize o sistema orquestrado para o OCI, clique no ícone de três pontos (IPv) e selecione Gerenciar Integração.

  3. Clique em Carregar dados agora e aguarde a conclusão da carga de dados.

    Executar carregamento de dados

Tarefa 4: Configurar o OCI Cloud Shell para Executar Script para Capturar Mensagens do Stream

Nesta tarefa, configuraremos o OCI Cloud Shell e usaremos o script fornecido para decodificar mensagens publicadas pelo Oracle Access Governance.

  1. Vá para a Console do OCI, clique em Cloud Shell no canto superior direito e aguarde a inicialização da janela do cloud shell.

    Navegue até o Cloud Shell

    Inicie o Cloud Shell

  2. Inicialize os parâmetros a seguir.

    export STREAM_OCID=<STREAM_OCID_VALUE>
    export ENDPOINT=<MESSAGES_ENDPOINT>
    export CURSOR_TYPE="AFTER_OFFSET"
    export PARTITION=<PARTITION>
    export OFFSET=<OFFSET>
    
    • Substitua os parâmetros STREAM_OCID, ENDPOINT, PARTITION e OFFSET do stream pelos valores capturados na Tarefa 1.

    • O CURSOR_TYPE é definido como AFTER_OFFSET para incluir todas as mensagens geradas após o valor de deslocamento especificado para leitura. Não modifique esse valor.

      Observação: Um valor de amostra para o deslocamento pode ser obtido da mensagem de teste, mas você deve escolher um valor após o qual deseja capturar as mensagens. Isso é o que o CURSOR_TYPE como AFTER_OFFSET faz.

  3. Crie um arquivo de script shell e torne-o executável.

    touch ag-streaming.sh
    chmod u+x ag-streaming.sh
    
  4. Abra o script com o vi editor.

    vi ag-streaming.sh
    
  5. Pressione i para entrar no Modo de Inserção. Cole o conteúdo a seguir e pressione Esc e :wq! para salvar as alterações.

    #!/bin/bash
    
    # Validate required environment variables
    
    required_vars=("STREAM_OCID" "ENDPOINT" "CURSOR_TYPE" "PARTITION" "OFFSET")
    
    for var in "${required_vars[@]}"; do
       if [ -z "${!var}" ]; then
          echo "Error: Environment variable $var is not set."
          exit 1
       fi
    done
    
    # Create a cursor for the OCI Stream
    # echo "Creating a cursor for the OCI Stream..."
    oci streaming stream cursor create-cursor \
       --partition "$PARTITION" \
       --stream-id "$STREAM_OCID" \
       --type "$CURSOR_TYPE" \
       --offset "$OFFSET" \
       --endpoint "$ENDPOINT" > cursor.json
    
    # Extract cursor value
    cursor=$(jq -r '.data.value' cursor.json)
    if [ -z "$cursor" ]; then
       echo "Error: Failed to retrieve cursor value."
       exit 1
    fi
    
    # Read messages from the OCI Stream
    echo "Reading messages from the OCI Stream..."
    messages=$(oci streaming stream message get \
       --stream-id "$STREAM_OCID" \
       --cursor "$cursor" \
       --endpoint "$ENDPOINT")
    
    # Check if messages were retrieved
    if [ -z "$messages" ] || ! echo "$messages" | jq -e '.data[] | select(.key != null)' > /dev/null 2>&1; then
       echo "No valid messages found."
       exit 1
    fi
    
    # Extract and decode the data from messages
    echo "Processing messages..."
    
    # Extract and count the number of messages
    message_count=$(echo "$messages" | jq -r '.data[] | select(.key != null) | .value' | wc -l)
    
    echo "$messages" | jq -r '.data[] | select(.key != null) | .value' | while read -r value; do
       if [ -n "$value" ]; then
          counter=$((counter + 1))
          echo
          echo "Decoding message $counter of $message_count..."
    
          # Base64 decode the message
          decoded_message=$(echo "$value" | base64 --decode 2>/dev/null || echo "Error decoding message")
          final_decoded_message=$(echo "$decoded_message" | base64 --decode 2>/dev/null || echo "Error decoding message further")
    
          # Print the decoded message
          echo "Decoded Message : $final_decoded_message"
       fi
    done
    
  6. Execute o script e redirecione as mensagens de saída para um arquivo (messages_dump.txt é usado como exemplo). Como alternativa, você pode executar o script para exibir mensagens no console.

    ./ag-streaming.sh > messages_dump.txt
    
  7. Faça download do arquivo messages_dump.txt do OCI Cloud Shell para verificar as mensagens decodificadas das atualizações do usuário feitas anteriormente.

Neste tutorial, aprendemos a ler mensagens de um stream do OCI que são publicadas no editor de dados de eventos no Oracle Access Governance. Vimos como podemos aproveitar a CLI (Interface de Linha de Comando) do OCI usando o OCI Cloud Shell para ler as mensagens com base em um deslocamento especificado. Essas mensagens contêm alterações pertencentes a usuários, grupos, recursos e associações de políticas do OCI e, portanto, são importantes da perspectiva de auditoria, conformidade e geração de relatórios.

Próximas Etapas

Após concluir este tutorial, você poderá analisar o conteúdo das mensagens de evento de dados publicadas do Oracle Access Governance para fluxos do OCI. Opcionalmente, você pode configurar processos adicionais para analisar as mensagens de evento para requisitos de auditoria e conformidade. Você também pode mover dados de fluxos para o Autonomous Data Warehouse para executar análise e visualização avançadas. Os dados também podem ser movidos para o OCI Object Storage para armazenamento de longo prazo ou para executar jobs do Hadoop/Spark.

Confirmações

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.