Quay lại blog
Tuân thủ·25 tháng 5, 2026·Đọc 7 phút

Tuân thủ RGPD cho LLM tại Pháp — giả danh hóa, DPA và chủ quyền

Danh sách kiểm tra đầy đủ để triển khai Claude / Gemini / GPT tuân thủ RGPD: mã giả danh hóa PII, cần ký DPA Điều 28 với ai, Zero Data Retention trực tiếp với Anthropic và Google, vấn đề Mistral và chủ quyền AI, lưu trữ log và thông báo cho các cá nhân.

Triển khai LLM (Claude, Gemini, GPT) tuân thủ GDPR cho một doanh nghiệp Pháp — danh sách kiểm tra đầy đủ: giả danh hóa dữ liệu, thỏa thuận xử lý (DPA), Zero Data Retention, lưu trữ log và câu hỏi về Mistral / chủ quyền dữ liệu.

Các yêu cầu pháp lý tối thiểu

  1. Giả danh hóa PII trước mọi cuộc gọi đến LLM bên ngoài
  2. DPA Điều 28 RGPD được ký với từng bên xử lý dữ liệu phụ trách xử lý dữ liệu. Kunavo không cung cấp DPA: nếu quy trình xử lý của bạn yêu cầu, hãy ký hợp đồng trực tiếp với nhà cung cấp mô hình
  3. Sổ đăng ký hoạt động xử lý được cập nhật, bao gồm mục đích của từng cuộc gọi LLM
  4. Thông báo cho chủ thể dữ liệu: chính sách quyền riêng tư phải đề cập đến việc sử dụng AI

1) Giả danh hóa — mã sẵn sàng sử dụng

Trước khi prompt rời khỏi backend, chúng ta thay thế các mã định danh trực tiếp bằng token. Bảng ánh xạ vẫn được giữ cục bộ:

pseudonymiser.py
# Pseudonymiser les données personnelles avant l'appel LLM
import re
from openai import OpenAI

PATTERNS = [
    (re.compile(r"[\w.+-]+@[\w-]+\.[\w.-]+"), "<EMAIL>"),
    (re.compile(r"\b(?:\+33|0)\s*[1-9](?:\s*\d{2}){4}\b"), "<PHONE_FR>"),
    # Numéro de sécurité sociale français (15 chiffres)
    (re.compile(r"\b[12]\d{2}(?:0[1-9]|1[012])(?:\d{2})(?:\d{3})(?:\d{3})(?:\d{2})\b"), "<NIR>"),
    # IBAN FR
    (re.compile(r"\bFR\d{2}\s?(?:\d{4}\s?){5}\d{3}\b"), "<IBAN_FR>"),
]

def pseudonymiser(texte: str) -> tuple[str, dict]:
    masque = texte
    mapping = {}
    for i, (pat, tag) in enumerate(PATTERNS):
        for m in pat.finditer(texte):
            cle = f"{tag}_{i}_{m.start()}"
            mapping[cle] = m.group(0)
            masque = masque.replace(m.group(0), f"[{cle}]")
    return masque, mapping

LLM nhìn thấy "[EMAIL_0_42] đã đặt hàng [IBAN_FR_3_158]" thay vì các mã định danh thật. Nếu câu trả lời cần chèn lại các giá trị (ví dụ cho email xác nhận), chúng ta thực hiện thay thế ngược sau đó, không bao giờ thực hiện trong API call.

2) DPA — ai cần ký với ai

  • Bạn ↔ Kunavo: Kunavo không cung cấp DPA theo Điều 28 RGPD. Các yêu cầu của bạn được xử lý tại Hoa Kỳ và chuyển đến các nhà cung cấp upstream; chính sách bảo mật và lưu trữ dữ liệu riêng của họ áp dụng cho nội dung
  • Bạn ↔ nhà cung cấp mô hình: nếu quy trình xử lý của bạn yêu cầu DPA, hãy ký trực tiếp với Anthropic, OpenAI hoặc Google theo các điều khoản doanh nghiệp của họ
  • Điều khoản hợp đồng mẫu (SCC): đối với việc chuyển dữ liệu sang Hoa Kỳ (Anthropic, OpenAI), hãy kiểm tra rằng các SCC được Ủy ban châu Âu phê duyệt có trong DPA mà bạn ký với nhà cung cấp

3) Zero Data Retention (ZDR): trực tiếp với nhà cung cấp

Theo mặc định, Anthropic và Google lưu log prompt trong 30 ngày (Anthropic) / 60 ngày (Google) để giám sát lạm dụng. Đối với workload nhạy cảm theo GDPR:

  • Kunavo: không có ZDR. Các yêu cầu đi qua gateway của chúng tôi tại Hoa Kỳ rồi đến các nhà cung cấp upstream; chính sách lưu trữ dữ liệu riêng của họ được áp dụng
  • Anthropic ZDR: Anthropic cung cấp cho khách hàng doanh nghiệp theo hợp đồng trực tiếp với Anthropic
  • Google Vertex AI EU: ký hợp đồng trực tiếp với Google Cloud, có thể định tuyến đến europe-west1 (Bỉ) hoặc europe-west4 (Hà Lan) — dữ liệu không rời khỏi EU. Kunavo không cung cấp khu vực EU
  • OpenAI: ZDR trên tier Enterprise, theo hợp đồng trực tiếp với OpenAI

Câu hỏi về Mistral và chủ quyền dữ liệu

Nhiều đội ngũ Pháp muốn giảm sự phụ thuộc vào các nhà cung cấp Mỹ. Có ba khía cạnh cần cân nhắc:

  • Mistral qua Kunavo: không. Danh mục không có mô hình Mistral hay bất kỳ nhà cung cấp châu Âu nào khác, và không có định tuyến chỉ đến các nhà cung cấp châu Âu
  • Mistral trực tiếp: với các trường hợp thực sự nhạy cảm (khu vực công, y tế), Mistral cung cấp triển khai on-prem. Kunavo không thay thế nhu cầu này
  • Kết hợp cả hai: dùng Mistral trực tiếp cho các trường hợp nhạy cảm, Claude qua Kunavo cho suy luận mạnh. Đây là hai nhà cung cấp và hai khóa riêng, còn mã của bạn quyết định mỗi cuộc gọi được gửi đi đâu

Lưu trữ log và nơi cư trú dữ liệu

  • Định tuyến Kunavo: trong gateway, tại một khu vực duy nhất (US-East, Ashburn). Chỉ edge anycast phía trước mới kết thúc TLS ở gần bạn
  • Dữ liệu tài khoản và thanh toán: một cơ sở dữ liệu chính duy nhất tại US-East, với các snapshot volume được mã hóa hằng ngày. Không có định tuyến chỉ trong EU hoặc lưu trữ tại khu vực EU, kể cả theo yêu cầu
  • Nhật ký ứng dụng của bạn: bạn phải lưu trữ chúng tại EU (OVH, Scaleway, Hetzner). Đừng trở thành mắt xích yếu

Thông báo cho chủ thể dữ liệu — cần nói gì

Nếu bạn cho LLM xử lý dữ liệu cá nhân, chính sách quyền riêng tư phải đề cập đến việc này. Mẫu tối thiểu:

Chúng tôi sử dụng các mô hình trí tuệ nhân tạo (Anthropic Claude, Google Gemini, OpenAI GPT) với tư cách bên xử lý phụ thông qua Kunavo (https://kunavo.com), cho các mục đích sau: [phân loại, tóm tắt, tạo câu trả lời, v.v.]. Dữ liệu cá nhân được giả danh hóa trước khi truyền đi. Kunavo không sử dụng dữ liệu này để huấn luyện mô hình; mỗi nhà cung cấp mô hình xử lý dữ liệu theo chính sách bảo mật và lưu trữ riêng của họ. Bạn có quyền truy cập, cải chính, phản đối và xóa dữ liệu theo các Điều 15 đến 21 của RGPD.

Cần kiểm tra gì trước khi đưa vào sản xuất

  • DPA được ký với từng bên xử lý dữ liệu phụ (trực tiếp với nhà cung cấp mô hình: Kunavo không cung cấp)
  • Sổ đăng ký hoạt động xử lý được cập nhật
  • Đã kiểm thử giả danh hóa trên mẫu thực tế (tỷ lệ rò rỉ < 0,1%)
  • Log được lưu trữ tại khu vực EU
  • Quy trình phản hồi yêu cầu theo Điều 17 (quyền xóa dữ liệu)
  • Chính sách quyền riêng tư được cập nhật và có thể truy cập
  • Đã tham vấn DPO nếu xử lý dữ liệu quy mô lớn hoặc nhạy cảm

Sẵn sàng bắt đầu? Đăng ký miễn phí, sau đó nạp tiền từ 10 $.