Analiza y genera informes sobre los resultados del análisis de Sensitive Data Protection

Sensitive Data Protection 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 con Sensitive Data Protection, tienes varias opciones sobre qué hacer con esa inteligencia de datos. En este tema, se muestra cómo aprovechar el poder de otras funciones de Google Cloud, como BigQuery, Cloud SQL y Looker Studio, para realizar lo siguiente:

  • Almacenar los resultados del análisis de la protección de datos sensibles 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 Sensitive Data Protection junto con otras funciones de Google Cloud para llevar a cabo estas acciones.

Analiza un bucket 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 con Sensitive Data Protection. 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 Protección de datos sensibles 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 bucket 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 Sensitive Data Protection. El siguiente JSON se puede guardar en un archivo o enviarse directamente al método create del recurso DlpJob de Protección de datos sensibles.

Entrada de JSON:

POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/dlpJobs

{
  "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]"
            }
          }
        }
      }
    ]
  }
}

Si especificas dos asteriscos (**) después de la dirección del bucket 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 la Protección de datos sensibles 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]

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 protección de datos sensibles, el paso que sigue es ejecutar estadísticas en la tabla.

En el lado izquierdo de la consola de Google Cloud, en Big Data, haz clic en BigQuery. Abre tu proyecto y conjunto de datos y, luego, ubica la tabla nueva creada.

Puedes ejecutar consultas de SQL en esta tabla para descubrir más sobre lo que Sensitive Data Protection encontró en tu bucket 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 bucket que se ve parecido a lo siguiente:

Resumen de ejemplo de los resultados de Cloud DLP.

Crea un informe en Looker Studio

Looker 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 Looker Studio que se basa en los resultados de Sensitive Data Protection almacenados en BigQuery.

  1. Abre Looker 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 Looker Studio a conectarse a tus proyectos de BigQuery haciendo 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 Looker Studio.

Próximos pasos

Este es solo el comienzo de lo que puedes visualizar con Looker Studio y el resultado de Sensitive Data Protection. Puedes agregar otros elementos gráficos y filtros con desgloses para crear informes y paneles. Si quieres obtener más información sobre lo que está disponible en Looker Studio, consulta la Descripción general de productos de Looker Studio.