コンテンツにスキップ

データの取り扱い、PII、テレメトリ

このページでは、コアエンジンがデータをどのように取り扱うかを説明します。具体的には、何を読み取り、何をプロセスメモリに保持し、何を書き込むのか、監査バンドルに適用する決定論的な PII スクラビング変換、そしてオプトイン方式のテレメトリ経路を扱います。

境界。 このページではライブラリの動作を説明します。デプロイレベルのデータレジデンシー、すなわちドキュメントがどの法域で処理されるか、どこに一時ファイルが置かれるか、出力がどれだけの期間保持されるか、そしてどのテレメトリバックエンド(存在する場合)がスパンを受け取るかは、ライブラリではなくインテグレーターの責任です。エンジンはフェイルクローズなデフォルトとスクラビング変換を提供しますが、データレジデンシーや適法な根拠の判断を代わりに行うことはできません。

Terminal window
composer require nextpdf/core:^3

PII スクラバーとテレメトリインターセプターはコアパッケージの一部です。OpenTelemetry SDK が存在し、かつ呼び出し側がインターセプターを組み込んだ場合を除き、テレメトリ経路は何も行いません。

エンジンは、ISO/IEC 29100 の意味で、引き渡されたデータの プロセッサー です(iso_iec_29100#3.x56)。すなわち、インテグレーターの指示のもとでドキュメントの内容を処理します。エンジンは外部通信を行わず、要求された出力の範囲を超えて内容を保持することも、ドキュメントの内容を NextPDF が運用するいかなるエンドポイントへ送信することもありません。

重要なデータ面は 3 つあります。

  1. ドキュメント I/O。 入力は指定したパスまたはストリームから読み取られ、出力は指定したパスまたはストリームに書き込まれます。中間バッファはレンダリング中にプロセスメモリ上に存在し、レンダリングが完了すると解放されます。
  2. 監査バンドル。 監査が有効な場合、エンジンは診断バンドルを出力できます。シリアライズの前に、そのバンドルは決定論的な PII スクラバーに通されます。
  3. テレメトリ。 オプションの OpenTelemetry インターセプターは、スパンとメトリクスを出力できます。SDK がインストールされ、インターセプターが構築されていない限り、この経路はオフです。スパン属性は属性サニタイザーに通されます。

プライバシーに関する姿勢は、仮名化と最小化が保護措置の一例であるという GDPR 第 32 条の原則に沿っています。これらの保護措置の適用は管理者の責任です(eu_gdpr#x50)。ライブラリはスクラビングの仕組みを提供します。適法な根拠、保持期間、レジデンシーは管理者が決定します。

このページでは、監査またはテレメトリの API を改めてドキュメント化することはしません(/modules/core/audit/ を参照)。信頼に関わるコンポーネントは、監査バンドルに適用されるデフォルトの PII サニタイザーと、OpenTelemetry インターセプターの属性サニタイザーです。以下では、これらの動作をシグネチャーではなく効果の観点から説明します。

デフォルトでは、明示的に要求しない限り、プロセスの外へ何も出ません。ネットワーク送信を有効にするコードは存在しません。コードがない状態がデフォルトです。

<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
// Input read from disk, output written to disk. No telemetry SDK loaded,
// so the telemetry path completes in sub-microsecond no-ops. No content
// is transmitted anywhere.
$doc = Document::open('input.pdf');
$doc->save('output.pdf');

監査バンドルが生成される場合、決定論的な PII スクラバーがシリアライズの前に一般的なカテゴリをマスクします。この変換は純粋(クロックや乱数を使用しない)であるため、同じ入力に対してバンドルはバイト単位で安定します。

<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Audit\DefaultPiiSanitiser;
$scrubber = new DefaultPiiSanitiser();
// E-mail → [EMAIL], IPv4 → [IPV4], IPv6 → [IPV6], X.500 DN attributes
// beyond CN → keyword preserved, value [REDACTED]. Deterministic.
$safe = $scrubber->sanitise($rawAuditField);
  • スクラバーはベストエフォートであり、保証ではありません。 DefaultPiiSanitiser は、認識対象のカテゴリ(RFC 5321 の電子メール、IPv4/IPv6、いくつかの RFC 4514 DN 属性)をマスクします。パターンに一致しない名前や識別子を含む自由記述フィールドはマスクされません。これは、運用者のレビュー義務を免除するコンプライアンス管理策ではなく、多層防御における 1 つの層として扱ってください。
  • 一時ファイルはデプロイ側の管理事項です。 エンジンは安全な一時ファイル処理を使用します。TMPDIR がどこに置かれるか、そして TMPDIR が適切な法域内の暗号化ストレージ上にあるかどうかは、デプロイ時の判断事項です。ライブラリはデータレジデンシーを強制できません。
  • テレメトリはオプトインかつサニタイズ済みですが、リスクがないわけではありません。 組み込まれている場合、OpenTelemetry インターセプターは、ゼロトラストのデータポリシーを適用する属性サニタイザーにスパン属性を通します。エクスポート先のバックエンド、およびその保持期間と所在地は、完全にインテグレーターの選択に委ねられています。
  • 適法な根拠はライブラリが判断するものではありません。 特定のドキュメント処理が適法かどうか、またどの根拠に基づくかは、GDPR や現地法のもとで管理者が判断します(eu_gdpr#x50)。ライブラリはそれを知り得ません。

PII スクラバーは、I/O を伴わない純粋な正規表現変換の集合です。テレメトリインターセプターによる SDK の存在チェックは、構築時に一度だけ実行され、キャッシュされます。SDK がインストールされていない場合、すべてのテレメトリ呼び出しはマイクロ秒未満で完了します。したがって、プライバシーを保護するデフォルト(テレメトリオフ)は、オーバーヘッドのないデフォルトでもあります。

レビュアー向けに、データ取り扱いの境界ルールを改めて示します。

  1. 秘密裏の送信はありません。 エンジンは、NextPDF が運用するいかなるエンドポイントにもドキュメントの内容を送信しません。送信方向のネットワークアクセスは、明示的に有効化され、スキームが制限されたリソース取得、および設定された TSA/OCSP/CRL エンドポイントに対してのみ発生し、いずれも SSRF ガードの背後で行われます。
  2. 決定論的で範囲が限定されたスクラビング。 監査バンドルの PII 変換は決定論的であり、シリアライズの前に適用されます。これは GDPR 第 32 条(eu_gdpr#x50)の趣旨に沿った最小化の補助であり、匿名化を証明するものではありません。
  3. レジデンシーはインテグレーターの責任です。 データがどこで処理されるかに関するインベントリとマッピングは、NIST Privacy Framework(nist_privacy_framework_1_1#x9.x1.p3)に基づく組織的な活動です。ライブラリは制御手段を提供し、マッピングはインテグレーターが行います。
  4. ロールは外部で決まります。 デプロイが管理者かプロセッサーか、またそれに伴う義務が何かは、ISO/IEC 29100 に基づくロール判定であり、ライブラリには行えません(iso_iec_29100#3.x56)。

これは適合性プロファイルではありません。このページは GDPR 第 32 条、ISO/IEC 29100、および NIST Privacy Framework を参照して、ライブラリの動作と管理者の責任との境界を示すものです。GDPR への準拠、ISO/IEC 29100 への適合、またはいかなるプライバシー認証も主張するものではありません。これらの判断は、ライブラリではなく、デプロイレベルでデータ管理者によって行われます。