- Primeros pasos
- Seguridad y cumplimiento de los datos
- Organizaciones
- Autenticación y seguridad
- Licencia
- Acerca de la licencia
- Precios unificados: marco del plan de licencias
- Activar su licencia Enterprise
- Migrar de Test Suite a Test Cloud
- Migración de licencias
- Asignar licencias a tenants
- Asignación de licencias de usuario
- Anular la asignación de licencias de usuarios
- Monitoring license allocation
- Licencias con exceso de asignación
- Notificaciones de licencias
- Administración de licencias de usuario
- Tenants y servicios
- Cuentas y roles
- Ai Trust Layer
- Aplicaciones externas
- Notificaciones
- Registro
- Sobre los registros
- Exportar registros
- Exportación de datos
- Pruebas en su organización
- Solución de problemas
- Migrar a Test Cloud
Guía de administración de Test Cloud
La disponibilidad de las características depende de la plataforma en la nube que utilices. Para obtener más información, consulta la página Disponibilidad de características.
The new Audit experience (Unified logs) lets you export logs in CSV format using one of the following methods:
- Opción Exportar en la interfaz de usuario: en la sección Registros de auditoría de tu organización o tenant, selecciona Exportar.
- API de registros de auditoría: utiliza las API de registros de auditoría.
- Script personalizado de UiPath: ejecuta un script desarrollado por UiPath para exportar registros del almacén de registros de auditoría a largo plazo de UiPath.
Exportar registros mediante script
If you are using the new Audit experience, you can use a dedicated script to export audit logs for any timeframe. This script export is available on all licensing plans, with a retention of up to five years for Enterprise plans and two years for all other plans.
Este script es útil cuando:
- Accessing the complete set of audit logs for compliance and investigation, beyond the 100,000-log limit of the UI export.
- Automating periodic log archival.
Requisitos previos
- A Linux or WSL (Windows Subsystem for Linux) environment with the
dos2unix,unzip, andjqtools installed. To install them, run: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. - The external application's credentials:
- ID de la aplicación (
client_id) - Secreto de la aplicación (
client_secret)
- ID de la aplicación (
Pasos
- Save the following script to a
.shfile: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" - Convert the line endings:
dos2unix <script-name>.shdos2unix <script-name>.sh - Make the script executable:
chmod +x <script-name>.shchmod +x <script-name>.sh - Establece las variables requeridas en tu 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' - Ejecuta el script utilizando el siguiente comando:
./<script-name>.sh $client_id $client_secret $org_name $start_date $end_date. Por ejemplo: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
The script creates a timestamped directory in your current location and downloads the audit logs for each day in the requested interval as .zip files. It then extracts the contents into the <timestamp>/auditlogs/ subfolder as .txt files, each named after the UTC date range it covers.
Configuración de la exportación de los registros del robot
La disponibilidad de las características depende de la plataforma en la nube que utilices. Para obtener más información, consulta la página Disponibilidad de características.
Para exportar los registros de UiPath Robot generados en tus servicios de Orchestrator a Azure, AWS S3 y Google Cloud Storage, sigue los procedimientos específicos descritos más adelante. Los registros se guardan en un archivo .csv en el contenedor uipathrobotlogs . La exportación se realiza por tenant, lo que facilita lo siguiente:
- Almacenamiento de registros que deben conservarse para fines de cumplimiento y auditoría.
- Analizar y visualizar los resultados de los registros en tus propias herramientas de informes o de BI.
Nota:
Al configurar la página de exportación de registros, no admitimos el relleno de 30 días de registros.
-
Inicia sesión en tu cuenta de UiPath.
-
Ve a Administración y seleccione el tenant en el panel de la izquierda.
-
Select Services.
-
En la tarjeta de Orchestrator, selecciona el icono Más y selecciona Configuración de exportación de registros.
El panel Configuración aparecerá a la derecha de la ventana.
-
Activa la opción Enviar los registros del robot a un almacenamiento personalizado.
-
Dependiendo de tu plataforma en la nube, continúa con los siguientes pasos:
- Test Cloud:
- En el menú desplegable Tipo de almacenamiento, selecciona el proveedor de almacenamiento al que quieres exportar los registros. Las siguientes opciones están disponibles:
- Azure
- AWS S3
- Cloud Storage de Google
Nota:La característica de exportación de registros no es compatible con AWS KMS.
- Después de realizar los pasos específicos del proveedor, se genera el
.csv. Descargar ejemplo .csv - Los registros se entregarán por horas. Este intervalo de tiempo no es configurable.
- En el menú desplegable Tipo de almacenamiento, selecciona el proveedor de almacenamiento al que quieres exportar los registros. Las siguientes opciones están disponibles:
- Test Cloud Sector Público y Test Cloud Dedicado:
- Continúa utilizando el procedimiento descrito en la sección Azure .
- Test Cloud:
Azure
Puedes configurar las IP estáticas en la lista de permisos y no abrir tu red a todas las IP externas. Ve a Configuración > Redes > Acceso público > Firewall > Rango de direcciones en Azure Blob Storage para añadir las IP estáticas. Consulta la página Configurar el cortafuegos para ver la lista completa de IP.
Se admiten las siguientes opciones de almacenamiento:
- Almacenamiento estándar con redundancia local (LRS)
- Almacenamiento estándar con redundancia geográfica (GRS)
- Almacenamiento con redundancia geográfica de acceso de lectura estándar (RA-GRS)
- Almacenamiento estándar con redundancia de zona (ZRS)
- LRS premium
Para obtener más información sobre los tipos de almacenamiento, consulta la página Información general de la cuenta de almacenamiento en la documentación oficial de Azure.
-
En el menú desplegable Tipo de almacenamiento, selecciona Cuenta de almacenamiento de Azure.
-
En el campo Azure Blob Connection String, introduce la cadena de conexión blob tal y como se ha recuperado de Azure Portal.
-
En el campo Nombre del contenedor, introduce el nombre del contenedor utilizado para almacenar el .
csven Azure. Por defecto, esuipathrobotlogs. Si se ofrece un nombre de contenedor personalizado y aún no existe, se creará el contenedor para ti. -
Selecciona Guardar. Se muestra una notificación que te permite saber que has configurado con éxito la exportación de los registros del robot.
-
En tu cuenta de Blob Storage en Azure Portal:
- Selecciona Red en Configuración en el panel izquierdo.
- Selecciona Permitir el acceso desde > Todas las redes.
- Selecciona Guardar para guardar los cambios.
-
En el plazo de una hora, se genera un archivo de registro
.csven el almacenamiento blob. El.csvse genera en el contenedoruipathrobotlogs, bajo la siguiente jerarquía de carpetas[tenant_key]/[year]/[month]/[day]/[hour]/output. Se recomienda asignar un tenant a un contenedor, ya que la clave del tenant es la única forma de distinguir entre tenants si se dirigen varios a un contenedor.
AWS S3
Puedes configurar las IP estáticas en la lista de permisos y no abrir tu red a todas las IP externas. Utiliza las políticas de acceso en AWS S3 para añadir denegar todas las solicitudes a menos que sea de la lista aws:SourceIp como se describe en la página Políticas de depósito para Amazon S3 de la guía del usuario de AWS S3. Consulta la página Configurar el cortafuegos de la guía de administración de Automation Cloud para ver la lista completa de IP.
-
En el menú desplegable Tipo de almacenamiento, selecciona AWS S3.
-
En el campo Nombre del depósito, introduce el nombre del depósito tal y como está configurado en AWS.
Nota:No puede compartirse el mismo nombre de depósito entre varias organizaciones.
-
En el campo Nombre de la región, introduce el nombre de las regiones a las que se van a exportar los registros. Por ejemplo,
us-west-1. -
Asegúrate de conceder al usuario IAM proporcionado a través de la solicitud s3:PutObject y s3:DeleteObject acceso a tu depósito.
Cloud Storage de Google
-
En el menú desplegable Tipo de almacenamiento, selecciona Google Cloud Storage.
-
En el campo Nombre del depósito, introduce el nombre del depósito tal y como está configurado en Google Cloud Platform.
Nota:No puede compartirse el mismo nombre de depósito entre varias organizaciones.
-
Otorga el acceso adecuado a la cuenta de servicio de UiPath®, como se especifica en la siguiente solicitud:
- En Google Cloud Platform, navega hasta Almacenamiento > Navegador.
- Busca el depósito para el que quieres editar los permisos.
- Selecciona los puntos suspensivos verticales y selecciona Editar permisos de depósito.
- Selecciona Añadir miembros e introduce la cuenta de servicio que utilizas para acceder al depósito.
- En el menú desplegable Seleccionar un rol , selecciona Administrador de objetos de almacenamiento. Para obtener más información, consulta Gestión de identidad y acceso en la documentación de GCP.
Cómo eliminar la configuración de la exportación de registros
- Despliega el tenant para el que quieres eliminar la exportación de registros.
- Para el servicio de Orchestrator en ese tenant, selecciona Configuración de exportación de registros. Se mostrará el panel derecho de Configuración .
- Activa la opción Enviar los registros del robot a un almacenamiento personalizado.
- En la ventana Eliminar configuración , selecciona Eliminar para confirmar. La configuración se ha eliminado correctamente.