Analiza y genera informes con los resultados del análisis de Cloud DLP

Cloud Data Loss Prevention (DLP) te ayuda a encontrar, comprender y administrar los datos sensibles dentro de tu infraestructura. Una vez que analizas tu contenido en busca de datos sensibles mediante Cloud DLP, tienes varias opciones sobre qué hacer con esa inteligencia de datos. En este tema, se analiza cómo aprovechar el poder de otras funciones de Google Cloud, como BigQuery, Cloud SQL y Google Data Studio para realizar lo siguiente:

  • Almacenar los resultados del análisis de Cloud DLP directamente en BigQuery.
  • Generar informes sobre dónde residen los datos sensibles en tu infraestructura.
  • Ejecutar estadísticas SQL enriquecedoras para comprender dónde se almacenan los datos sensibles y de qué tipo son.
  • Automatizar alertas o acciones para que se activen según un solo conjunto o una combinación de resultados.

En este tema, también hay un ejemplo completo de cómo usar Cloud DLP junto con otras funciones de Google Cloud para completar estas acciones.

Analiza un depósito de almacenamiento

Primero, ejecuta un análisis sobre tus datos. A continuación, se muestra información básica sobre cómo analizar repositorios de almacenamiento mediante Cloud DLP. Para obtener instrucciones completas sobre el análisis de repositorios de almacenamiento, incluido el uso de bibliotecas cliente, consulta Inspecciona el almacenamiento y las bases de datos en busca de datos sensibles.

Para ejecutar una operación de análisis en un repositorio de almacenamiento de Google Cloud, arma un objeto JSON que incluya los siguientes objetos de configuración:

  • InspectJobConfig: Configura el trabajo de análisis de DLP y consta de lo siguiente:

    • StorageConfig: Es el repositorio de almacenamiento que se analizará.
    • InspectConfig: Qué analizar y cómo. También puedes usar una plantilla de inspección para definir la configuración del proceso.
    • Action: Son las tareas que se ejecutarán cuando se complete el trabajo. Esto puede incluir guardar los resultados en una tabla de BigQuery o publicar una notificación en Pub/Sub.

En este ejemplo, debes analizar un depósito de Cloud Storage para encontrar nombres de personas, números de teléfono, números de identificación personal de EE.UU. y direcciones de correo electrónico. Luego, envía los resultados a una tabla de BigQuery destinada al almacenamiento de la salida de DLP. El siguiente JSON se puede guardar en un archivo o enviarse directamente al método create del recurso DlpJob de Cloud DLP.

Entrada de JSON:

POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/dlpJobs?key={YOUR_API_KEY}

{
  "inspectJob":{
    "inspectConfig":{
      "infoTypes":[
        {
          "name":"PERSON_NAME"
        },
        {
          "name":"PHONE_NUMBER"
        },
        {
          "name":"US_SOCIAL_SECURITY_NUMBER"
        },
        {
          "name":"EMAIL_ADDRESS"
        }
      ],
      "includeQuote":true
    },
    "storageConfig":{
      "cloudStorageOptions":{
        "fileSet":{
          "url":"gs://[BUCKET_NAME]/**"
        }
      }
    },
    "actions":[
      {
        "saveFindings":{
          "outputConfig":{
            "table":{
              "projectId":"[PROJECT_ID]",
              "datasetId":"[DATASET_ID]",
              "tableId":"[TABLE_ID]"
            }
          }
        }
      }
    ]
  }
}

Ten en cuenta que si especificas dos asteriscos (**) después de la dirección del depósito de Cloud Storage (gs://[BUCKET_NAME]/**), le indicarás al trabajo de análisis que analice de forma recurrente. Si colocas un solo asterisco (*), le indicarás al trabajo que analice solo el nivel de directorio especificado y no más que eso.

La salida se guardará en la tabla especificada dentro del conjunto de datos y del proyecto determinado. Los trabajos posteriores que especifican el ID de la tabla dada agregan los hallazgos a la misma tabla. También puedes omitir una clave "tableId" si deseas indicar a Cloud DLP que cree una tabla nueva cada vez que se ejecute el análisis.

Después de enviar este JSON en una solicitud al método projects.dlpJobs.create a través de la URL especificada, obtendrás la siguiente respuesta:

Salida de JSON:

{
  "name":"projects/[PROJECT_ID]/dlpJobs/[JOB_ID]",
  "type":"INSPECT_JOB",
  "state":"PENDING",
  "inspectDetails":{
    "requestedOptions":{
      "snapshotInspectTemplate":{

      },
      "jobConfig":{
        "storageConfig":{
          "cloudStorageOptions":{
            "fileSet":{
              "url":"gs://[BUCKET_NAME]/**"
            }
          }
        },
        "inspectConfig":{
          "infoTypes":[
            {
              "name":"PERSON_NAME"
            },
            {
              "name":"PHONE_NUMBER"
            },
            {
              "name":"US_SOCIAL_SECURITY_NUMBER"
            },
            {
              "name":"EMAIL_ADDRESS"
            }
          ],
          "minLikelihood":"POSSIBLE",
          "limits":{

          },
          "includeQuote":true
        },
        "actions":[
          {
            "saveFindings":{
              "outputConfig":{
                "table":{
                  "projectId":"[PROJECT_ID]",
                  "datasetId":"[DATASET_ID]",
                  "tableId":"[TABLE_ID]"
                }
              }
            }
          }
        ]
      }
    }
  },
  "createTime":"2018-11-19T21:09:07.926Z"
}

Una vez que se completó el trabajo, los resultados se guardan en la tabla de BigQuery dada.

Para obtener el estado del trabajo, llama al método projects.dlpJobs.get o envía una solicitud GET a la siguiente URL y reemplaza [PROJECT_ID] por el ID de tu proyecto y [JOB_ID] por el identificador de trabajo proporcionado en la respuesta de la API de Cloud Data Loss Prevention a la solicitud de creación del trabajo (el identificador de trabajo estará precedido por una “i-”):

GET https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/dlpJobs/[JOB_ID]?key={YOUR_API_KEY}

Para el trabajo que acabas de crear, esta solicitud muestra el siguiente JSON. Ten en cuenta que se muestra un resumen de los resultados del análisis después de los detalles de la inspección. Si el análisis aún no se completó, su clave "state" especificará "RUNNING".

Salida de JSON:

{
  "name":"projects/[PROJECT_ID]/dlpJobs/[JOB_ID]",
  "type":"INSPECT_JOB",
  "state":"DONE",
  "inspectDetails":{
    "requestedOptions":{
      "snapshotInspectTemplate":{

      },
      "jobConfig":{
        "storageConfig":{
          "cloudStorageOptions":{
            "fileSet":{
              "url":"gs://[BUCKET_NAME]/**"
            }
          }
        },
        "inspectConfig":{
          "infoTypes":[
            {
              "name":"PERSON_NAME"
            },
            {
              "name":"PHONE_NUMBER"
            },
            {
              "name":"US_SOCIAL_SECURITY_NUMBER"
            },
            {
              "name":"EMAIL_ADDRESS"
            }
          ],
          "minLikelihood":"POSSIBLE",
          "limits":{

          },
          "includeQuote":true
        },
        "actions":[
          {
            "saveFindings":{
              "outputConfig":{
                "table":{
                  "projectId":"[PROJECT_ID]",
                  "datasetId":"[DATASET_ID]",
                  "tableId":"[TABLE_ID]"
                }
              }
            }
          }
        ]
      }
    },
    "result":{
      "processedBytes":"536734051",
      "totalEstimatedBytes":"536734051",
      "infoTypeStats":[
        {
          "infoType":{
            "name":"PERSON_NAME"
          },
          "count":"269679"
        },
        {
          "infoType":{
            "name":"EMAIL_ADDRESS"
          },
          "count":"256"
        },
        {
          "infoType":{
            "name":"PHONE_NUMBER"
          },
          "count":"7"
        }
      ]
    }
  },
  "createTime":"2018-11-19T21:09:07.926Z",
  "startTime":"2018-11-19T21:10:20.660Z",
  "endTime":"2018-11-19T22:07:39.725Z"
}

Ejecuta estadísticas en BigQuery

Ahora que ya creaste una tabla de BigQuery nueva con los resultados de tu análisis de Cloud DLP, el paso que sigue es ejecutar estadísticas en la tabla.

Del lado izquierdo de Google Cloud Console debajo de “Big Data”, haz clic en BigQuery. Abre tu proyecto y conjunto de datos y, luego, ubica la tabla nueva creada.

Puede ejecutar consultas de SQL en esta tabla para descubrir más sobre lo que Cloud DLP encontró en tu depósito de datos. Por ejemplo, ejecuta lo siguiente para contar todos los resultados del análisis por Infotipo; reemplaza los marcadores de posición con los valores verdaderos adecuados:

SELECT
  info_type.name,
  COUNT(*) AS iCount
FROM
  `[PROJECT_ID].[DATASET_ID].[TABLE_ID]`
GROUP BY
  info_type.name

Esta consulta da como resultado un resumen de los resultados para ese depósito que se ve parecido a lo siguiente:

Resumen de ejemplo de los resultados de Cloud DLP.

Crea un informe en Data Studio

Data Studio te permite crear informes personalizados que se pueden basar en las tablas de BigQuery. En esta sección, crearás un informe de tabla simple en Data Studio que se basa en los resultados de Cloud DLP almacenados en BigQuery.

  1. Abre Data Studio y comienza un informe nuevo.
  2. Haz clic en Crear una fuente de datos nueva.
  3. Desde la lista de conectores, haz clic en BigQuery. Si es necesario, autoriza a Data Studio a conectarse a tus proyectos de BigQuery mediante un clic en Autorizar.
  4. Ahora, elige qué tabla buscar y, luego, haz clic en Mis proyectos o Proyectos compartidos, según donde resida tu proyecto. Encuentra tu proyecto, tu conjunto de datos y la tabla en las listas de la página.
  5. Haz clic en Conectar para ejecutar el informe.
  6. Haz clic en Agregar al informe.

Ahora, crearás una tabla que muestra la frecuencia de cada Infotipo. Para Dimension (Dimensión), selecciona el campo info_type.name. La tabla resultante se verá similar a la siguiente:

Una tabla de ejemplo en Data Studio.

Próximos pasos

Este es solo el comienzo de lo que puedes visualizar con Data Studio y la salida de Cloud DLP. Puedes agregar otros elementos gráficos y filtros con desgloses para crear informes y paneles. Si quieres obtener información sobre qué hay disponible en Data Studio, consulta la Descripción general de productos de Data Studio.