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.
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.
#>
[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
}