Analizar los resultados del análisis de la protección de datos sensibles y generar informes sobre ellos

La protección de datos sensibles te ayuda a encontrar, comprender y administrar los datos sensibles que existen en tu infraestructura. Una vez que analizas tu contenido en busca de datos sensibles con la protección de datos sensibles, tienes varias opciones sobre qué hacer con esa inteligencia de datos. En este tema, se muestra cómo aprovechar la potencia de otras funciones de Google Cloud, como BigQuery, Cloud SQL y Looker Studio, para realizar las siguientes acciones:

  • Almacena 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 se incluye un ejemplo completo de cómo usar la protección de datos sensibles junto con otras funciones de Google Cloud para lograr todo esto.

Analiza un bucket de almacenamiento

Primero, ejecuta un análisis sobre tus datos. A continuación, se proporciona información básica sobre cómo analizar repositorios de almacenamiento con la protección de datos sensibles. 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 dedicada a almacenar el resultado de la protección de datos sensibles. 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 quieres indicarle 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 creaste una tabla de BigQuery nueva con los resultados del análisis de protección de datos sensibles, el siguiente paso es ejecutar estadísticas en la tabla.

Del lado izquierdo de la consola de Google Cloud debajo de Macrodatos, haz clic en BigQuery. Abre tu proyecto y conjunto de datos y, luego, ubica la tabla nueva creada.

Puedes ejecutar consultas en SQL en esta tabla para obtener más información sobre el contenido de la protección de datos sensibles dentro de 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 tablas de BigQuery. En esta sección, crearás un informe de tabla simple en Looker Studio que se base en los resultados de la protección de datos sensibles 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 para que se conecte a tus proyectos de BigQuery con 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 Looker Studio.

Próximos pasos

Este es solo el comienzo de lo que puedes visualizar con Looker Studio y el resultado de la protección de datos sensibles. Puedes agregar otros elementos gráficos y filtros con desgloses para crear informes y paneles. Para obtener más información sobre lo que está disponible en Looker Studio, consulta la Descripción general del producto Looker Studio.