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 que existen en tu infraestructura. Una vez que hayas analizado tu contenido en busca de datos sensibles con Sensitive Data Protection, tendrás varias opciones para usar 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 Data Studio, para lo siguiente:

  • Almacena los resultados del análisis de Sensitive Data Protection 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 Sensitive Data Protection 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 incluye información básica sobre cómo analizar los 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 deGoogle Cloud , ensambla un objeto JSON que incluya los siguientes objetos de configuración:

  • InspectJobConfig: Configura el trabajo de análisis de Sensitive Data Protection 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, analizarás un bucket de Cloud Storage en busca de nombres de personas, números de teléfono, números de seguridad social de EE.UU. y direcciones de correo electrónico. Luego, envías los hallazgos a una tabla de BigQuery dedicada a almacenar el resultado de Sensitive Data Protection. El siguiente JSON se puede guardar en un archivo o enviarse directamente al método create del recurso de Sensitive Data Protection DlpJob.

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 Sensitive Data Protection 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, reemplazando [PROJECT_ID] por el ID del proyecto y [JOB_ID] por el identificador del trabajo que se proporciona en la respuesta de la API de Cloud Data Loss Prevention a la solicitud de creación del trabajo (el identificador del trabajo estará precedido por un "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 de tu análisis de Sensitive Data Protection, el siguiente paso es ejecutar análisis en la tabla.

En el lado izquierdo de la consola de Google Cloud , en 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 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:

Ejemplo de resumen de los hallazgos de Sensitive Data Protection.

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 hallazgos de Sensitive Data Protection 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 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 información sobre qué hay disponible en Data Studio, consulta la Descripción general de productos de Data Studio.