Tipos de información confidencial para México
Confirma qué detecta Microsoft Purview de fábrica para México. El único tipo integrado específico es CURP; RFC, INE y CLABE no están en la lista de Microsoft.
Solo lecturaSin permisos de GraphProbado con respuestas simuladas. Sin ejecutar en un tenant real.
Ejemplo en México
Escuela privada en Puebla, 90 personas
Control escolar maneja CURP y RFC de alumnos y proveedores, y quieren saber qué detectaría una política DLP sin programar nada.
.\get-tipos-info-sensible-mexico.ps1 -RutaCsv .\tipos-mexico.csvConfirman que CURP se detecta con un tipo integrado y que para RFC tendrían que crear uno propio. Con eso ajustan el alcance de su proyecto.
Cómo implementarlo
- Instala el módulo si no lo tienes: Install-Module ExchangeOnlineManagement -Scope CurrentUser.
- Ejecuta el script con -RutaCsv e inicia sesión en Security & Compliance PowerShell.
- Revisa la columna Alcance: específico de México, global, o sin tipo integrado documentado.
- Para RFC, INE o CLABE, planea un tipo de información confidencial personalizado antes de prometer que los detectas.
Ver el código completo de get-tipos-info-sensible-mexico.ps1
<#
.SYNOPSIS
Lista los tipos de información confidencial de tu tenant que aplican a México.
.DESCRIPTION
Compara Get-DlpSensitiveInformationType con lo que documenta Microsoft Learn. El único tipo integrado
específico de México es Mexico Unique Population Registry Code (CURP). También marca RFC, INE y CLABE
como sin tipo integrado documentado, para que no asumas que los detectas.
Solo lectura: no cambia nada en el tenant.
.PARAMETER RutaCsv
Ruta del CSV de salida. Si se omite, solo se muestra en pantalla.
.EXAMPLE
.\get-tipos-info-sensible-mexico.ps1 -RutaCsv .\tipos-mexico.csv
.NOTES
Permisos: ninguno de Graph; usa ExchangeOnlineManagement.
Rol mínimo: rol View-Only DLP Compliance Management en un grupo de roles, o grupo Compliance Data Administrator.
Licencia: Microsoft 365 E5/A5/G5/E3/A3/G3, Microsoft 365 Business Premium u Office 365 E5/A5/G5/E3/A3/G3.
Licencia del código: MIT. Se entrega TAL CUAL, sin garantía. Pruébalo primero en un tenant de pruebas.
#>
#Requires -Version 7.0
[CmdletBinding()]
param(
[string]$RutaCsv
)
$ErrorActionPreference = 'Stop'
if (-not (Get-Command Connect-IPPSSession -ErrorAction SilentlyContinue)) {
throw 'Falta el módulo. Instálalo con: Install-Module ExchangeOnlineManagement -Scope CurrentUser'
}
$idCurp = 'e905ad4d-5a74-406d-bf36-b1efca798af4' # Id de la definición publicada en Microsoft Learn.
Connect-IPPSSession -ShowBanner:$false
try {
# Sin -Identity: un nombre inexistente devolvería todos los tipos en lugar de un error.
$tipos = @(Get-DlpSensitiveInformationType)
} finally {
Disconnect-ExchangeOnline -Confirm:$false
}
$filas = [System.Collections.Generic.List[object]]::new()
foreach ($t in $tipos) {
$alcance = if ("$($t.Id)" -eq $idCurp -or $t.Name -eq 'Mexico Unique Population Registry Code (CURP)') { 'Específico de México' }
elseif ($t.Name -eq 'Credit Card Number') { 'Global: marcas de tarjeta internacionales, no específico de México' }
elseif ($t.Name -match 'M[eé]xic|\bCURP\b|\bRFC\b|\bINE\b|\bCLABE\b') { 'Coincide por nombre: revisa quién lo creó' }
if ($alcance) {
$filas.Add([pscustomobject]@{ Tipo = $t.Name; Alcance = $alcance; Publicador = $t.Publisher; ConfianzaRecomendada = $t.RecommendedConfidence; Id = $t.Id })
}
}
if (-not ($filas | Where-Object Alcance -eq 'Específico de México')) {
Write-Warning 'El tipo Mexico Unique Population Registry Code (CURP) no aparece en este tenant. Revísalo en el portal de Microsoft Purview.'
}
foreach ($dato in 'RFC', 'INE', 'CLABE') {
if (-not ($filas | Where-Object Tipo -match "\b$dato\b")) {
$filas.Add([pscustomobject]@{ Tipo = $dato; Alcance = 'Sin tipo integrado documentado: requiere un tipo personalizado'; Publicador = ''; ConfianzaRecomendada = ''; Id = '' })
}
}
Write-Host "Tipos revisados en el tenant: $($tipos.Count). Filas del reporte: $($filas.Count)."
if ($RutaCsv) {
# UTF-8 con BOM para que Excel en español muestre bien los acentos.
$filas | Export-Csv -Path $RutaCsv -NoTypeInformation -Encoding utf8BOM
Write-Host "CSV guardado en $RutaCsv"
} else {
$filas | Format-Table -AutoSize
}