En esta página, se describe cómo otorgar o denegar automáticamente el acceso de Identity and Access Management (IAM) a los recursos según la sensibilidad de los datos en esos recursos.
Puedes configurar el servicio de descubrimiento de Protección de datos sensibles para adjuntar etiquetas automáticamente a los recursos según los niveles de sensibilidad calculados de esos recursos. Luego, puedes usar las condiciones de IAM para otorgar o denegar el acceso a un recurso, según la presencia o ausencia de una clave o un valor de etiqueta de nivel de sensibilidad.
Supongamos que deseas que el equipo de datos de tu organización pueda copiar y compartir libremente los datos de BigQuery en sus operaciones diarias. Sin embargo, no sabes si alguno de esos datos contiene información de identificación personal (PII) de tus clientes. Puedes ejecutar la función de descubrimiento para clasificar los niveles de sensibilidad de tus datos de BigQuery. Luego, otorga acceso de forma condicional al equipo de datos, de modo que solo puedan acceder a las tablas de BigQuery que tengan datos de baja sensibilidad.
Para obtener más información sobre cómo la Protección de datos sensibles calcula la sensibilidad de los datos, consulta Niveles de riesgo y sensibilidad de los datos.
Para obtener más información sobre el uso de etiquetas para controlar el acceso a los recursos, consulta Etiquetas y acceso condicional en la documentación de IAM. Para obtener información general sobre las etiquetas, consulta la descripción general de las etiquetas en la documentación de Resource Manager.
Etiqueta de nivel de sensibilidad
En este documento, se usa el término etiqueta de nivel de sensibilidad para hacer referencia a una etiqueta que se adjunta automáticamente a un recurso para indicar el nivel de sensibilidad calculado de los datos en ese recurso.
Beneficios
Esta función te permite hacer lo siguiente:
- Automatiza el control de acceso en varios recursos compatibles según los atributos y las clasificaciones de los datos en esos recursos. La automatización te ayuda a mantenerte al día con el crecimiento y los cambios en los datos de tu organización, carpetas y proyectos.
- Restringe el acceso a los recursos compatibles hasta que se genere un perfil de esos recursos y se clasifiquen según la Protección de datos sensibles. Esta práctica cumple con el principio de seguridad predeterminada.
- Configura el descubrimiento para que actualice el valor de la etiqueta de nivel de sensibilidad cada vez que genere perfiles de tus datos. En consecuencia, el acceso de un principal a un recurso cambia automáticamente a medida que cambia el nivel de sensibilidad de los datos calculado para ese recurso.
- Configura el descubrimiento para que disminuya el nivel de riesgo de datos calculado en un recurso si el descubrimiento detecta que hay una etiqueta de nivel de sensibilidad en ese recurso. Esta opción te ayuda a medir la mejora en tu postura de seguridad y privacidad de los datos.
Recursos admitidos
Con esta función, Sensitive Data Protection etiqueta automáticamente los datos en los siguientes niveles:
- tablas de BigQuery
- Instancias de Cloud SQL
- Buckets de Cloud Storage
Cómo funciona
A continuación, se muestra un flujo de trabajo de alto nivel para controlar el acceso a los recursos según la sensibilidad de los datos. No es necesario que la misma persona realice estas tareas.
- Cómo crear una etiqueta de nivel de sensibilidad
- Otorga acceso condicional a los recursos según el valor de la etiqueta de nivel de sensibilidad
- Habilita el etiquetado automático en la configuración de descubrimiento
- Otorga permiso al agente de servicio para que adjunte la etiqueta de nivel de sensibilidad a los recursos
Permisos necesarios
Los permisos que necesitas dependen de la acción que debes realizar.
Para obtener estos permisos, pídele a tu administrador que otorgue el rol sugerido en el nivel adecuado de la jerarquía de recursos.
Permisos para administrar etiquetas
Consulta Administra las etiquetas en la documentación de Resource Manager.
Permisos para otorgar acceso condicional a los recursos
Consulta Roles necesarios en la documentación de IAM.
Permisos para configurar la detección
Consulta Roles necesarios para configurar y ver perfiles de datos.
Crea una etiqueta de nivel de sensibilidad
En esta tarea, crearás una clave de etiqueta con valores de etiqueta que se asignan a los niveles de sensibilidad de los datos que Sensitive Data Protection usa para clasificar tus datos. Por ejemplo, puedes usar los siguientes valores y claves de etiqueta.
- Establece la clave de etiqueta en
sensitivity-level
. Establece los siguientes valores de etiqueta:
low
- Valor de la etiqueta que se adjuntará a los datos de baja sensibilidad
moderate
- Valor de la etiqueta que se adjuntará a los datos de sensibilidad moderada
high
- Valor de la etiqueta que se adjuntará a los datos de alta sensibilidad
También puedes crear un valor de etiqueta para los recursos que tienen un nivel de sensibilidad desconocido. Como alternativa, puedes volver a usar cualquiera de los valores de etiqueta
low
,medium
ohigh
para esos recursos.Ten en cuenta lo siguiente. Necesitarás lo siguiente en la siguiente tarea:
- ID de clave de la etiqueta (por ejemplo,
tagKeys/281478077849901
) - Valores de clave de etiqueta, por ejemplo,
tagValues/281479490918432
- Rutas de valor de etiqueta (por ejemplo,
example-project/tag-key/tag-value1
)
- ID de clave de la etiqueta (por ejemplo,
Para simplificar, este ejemplo establece una asignación uno a uno entre un valor de etiqueta y un nivel de sensibilidad. En la práctica, puedes personalizar los valores de las etiquetas para que se adapten a tus necesidades
empresariales. Por ejemplo, puedes usar valores como confidential
, PII
o SPII
(PII sensible).
El descubrimiento de datos sensibles se puede configurar a nivel de la organización, la carpeta y el proyecto. Si deseas usar esta etiqueta de nivel de sensibilidad para el descubrimiento a nivel de la organización o de la carpeta, te recomendamos que la crees a nivel de la organización.
Para obtener información sobre cómo crear una etiqueta, consulta Crea y administra etiquetas en la documentación de Resource Manager.
Otorga acceso condicional a los recursos según el valor de la etiqueta de nivel de sensibilidad
En esta tarea, otorgarás un rol a un principal solo si la etiqueta de nivel de sensibilidad adjunta al recurso tiene un valor específico. Por ejemplo, puedes otorgar acceso principal solo a los datos con valores de etiqueta moderate
y low
.
En esta sección, se proporcionan condiciones de ejemplo con formato para usarlas con el editor de condiciones. El editor de condiciones proporciona una interfaz basada en texto en la que puedes ingresar de forma manual una expresión mediante la sintaxis CEL. Para obtener información sobre cómo adjuntar condiciones de IAM a vinculaciones de roles, consulta Cómo administrar vinculaciones de roles condicionales en la documentación de IAM.
Estos ejemplos siguen el modelo de etiquetado que se define en Cómo crear una etiqueta de nivel de sensibilidad en esta página.
Otorga a las principales acceso solo a datos de baja sensibilidad
En este ejemplo, otorgas acceso a un recurso si solo contiene datos de baja sensibilidad. También puedes usar este ejemplo para restringir todo el acceso al recurso hasta que se ejecute el descubrimiento de datos sensibles en ese recurso.
resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY",
"tagValues/TAG_VALUE_FOR_LOW_SENSITIVITY")
Reemplaza lo siguiente:
- SENSITIVITY_LEVEL_TAG_KEY: Es el ID numérico de la clave de etiqueta de nivel de sensibilidad que creaste.
- TAG_VALUE_FOR_LOW_SENSITIVITY: El ID numérico del valor de la etiqueta que creaste para los datos de baja sensibilidad
Otorgar a los principales acceso solo a datos de sensibilidad moderada y baja
En este ejemplo, otorgas acceso a un recurso si solo contiene datos de sensibilidad moderada o baja. Ten en cuenta que hay un operador OR
entre las dos condiciones.
resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_LOW_SENSITIVITY") ||
resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_MODERATE_SENSITIVITY")
Reemplaza lo siguiente:
- SENSITIVITY_LEVEL_TAG_KEY: Es el ID numérico de la clave de etiqueta de nivel de sensibilidad que creaste.
- TAG_VALUE_FOR_LOW_SENSITIVITY: El ID numérico del valor de la etiqueta que creaste para los datos de baja sensibilidad
- TAG_VALUE_FOR_MODERATE_SENSITIVITY: El ID numérico del valor de la etiqueta que creaste para los datos de sensibilidad moderada
Otorgar acceso a las principales solo si está presente la etiqueta de nivel de sensibilidad
Esto es útil, por ejemplo, si deseas definir una política de la organización que requiera que todo el acceso de IAM sea condicional según la presencia de una etiqueta de nivel de sensibilidad. También puedes usar este ejemplo para restringir todo el acceso al recurso hasta que se ejecute el descubrimiento de datos sensibles en ese recurso.
resource.hasTagKeyId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY")
Reemplaza SENSITIVITY_LEVEL_TAG_KEY por el ID numérico de la clave de etiqueta de nivel de sensibilidad que creaste.
Ejemplos de políticas de denegación
Para obtener información sobre cómo crear una política de denegación para usarla con una etiqueta de recurso, consulta Estructura de una política de denegación. Para obtener una lista de los permisos admitidos, consulta Permisos compatibles con las políticas de denegación.
Denegar el acceso si no hay una etiqueta de nivel de sensibilidad
En el siguiente extracto de una política de denegación, se rechaza el permiso bigquery.googleapis.com/tables.get
si el recurso no tiene la etiqueta de nivel de sensibilidad.
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principalSet://goog/group/data-team@example.com"
],
"deniedPermissions": [
"bigquery.googleapis.com/tables.get"
],
"denialCondition": {
"title": "Resource has no key",
"expression": "!resource.hasTagKeyId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY")"
}
}
}
]
Reemplaza SENSITIVITY_LEVEL_TAG_KEY por el ID numérico de la clave de etiqueta de nivel de sensibilidad que creaste.
Negar el acceso si hay datos de sensibilidad moderada o alta
En el siguiente extracto de una política de denegación, se deniega el permiso bigquery.googleapis.com/tables.get
si el recurso tiene datos de sensibilidad moderada o alta.
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principalSet://goog/group/data-team@example.com"
],
"deniedPermissions": [
"bigquery.googleapis.com/tables.get"
],
"denialCondition": {
"title": "Resource has moderate or high data sensitivity",
"expression": "resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_MODERATE_SENSITIVITY") || resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_HIGH_SENSITIVITY")"
}
}
}
]
Reemplaza lo siguiente:
- SENSITIVITY_LEVEL_TAG_KEY: Es el ID numérico de la clave de etiqueta de nivel de sensibilidad que creaste.
- TAG_VALUE_FOR_MODERATE_SENSITIVITY: El ID numérico del valor de la etiqueta que creaste para los datos de sensibilidad moderada
- TAG_VALUE_FOR_HIGH_SENSITIVITY: El ID numérico del valor de la etiqueta que creaste para los datos de alta sensibilidad
Habilita el etiquetado automático en la configuración de descubrimiento
En esta tarea, habilitarás la acción Etiquetar recursos. Esta acción le indica a Sensitive Data Protection que etiquete automáticamente tus datos según su nivel de sensibilidad calculado. Realizas esta tarea cuando create o editas una configuración de análisis de descubrimiento.
Para etiquetar automáticamente un recurso según su nivel de sensibilidad calculado, sigue estos pasos:
- Activa la opción Etiquetar recursos.
Para cada nivel de sensibilidad (alto, moderado, bajo y desconocido), ingresa la ruta de acceso del valor de la etiqueta que creaste para el nivel de sensibilidad determinado.
Si omites un nivel de sensibilidad, no se adjuntará ninguna etiqueta.
Para disminuir automáticamente el nivel de riesgo de los datos de un recurso cuando esté presente la etiqueta de nivel de sensibilidad, selecciona Cuando se aplica una etiqueta a un recurso, reducir el riesgo de los datos de su perfil a BAJO. Esta opción te ayuda a medir la mejora en tu postura de seguridad y privacidad de los datos.
Selecciona una o ambas de las siguientes opciones:
- Etiqueta un recurso cuando se genera un perfil por primera vez.
Etiquetar un recurso cuando se actualiza su perfil Selecciona esta opción si deseas que Sensitive Data Protection reemplace el valor de la etiqueta de nivel de sensibilidad en las ejecuciones de descubrimiento posteriores. En consecuencia, el acceso de un principal a un recurso cambia automáticamente a medida que aumenta o disminuye el nivel de sensibilidad de los datos calculado para ese recurso.
No selecciones esta opción si planeas actualizar manualmente los valores de etiqueta de nivel de sensibilidad que el servicio de descubrimiento adjunta a tus recursos. Si seleccionas esta opción, Sensitive Data Protection puede reemplazar tus actualizaciones manuales.
El descubrimiento de datos sensibles se puede configurar a nivel de la organización, la carpeta y el proyecto. Si deseas usar esta etiqueta de nivel de sensibilidad para el descubrimiento a nivel de la organización y no quieres que las operaciones de descubrimiento a nivel del proyecto reemplacen los valores de etiqueta que establece el descubrimiento a nivel de la organización, asegúrate de que solo el agente de servicio de la configuración de descubrimiento a nivel de la organización pueda adjuntar esta etiqueta a los recursos. Para obtener información sobre cómo otorgar un rol a nivel de la etiqueta, consulta Administra el acceso a las etiquetas en la documentación de Resource Manager.
Solucionar errores
En esta sección, se describen los errores que puedes encontrar cuando usas esta función y cómo resolverlos.
Se superó la cantidad máxima de etiquetas
Cada recurso puede tener un máximo de 50 pares clave-valor adjuntos. Si intentas etiquetar un recurso que ya tiene la cantidad máxima de etiquetas, la generación de perfiles fallará. Aparecerá el siguiente error:
The resource RESOURCE_NAME cannot be tagged because there are too many existing tags bound to the resource. You can either disable automatic tagging or delete at least one tag binding from the resource.
Para resolver este problema, desconecta una etiqueta del recurso. Para obtener más información, consulta lo siguiente:
- BigQuery: Cómo separar etiquetas de una tabla
- Cloud SQL para MySQL: Desconecta etiquetas de instancias de Cloud SQL
- Cloud SQL para PostgreSQL: Cómo desvincular etiquetas de instancias de Cloud SQL
- Cloud Storage: Ejemplos de cómo adjuntar etiquetas a un bucket de Cloud Storage o quitarlas
Como alternativa, inhabilita la acción Etiquetar recursos en la configuración de tu análisis de descubrimiento.
Se borró o se le cambió el nombre a un valor de etiqueta, y la detección intentó adjuntarlo a un recurso.
Si se borra o se cambia el nombre de un valor de etiqueta para la etiqueta de nivel de sensibilidad y la Protección de datos sensibles intenta adjuntar ese valor de etiqueta a un recurso perfilado, se muestra el siguiente error:
Tag value TAG_VALUE not found, it has possibly been either deleted or renamed.
Para solucionar este problema, realiza una de las siguientes acciones:
- Si se borró la etiqueta, vuelve a crear el valor de la etiqueta borrada. Asegúrate de que el valor de la etiqueta recreada coincida con el valor de la etiqueta al que se hace referencia en la configuración de tu análisis de descubrimiento. Para obtener más información, consulta Crea una etiqueta de nivel de sensibilidad en esta página.
- Si se cambió el nombre del valor de la etiqueta, actualiza la configuración del análisis de descubrimiento para usar el nombre nuevo del valor de la etiqueta.
Al agente de servicio le faltan permisos
Si el agente de servicio no tiene los permisos necesarios para adjuntar la etiqueta de nivel de sensibilidad a los recursos perfilados, recibirás el siguiente error:
The DLP service account SERVICE_AGENT_NAME is missing permissions needed for attaching tags to resources. Check that the role 'resourcemanager.tagUser' is granted to the DLP service account.
Para resolver el problema, sigue estos pasos:
Obtén el ID del agente de servicio asociado con la configuración del análisis de descubrimiento:
Ve a la lista de parámetros de configuración de análisis de descubrimiento.
- Selecciona la configuración de análisis.
- En la página de detalles que se abre, copia el ID del agente de servicio. Este ID tiene el formato de una dirección de correo electrónico.
Otorga al agente de servicio el rol de usuario de etiquetas (
roles/resourcemanager.tagUser
) en la etiqueta de nivel de sensibilidad.Como alternativa, puedes otorgar un rol personalizado en la etiqueta de nivel de sensibilidad. El rol personalizado debe tener el permiso
resourcemanager.tagValues.get
y los permisos específicos del recurso para administrar las vinculaciones de etiquetas. Necesitas los permisoscreateTagBinding
,deleteTagBinding
ylistEffectiveTags
específicos del recurso. Por ejemplo, para las tablas de BigQuery, necesitas lo siguiente:resourcemanager.tagValues.get
bigquery.tables.createTagBinding
bigquery.tables.deleteTagBinding
bigquery.tables.listEffectiveTags
Para obtener información sobre cómo otorgar un rol a nivel de la etiqueta, consulta Administra el acceso a las etiquetas en la documentación de Resource Manager.