- Introdução
- Segurança de dados e conformidade
- Organizações
- Autenticação e segurança
- Licenciamento
- Sobre as licenças
- Preço unificado: estrutura do plano de licenciamento
- Ativar sua licença Enterprise
- Migre do Test Suite para o Test Cloud
- Migração de licença
- Atribuição de Licenças a Tenants
- Atribuição de licenças aos usuários
- Desalocando licenças de usuário
- Monitoring license allocation
- Atribuição excessiva de licenças
- Notificações de licenciamento
- Gerenciamento de Licenças de Usuário
- Tenants e serviços
- Contas e funções
- AI Trust Layer
- Aplicativos Externos
- Notificações
- Geração de logs
- Sobre logs
- Exportação de logs
- Exportação de dados
- Testes em sua organização
- Solução de problemas
- Migração para o Test Cloud
A disponibilidade de funcionalidades depende da plataforma de nuvem que você usa. Para obter detalhes, consulte a página Disponibilidade de recursos.
A nova experiência de Auditoria (Logs unificados) permite exportar logs em formato CSV usando um dos seguintes métodos:
- Opção Exportar na interface do usuário: na seção Logs de auditoria de sua organização ou tenant, selecione Exportar.
- APIs de logs de auditoria: use as APIs de logs de auditoria.
- Script personalizado da UiPath: execute um script desenvolvido pela UiPath para exportar logs do armazenamento de logs de auditoria de longo prazo da UiPath.
Exportando logs usando script
Se você estiver usando a nova experiência de auditoria, poderá usar um script dedicado para exportar logs de auditoria para qualquer período. Essa exportação de script está disponível em todos os planos de licenciamento, com uma retenção de até cinco anos para planos Enterprise e dois anos para todos os outros planos.
Este script é útil quando:
- Acessando o conjunto completo de logs de auditoria para conformidade e investigação, além do limite de 100.000 logs da exportação de interface gráfica.
- Automação do arquivamento de log periódico.
Pré-requisitos
- Um ambiente Linux ou WSL (Windows Subsystem for Linux) com as ferramentas
dos2unix,unzipejqinstaladas. Para instalá-los, execute:sudo apt install dos2unix unzip jqsudo apt install dos2unix unzip jq - A confidential external application in your organization with the
PM.Audit.Read(application) scope assigned. For the full registration procedure, see Adding an external application. - As credenciais do aplicativo externo:
- ID do aplicativo (
client_id) - Segredo do aplicativo (
client_secret)
- ID do aplicativo (
Etapas
- Salve o script a seguir em um arquivo
.sh:appId=$1 appSecret=$2 organizationNameOrId=$3 fromDate=$4 toDate=$5 mode=${6:-s} cloud=${7:-cloud} if [[ $# -lt 5 ]]; then echo "Error: Not all required input parameters provided." echo "Usage: $0 <appId> <appSecret> <organizationNameOrId> <fromDate> <toDate> <mode>(optional: v for verbose, s for silent)" exit 1 fi # Validate "fromDate" date format (MM/DD/YYYY) if ! date -d "$fromDate" &>/dev/null; then echo "Error: Invalid date format for 'fromDate'. Please use MM/DD/YYYY format." exit 1 fi # Validate "to" date format (MM/DD/YYYY) if ! date -d "$toDate" &>/dev/null; then echo "Error: Invalid date format for 'toDate'. Please use MM/DD/YYYY format." exit 1 fi echo $(date +"%Y-%m-%d %H:%M:%S.%3N") "Start Getting UiPath Token." response=$(curl --data-urlencode -X POST "https://${cloud}.uipath.com/${organizationNameOrId}/identity_/connect/token" -$mode \ -d "grant_type=client_credentials" \ -d "scope=PM.Audit.Read" \ -d "client_id=$appId" \ -d "client_secret=$appSecret" \ -H "Content-Type: application/x-www-form-urlencoded") access_token=$(echo "$response" | jq -r '.access_token') if [[ "$access_token" == null ]]; then echo "Error: Access token is null or empty in the response. Please verify the appId and appSecret." exit 1 fi base_dir=$(date +"%Y-%m-%d%H:%M:%S.%3N") echo $base_dir "Start Downloading UiPath Platform Audit logs." # Define the base URL base_url="https://${cloud}.uipath.com/${organizationNameOrId}/orgaudit_/api/query/downloadeventsfromlongtermstore" mkdir -p $base_dir # Iterate through time intervals current_date=$(date -u -d "$fromDate" +"%Y-%m-%dT%H:%M:%SZ") seconds_in_a_day=$((24*60*60)) while [ "$(date -d "$current_date" +%s)" -le "$(date -d "$toDate" +%s)" ]; do next_date=$(date -u -d "$current_date + $(($seconds_in_a_day-1)) seconds" +"%Y-%m-%dT%H:%M:%SZ") # Construct the full URL with the current time interval formatted_current_date=$(date -u -d "$current_date" +"%Y-%m-%dT%H:%M:%SZ" | sed 's/\//%2F/g') formatted_current_date="${current_date}" formatted_next_date=$next_date | sed 's/\//%2F/g' formatted_next_date="${next_date}" full_url="$base_url?from=$formatted_current_date&to=$formatted_next_date" echo $full_url echo "Downloading UiPath Audit Log from $current_date to $next_date" curl -X GET "$full_url" -$mode \ -H "Authorization: Bearer $access_token" \ -o "${base_dir}/${current_date////-}_to_${next_date////-}.zip" # Save the response to a file # Move to the next time interval current_date=$next_date one=1 current_date=$(date -u -d "$current_date + $one seconds" +"%Y-%m-%dT%H:%M:%SZ") done for zip_file in "$base_dir"/*.zip; do zip_file_name="$(basename "$zip_file")" unzip -q "$zip_file" -d "$base_dir/auditlogs/" echo "Extracted ${zip_file_name%.*}" rm "$zip_file" done shopt -s nullglob for zip_file in "$base_dir/auditlogs"/*.zip; do zip_file_name="$(basename "$zip_file")" unzip -q "$zip_file" -d "$base_dir/auditlogs/${zip_file_name%.*}" for data_file in "$base_dir/auditlogs"/${zip_file_name%.*}/*.txt; do data_file_name="$(basename "$data_file")" mv "$data_file" "$base_dir/auditlogs/${data_file_name%.*}_${zip_file_name%.*}.txt" rm -r "$base_dir/auditlogs/${zip_file_name%.*}" done rm "$zip_file" done shopt -u nullglob echo $(date +"%Y-%m-%d %H:%M:%S.%3N") "Downloaded UiPath Platform Audit logs and saved them according to UTC date"appId=$1 appSecret=$2 organizationNameOrId=$3 fromDate=$4 toDate=$5 mode=${6:-s} cloud=${7:-cloud} if [[ $# -lt 5 ]]; then echo "Error: Not all required input parameters provided." echo "Usage: $0 <appId> <appSecret> <organizationNameOrId> <fromDate> <toDate> <mode>(optional: v for verbose, s for silent)" exit 1 fi # Validate "fromDate" date format (MM/DD/YYYY) if ! date -d "$fromDate" &>/dev/null; then echo "Error: Invalid date format for 'fromDate'. Please use MM/DD/YYYY format." exit 1 fi # Validate "to" date format (MM/DD/YYYY) if ! date -d "$toDate" &>/dev/null; then echo "Error: Invalid date format for 'toDate'. Please use MM/DD/YYYY format." exit 1 fi echo $(date +"%Y-%m-%d %H:%M:%S.%3N") "Start Getting UiPath Token." response=$(curl --data-urlencode -X POST "https://${cloud}.uipath.com/${organizationNameOrId}/identity_/connect/token" -$mode \ -d "grant_type=client_credentials" \ -d "scope=PM.Audit.Read" \ -d "client_id=$appId" \ -d "client_secret=$appSecret" \ -H "Content-Type: application/x-www-form-urlencoded") access_token=$(echo "$response" | jq -r '.access_token') if [[ "$access_token" == null ]]; then echo "Error: Access token is null or empty in the response. Please verify the appId and appSecret." exit 1 fi base_dir=$(date +"%Y-%m-%d%H:%M:%S.%3N") echo $base_dir "Start Downloading UiPath Platform Audit logs." # Define the base URL base_url="https://${cloud}.uipath.com/${organizationNameOrId}/orgaudit_/api/query/downloadeventsfromlongtermstore" mkdir -p $base_dir # Iterate through time intervals current_date=$(date -u -d "$fromDate" +"%Y-%m-%dT%H:%M:%SZ") seconds_in_a_day=$((24*60*60)) while [ "$(date -d "$current_date" +%s)" -le "$(date -d "$toDate" +%s)" ]; do next_date=$(date -u -d "$current_date + $(($seconds_in_a_day-1)) seconds" +"%Y-%m-%dT%H:%M:%SZ") # Construct the full URL with the current time interval formatted_current_date=$(date -u -d "$current_date" +"%Y-%m-%dT%H:%M:%SZ" | sed 's/\//%2F/g') formatted_current_date="${current_date}" formatted_next_date=$next_date | sed 's/\//%2F/g' formatted_next_date="${next_date}" full_url="$base_url?from=$formatted_current_date&to=$formatted_next_date" echo $full_url echo "Downloading UiPath Audit Log from $current_date to $next_date" curl -X GET "$full_url" -$mode \ -H "Authorization: Bearer $access_token" \ -o "${base_dir}/${current_date////-}_to_${next_date////-}.zip" # Save the response to a file # Move to the next time interval current_date=$next_date one=1 current_date=$(date -u -d "$current_date + $one seconds" +"%Y-%m-%dT%H:%M:%SZ") done for zip_file in "$base_dir"/*.zip; do zip_file_name="$(basename "$zip_file")" unzip -q "$zip_file" -d "$base_dir/auditlogs/" echo "Extracted ${zip_file_name%.*}" rm "$zip_file" done shopt -s nullglob for zip_file in "$base_dir/auditlogs"/*.zip; do zip_file_name="$(basename "$zip_file")" unzip -q "$zip_file" -d "$base_dir/auditlogs/${zip_file_name%.*}" for data_file in "$base_dir/auditlogs"/${zip_file_name%.*}/*.txt; do data_file_name="$(basename "$data_file")" mv "$data_file" "$base_dir/auditlogs/${data_file_name%.*}_${zip_file_name%.*}.txt" rm -r "$base_dir/auditlogs/${zip_file_name%.*}" done rm "$zip_file" done shopt -u nullglob echo $(date +"%Y-%m-%d %H:%M:%S.%3N") "Downloaded UiPath Platform Audit logs and saved them according to UTC date" - Converta os fins da linha:
dos2unix <script-name>.shdos2unix <script-name>.sh - Torne o script executável:
chmod +x <script-name>.shchmod +x <script-name>.sh - Defina as variáveis necessárias no seu terminal:
client_id='<your-client-id>' client_secret='<your-client-secret>' org_name='<your-org-name>' start_date='MM/DD/YYYY' end_date='MM/DD/YYYY'client_id='<your-client-id>' client_secret='<your-client-secret>' org_name='<your-org-name>' start_date='MM/DD/YYYY' end_date='MM/DD/YYYY' - Execute o script usando o seguinte comando:
./<script-name>.sh $client_id $client_secret $org_name $start_date $end_date. Por exemplo:client_id='<clientId>' client_secret='<clientsecret>' org_name='test_org' start_date='09/01/2025' end_date='10/01/2025' ./<script-name>.sh $client_id $client_secret $org_name $start_date $end_date vclient_id='<clientId>' client_secret='<clientsecret>' org_name='test_org' start_date='09/01/2025' end_date='10/01/2025' ./<script-name>.sh $client_id $client_secret $org_name $start_date $end_date v
Resultado
O script cria um diretório com registro de data/hora em seu local atual e baixa os logs de auditoria para cada dia no intervalo solicitado como arquivos .zip . Em seguida, ele extrai o conteúdo para a subpasta <timestamp>/auditlogs/ como arquivos .txt , cada um nomeado após o intervalo de datas UTC que abrange.
Configuração da Exportação de Logs de Robôs
A disponibilidade de funcionalidades depende da plataforma de nuvem que você usa. Para obter detalhes, consulte a página Disponibilidade de recursos.
Para exportar logs de Robôs gerados em seus serviços do Orchestrator para o Azure, AWS S3 e o Armazenamento do Google Cloud, siga os procedimentos específicos descritos mais abaixo. Os logs são salvos em um arquivo .csv no contêiner uipathrobotlogs . A exportação é feita por tenant o que facilita o seguinte:
- Armazenamento de logs que devem ser mantidos para fins de conformidade e auditoria.
- Analisando e visualizando a saída de logs em sua própria ferramenta de relatórios ou BI.
Observação:
Ao configurar a página de exportação de logs, não suportamos o preenchimento de 30 dias de logs.
-
Faça login na sua conta da UiPath.
-
Acesse Admin e selecione o tenant no painel à esquerda.
-
Select Services.
-
No cartão do Orchestrator, selecione o ícone Mais e selecione Configuração de exportação de logs.
O painel Configuração será aberto à direita da janela
-
Habilite a alternância Enviar logs de robôs para o armazenamento personalizado.
-
Dependendo da sua plataforma de nuvem, continue com as seguintes etapas:
- Test Cloud:
- No menu suspenso Tipo de armazenamento, selecione o provedor de armazenamento para o qual deseja exportar os logs. As seguintes opções estão disponíveis:
- Azure
- AWS S3
- Google Cloud Storage
Observação:A funcionalidade de exportação de log não suporta AWS KMS.
- Após executar as etapas específicas do provedor, o
.csvserá gerado. Baixe o arquivo .csv de exemplo - Os logs serão entregues de hora em hora. Esse intervalo de tempo não é configurável.
- No menu suspenso Tipo de armazenamento, selecione o provedor de armazenamento para o qual deseja exportar os logs. As seguintes opções estão disponíveis:
- Test Cloud Public Sector e Test Cloud Dedicated:
- Continue usando o procedimento descrito na seção Azure .
- Test Cloud:
Azure
Você pode configurar IPs estáticos para a lista de permissões e não abrir sua rede para todos os IPs externos. Vá para Configurações > Rede > Acesso público > Firewall > Intervalo de endereços no Azure Blob Storage para adicionar os IPs estáticos. Verifique a página Configurando o firewall para a lista completa de IPs.
As seguintes opções de armazenamento são suportadas:
- Armazenamento padrão localmente redundante (LRS)
- Armazenamento com redundância geográfica padrão (GRS)
- Armazenamento padrão com redundância geográfica com acesso de leitura (RA-GRS)
- Armazenamento padrão com redundância de zona (ZRS)
- LRS Premium
Para obter mais informações sobre tipos de armazenamento, consulte a página Visão geral da conta de armazenamento na documentação oficial do Azure.
-
No menu suspenso Tipo de Armazenamento, selecione Conta de Armazenamento do Azure.
-
No campo Azure Blob Connection String, digite a string de conexão do blob conforme recuperado do Azure Portal.
-
No campo Nome do contêiner, digite o nome do contêiner usado para armazenar o .
csvno Azure. Por padrão, éuipathrobotlogs. Se um nome de contêiner personalizado for fornecido e ainda não existir, o contêiner será criado para você. -
Selecione Salvar. Uma notificação é exibida avisando que você que configurou a exportação dos logs de robô com sucesso.
-
Na sua Conta de Armazenamento de Blobs no Azure Portal:
- Selecione Rede sob Configurações no painel esquerdo.
- Selecione Permitir acesso de > Todas as redes.
- Selecione Salvar para guardar as alterações.
-
Dentro de uma hora, um arquivo de log
.csvé gerado no armazenamento de blobs. O.csvé gerado no contêineruipathrobotlogs, sob a seguinte hierarquia de pastas[tenant_key]/[year]/[month]/[day]/[hour]/output. É recomendável mapear um tenant para um contêiner, pois a chave do tenant é a única maneira de distinguir entre os tenants se vários forem encaminhados para um contêiner.
AWS S3
Você pode configurar IPs estáticos para a lista de permissões e não abrir sua rede para todos os IPs externos. Use políticas de acesso no AWS S3 para adicionar negar todas as solicitações, a menos que seja da lista aws:SourceIp conforme descrito na página Políticas de bucket para o Amazon S3 do guia do usuário do AWS S3. Verifique a página Configurando o firewall do guia do administrador do Automation Cloud para a lista completa de IPs.
-
No menu suspenso Tipo de armazenamento, selecione o AWS S3.
-
No campo Bucket Name, digite o nome do bucket conforme configurado na AWS.
Observação:O mesmo nome do bucket não pode ser compartilhado por várias organizações.
-
No campo Nome da Região, digite o nome das regiões para onde os logs serão exportados. Por exemplo:
us-west-1 -
Certifique-se de conceder ao usuário do IAM fornecido por meio do comando s3:PutObjecet e s3:DeleteObject acesso ao seu bucket.
Google Cloud Storage
-
No menu suspenso Tipo de armazenamento, selecione Armazenamento do Google Cloud.
-
No campo Bucket Name, digite o nome do bucket conforme configurado na Plataforma do Google Cloud.
Observação:O mesmo nome do bucket não pode ser compartilhado por várias organizações.
-
Conceda o acesso adequado à conta de serviço da UiPath®, conforme especificado no seguinte comando:
- Na plataforma do Google Cloud, navegue para Armazenamento > Navegador.
- Encontre o bucket para o qual você deseja editar permissões.
- Selecione a elipse vertical e selecione Editar permissões do bucket.
- Selecione Adicionar membros e insira a conta de serviço que você usa para acessar o bucket.
- No menu suspenso Selecionar uma função , selecione Administrador de Objetos de Armazenamento. Para obter mais informações, consulte Gerenciamento de Identidades e Acessos na documentação do GCP.
Exclusão de configurações de exportação de logs
- Expanda o tenant para o qual deseja excluir as configurações de exportação de logs.
- Para o serviço do Orchestrator nesse tenant, selecione Configuração de Exportação de Logs. O painel direito da Configuração é exibido.
- Desabilite a alternância Enviar logs de robôs para o armazenamento personalizado.
- Na janela Excluir configuração , selecione Excluir para confirmar. A configuração é excluída com sucesso.