AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

MongoDB Atlas でPCI DSS の導入を加速

ユースケース: 支払い

業種: 金融サービス、セキュリティ、コンプライアンス

製品: MongoDB Atlas、Queryable Encryption、カスタマーキー管理を使用した保管時の暗号化、プライベートエンドポイント、データベース監査、PCI DSS認証

パートナー: Amazon Web Services

PCI DSS は、支払いアカウント データを保護するための参照標準を構成します。これは、CHD を保存、処理、または送信するシステムの技術的および運用上のプラクティスのベースラインを設定します。これにより、支払いシステムの保護と制御方法に関する共通の参照点がチームに提供されます。

支払いデータの保護には通常、暗号化が含まれます。従来のアプローチでは、フィールドが暗号化されると、その値では検索できなくなります。支払いプラットフォームにとって、この制限は重大な問題となります。これは、カスタマーのメール、電話、 アカウント参照などの機密性の高いフィールドの検索に依存しているためです。暗号化されたデータを検索する方法がない場合、調査には望ましくない選択が強制されます。データを一括で復号化して露出を拡大するか、より遅くてオフラインで動作するかです。この条件は、ソリューションの設計上の質問につながります。

支払いプラットフォームでデータを暗号化して保管し続け、不正なアナリストが値でデータを検索できるようにするにはどうすればよいですか。

PCI DSS では、支払いデータの保護方法の基準が引き上げられます。最新バージョンである v.4 0および 40v..1 では、 継続的コンプライアンス、ポイントインタイム監査により重みが生じ、サービスの評価コストが低くなります。プロバイダー。

PCI DSS では、コンプライアンスは共有責任モデルに従います。MongoDB MongoDB Atlas はホスト プラットフォームの運用セキュリティを確保し、顧客は配置の構成とデータ ポリシーを制御します。

明確に言うと、 MongoDBを使用してもソリューションは PCI DSS に準拠しません。コンプライアンスは、製品、そのプロセス、組織 を含む特定の環境に対して評価されます。 MongoDB Atlas は、コンプライアンスを実現するための作業量を削減し、監査する範囲を縮小する認定インフラストラクチャとデータレイヤーの機能を提供します。ここでの値は、コンプライアンス保証ではなく、高速化とスコープの削減です。

PCI セキュリティ標準化局は、PCI DSS を維持し、制御目的の下にグループ化された要件のセットを整理します。

目的
要件

安全なネットワークを構築と維持

  1. ネットワーク セキュリティ制御

  2. 安全な構成

アカウント データの保護

  1. 保存されたアカウント データの保護

  2. 転送中のデータの暗号化

脆弱性管理プログラムの維持

  1. Anti-malware

  2. ソフトウェアとシステムを保護する

強力なアクセス制御を実装する

  1. アクセスを必要な場合に限定

  2. ユーザーの識別と認証

  3. 物理アクセスを制限

ネットワークを定期的に監視してテストする

  1. すべてのアクセスのログとモニター

  2. セキュリティを定期的にテストする

情報セキュリティ ポリシーを維持

  1. 組織のセキュリティ ポリシー

共有応答モデルでは、これらの要件は次のレイヤーに分裂。

  • インフラストラクチャレイヤー(プロバイダーの責任): 物理セキュリティ、ネットワーク制御、プラットフォームパッチ、基礎となるストレージのストレージ保管時の暗号化で構成されます。 MongoDB Cloud は、QSA、Coalfire システムによって検証されているPCI DSS 認定サービス プロバイダーです。 MongoDB Cloud の CHD 環境では、QSA はMongoDB Cloud AOC に依存できます。このはMongoDBトラスト センター からリクエストに応じて利用可能です。この事前検証されたレイヤーにより、カスタマーは基礎のインフラストラクチャを再監査する必要がなくなります。

  • アプリケーションレイヤー(顧客の責任): 製品の保存方法、保護方法、クエリ、マスク、監査する方法と、情報の読み取りを許可されているユーザーを構成します。このレイヤーは、カスタマーの設計上の決定を残ります。

PCI DSS 共有責任階層モデル

図の 1。 PCI DSS 共有責任階層モデル

クリックして拡大します

PSPプロジェクトは、アプリケーションレイヤーを埋め込みます。参照アーキテクチャとベストプラクティスのセットで構成されています。これは、保存されたデータの保護、アクセスの制限、監視、監査する範囲の縮小のために、MongoDB層と PCI DSS 制御目的でアプリケーションレイヤーを整合させる方法を示しています。このプロジェクトは、PCI DSS の導入を加速するための開始点を構成します。

PSPプロジェクトは、PCI DSS に準拠した PSI プラットフォームです。カードのチェックアウトと認可、自動不正スコアリング、マルチ階層アナリスト調査など、 MongoDB Atlasの支払いライフサイクルを実行します。これは、アナリストが明確な設計原則で暗号化されたデータを検索する方法を示しています。

すべての機能を暗号化する。あらゆる をクエリします。キーは自分のものです。

Atlas から継承された インフラストラクチャレイヤー(図 1 を参照)では、残りの作業はアプリケーションレイヤーで行われます。 Atlas はこれをサポートするためのさまざまな機能を提供しています。Queryable Queryable Encryption は主要機能の 1 つです。すべての機能セットは、 MongoDB の機能 セクションに列挙されています。

従来のアプローチでは、フィールドは検索可能にするためにプレーンテキストで保存されるか(データベースにアクセスできるすべてのユーザーが読み取り可能)、または暗号化されて保護される(ただし検索はできなくなります)。 Queryable Encryption は、サポートするクエリ タイプのその/または を削除します。

MongoDB暗号化アーキテクチャ: Queryable Encryption、キー管理、データ保護レイヤー

図の 2。 MongoDB暗号化アーキテクチャ: Queryable Encryption、キー管理、データ保護レイヤー

クリックして拡大します

等価検索可能なフィールドの場合、フローは次のようになります。

  • ドライバーは、 フィールドの DEK を使用して、クライアント側の検索値を暗号化します。

  • サーバーはその暗号化された値を暗号化されたインデックスと照合します。暗号テキストと暗号テキストを比較し、フィールドを復号化しません。

  • 一致するドキュメントがアプリケーションプロセスに返されると、ドライバーはメモリ内のターゲット フィールドを復号化します。 MongoDB Atlas 06は、 BSONバイナリ サブタイプ として保持される暗号テキストのみを保存および処理します。その結果、クラスターへのフルアクセスを持つデータベース管理者には、不可視バイトのみが表示されます。

PSPプロジェクトにおける具体的な影響 : 不正アナリストは、暗号化されたメール、電話、またはアカウント参照でカスタマーを検索し、レコードを取得しますが、プレーンテキストの値は Atlas に到達しません。この機能は、CDE を拡大する一括復号化を行わずに、PII を保管時に暗号化した状態で維持し、値で使用可能な状態にします。

保護が必要であるが検索ではないフィールドでは、 非検索可能モードが使用され、承認された エスカレートされたリクエストのみが復号化されます。データモデルセクションでは、モードとそれが保護するフィールドの両方をカバーします。

PSPプロジェクトは、いくつかのMongoDBと Atlas の機能を組み合わせたものです。各 は、PCI DSS アプリケーション層の作業の特定の部分にマップされます。

機能
プロジェクトでのロール
PCI DSS 制御の目的
MongoDB ドキュメント

Queryble Encryption:等価検索

暗号化された PII(メール、電話、 アカウント参照)を完全一致で検索します。フィールドはクライアント側で暗号化されている ため、データベースサーバーはその暗号テキストのみを保存および処理し、プレーンテキストは受信しません。

保存されたアカウント データの保護アクセスを制限します。

Queryable Encryption: 検索不可、および クライアント側フィールドレベル暗号化

高機密性フィールド(住所、政府ID、未加工のゲートウェイ ペイロード)を取得用のみに暗号化し、クライアント側のを復号化します。

保存されたアカウント データの保護アクセスを制限します。

カスタマー マネージド キー

カスタマー マスター キーをカスタマー自身のキー管理サービスに保持します。マスターキーは存在しますが、 MongoDB はそれらにアクセスできませんが、データキーはその下で暗号化されます。

保存されたアカウント データを保護します。

自動暗号化共有ライブラリ: crypt_shared

ドライバーまたはアプリケーションプロセスで暗号化と復号化を実行するため、暗号化されたフィールドのプレーンテキストは Atlas にネットワークを通過しません。

保存されたアカウント データの保護転送中の暗号化。

RBAC と IdP

データベースおよびコレクションレベルでの詳細なロールベースのアクセス。 LDC / Active Directory、OpenID Connect、および認証用の Workforce IdP を使用します。

アクセスを制限する には、以下を使用する必要があります。ユーザーを識別および認証します。

2 階層のデータ暗号化キー階層

各階層の Atlas ロールとデータベースユーザーを基盤とした、最小特権フィールドの可視性を暗号化して強制します。

アクセスを制限する必要があることを確認する必要があります。

プライベート ネットワーク

IP許可リストを使用して、CDE の周囲に定義済みのネットワーク境界を形成し、プライベートエンドポイントを介してクラウドプロバイダーのバックグラウンドでカード所有者データのトラフィックを処理します。

安全なネットワークを構築および維持します。

Atlas データベース監査

機密フィールドへのアクセスを監査するレコードとして記録し、監査するログを SEM システムに転送してレビューを提供します。

すべてのアクセスをログに記録してモニターする。

Atlas 接続のトランスポート層セキュリティ 1.3

すべてのネットワーク ホスト上のカード所有者データを暗号化する。

転送中のデータを暗号化する。

Bian 整合スキーマによるドキュメントモデル

カード、トランザクション、およびパーティ データをモデル化することで、カード所有者データを分離および最小限に抑えることができます。

スコープ設定とデータ最小化をサポートします。

安定した API 境界、フィールドレベルの Queryable Encryption、アクセス階層ごとの DEK モデルなど、このソリューションの中核となる原則は、その他のユースケースにも適用できます。

  • オープン 金融: PSD2 や消費者データ権など、カスタマーが承認したフィールドへのサードパーティを制限する条件付きデータアクセス。

  • ヘルス管理: HIPAA の下で保護されている医療情報。

  • 保証と税金: GDPRの下で政府識別子と金融アカウント データを処理するプラットフォーム。

PSPプロジェクトは、標準カード支払いチェーン内の支払いゲートウェイの位置です。

  • MongoDBバックエンド

  • 支払いゲートウェイ: プロセッサ、取得者、カード ネットワーク、発行者

PCI DSS スコープストレージ、暗号化、およびカード所有者データ フィールドの読み取りを制御するアクセス制御を所有します。カード ネットワークやプロセッサをエミュレートすることはありません。したがって、アーキテクチャは データ セキュリティレイヤーに焦点を当てています。

プロセッサ、取得者、カード ネットワーク、カード発行者などの下流のアクターは、プロバイダーを介してアクセスされる外部サブシステムです。デモでは、各プロバイダーにはプロジェクトを自己保持するための組み込みモジュールがありますが、これらは本番環境で実際の外部サブシステムに置き換えることができます。カード発行者は、そのようなプロバイダーの 1 つです。組み込みモジュールは、デモ用にカード データを内部的に保存しますが、本番環境ではそのデータは外部発行者に保存されます。

PSP プラットフォームの階層型アーキテクチャと外部コンポーネント

図の 3。 PSP プラットフォームの階層型アーキテクチャと外部コンポーネント

クリックして拡大します

アーキテクチャは、次のコンポーネントを使用します。

  • PSP ダッシュボード(フロントエンド): プレゼンテーションレイヤー。データベースとは直接やり取りしません。チェックアウト時に Pandora は Pandora をトークン化するため、PSP コアによって完全な Pandora が送信または保存されないようにします。

  • PSP APIゲートウェイ(バックエンド): 単一のエントリ点と、保護されたフィールドを復号化できる唯一のコンポーネント。これはQueryable Encryptionクライアントを保持し、呼び出し元のロールを解決し、リクエストごとに正しいキー階層を選択します。ユーザー インターフェース、サービス アカウント、統合を含むすべての呼び出し元は同じAPIを通過し、同じ RBAC とキー ルールの対象となります。

  • MongoDB Atlas(M10 以上)と Queryable Encryption:保護対象の各フィールドについて、暗号文(バイナリのサブタイプ 06)のみを保存します。クラスターへのフルアクセス権を持つデータベース管理者にも、不透明なバイト列しか見えません。TLS 1.3 により、転送中のすべてのデータが保護されます。PSP プロジェクトでは、本番環境でサポートされている等価検索を使用します。

  • AWS KMS: データ暗号化キーをラップおよび解凍する CMK を保持します。 CMK は KMS 内に残り、 MongoDB はそのCMK にアクセスできません。ローカルキー プロバイダーは、デモのオフライン フォールバックとして利用できます。

注意

プレフィックス、サフィックス、サブストリング クエリのQueryable Encryptionサポートはpublic previewで、 MongoDB 8.2 以降が必要です。 Atlas クラスターと crypt_shared ライブラリの両方でMongoDB 8.2 以降を使用していることを確認します。等価クエリと範囲クエリには 8.2 は必要ありません。

PSPプロジェクトのデータモデルはBian サービス ドメインの命名規則に従います。そのため、すべてのコレクションとフィールドはBian 標準で定義されたサービス ドメインにマップされます。 Bian に加えて、 MongoDB Queryable Encryption はフィールドレベルのセキュリティ状況を定義します。

MongoDB Queryable Encryption は、フィールドをクライアント側で暗号化したまま、サーバーが暗号文をクエリできるようにします。PSP プロジェクトでは、次のクエリ型を使用します。

  • 等価(本番):PCI DSS スコープの検索キーの検索可能なモード。ドライバーはクエリ値を暗号化し、それを暗号化されたインデックスと照合するため、サーバーはフィールドを復号化しません。この機能により、不正アナアナリストは、プレーンテキストを表示せずに、メール、電話、またはアカウント参照によってレコードを検索できます。

  • クエリなし(取得のみ):住所、政府発行の識別子、未加工のゲートウェイペイロードなど、機密性が最も高いフィールドに使用する検索不可モードです。認可されたクライアントのみが、これらのフィールドを必要なときに復号します。

  • 範囲(本番): 金額範囲によるフィルタリングなど、値範囲の検索に使用されます。量が暗号化されたままになります。

  • プレフィックス、サフィックス、サブストリング(public preview): 暗号化された ID フィールドでの KeyC スタイルの部分一致検索で示されます。

以下のPCI DSS スコープのカードと PII フィールドの場合、アクセス設計は次のカテゴリに縮小されます。

フィールド
分類
暗号化モード
検索可能

cardTransactionAccountReference

アカウント参照/ PII

QE:equality

はい

customerAgreementReference

アカウント参照

QE:equality

はい

partyEmailAddress

PII

QE:equality

はい

partyMobilePhoneNumber

PII

QE:equality

はい

paymentCardExpirationDate

CHD

QE:none

No

customerAgreementResidentialAddress

高 PII

QE:none

No

governmentIdentificationReference

高 PII

QE:none

No

rawGatewayPayload, processorTransactionMetadata

機密性の高い運用

QE:none

No

paymentCardReference

ネットワーク トークン

プレーン テキスト

はい

paymentCardMaskedPanDisplay

表示のみ

プレーン テキスト

No

フル Pandora(paymentCardNumber)

CHD

PSP コアによって保存されていない

PSP コアの n/a

CVV と API

機密認証データ

保存されない

該当なし

可能な場合、カード所有者データを範囲外に保つ設計上の選択には次のものが含まれます。

  • Pandora トークン化:アプリケーションは完全な Pandora をtok_<uuid> サポート トークンに置き換え、表示目的で最後の 4 桁のみを保持します。

  • ゼロ SAD キャプチャ: エンドポイントは CVV や キー などの SAD をキャプチャしません。

一般的な PCI DSS のプラクティスでは、カード所有者データを必要としないシステムから排除されるため、プラットフォームのほとんどが CDE の対象外になります。これらの手法では、CDE をシステムの残りの部分から分離する セグメンテーション と、プライマリ アカウント番号を専用のトークン化ヴォールトに保持される代替トークンに置き換える トークン化 が適用されます。セグメンテーションは PCI DSS 要件ではありませんが、システムの範囲外になるため、評価コストは削減されます。使用する場合は、文書化、正規化、検証する必要があります。

PSPプロジェクトでは、 データレイヤーでこれらの手法を適用します。

  • 完全な Pandora は PSP コアには存在しません。コアには、サフィギュレーション トークン、BIN、および最後の 4 桁のみが保存されます。プラットフォームのほとんどは、カードホルダー データを含まず、範囲外になります。完全な Pandora は、本番環境では外部にあるカード発行者サブシステムに属します。デモでは、置き換え可能な組み込み発行者モジュールが に存在し、 で暗号化された独自の分離されたヴォールトに PandoraQE:equality を保存します。このフィールドは、復号化されずに完全検索と重複検出を照合できます。

  • PII は一元化されています。ID フィールド(メールや電話などの ID フィールドは、契約、カード、トランザクション レコードが参照単一の BEAN SD-13 コレクションに存在します。データサブジェクト 削除リクエストを保護して処理する 1 つの場所。

  • 機密フィールドは別のキー階層の背後にあります。 QE:none フィールドは検索可能な QE:equality フィールドとは異なるデータ暗号化キー階層を使用するため、機密データと非機密データの境界はキーによって強制されます。

これは参照パターンであり、認証ではありません。 CDE の定義とその検証は、引き続きカスタマーの責任と評価の対象となります。

暗号化階層に DEK を分離します。

  • ルックアップ階層: QE:equality キーは、検索するすべての認証されたアナリストロールで使用できます。

  • 区別する階層: QE:none キーは、有効で有効期間の短いエスカレーション トークンを保持するレベル 2 の調査者と、読み取り専用のセキュリティ監査者に対してのみ使用できます。

  • 設計コア: レベル1 クライアントの暗号化フィールド マップでは機密キーが省略されているため、ドライバーはそれらのフィールドを復号化できず、暗号テキストとして返します。ここでのフィールドレベルのアクセス制御は、アプリケーションコードのプロジェクションではなく暗号化されているため、クエリ バグによる誤ったリークのリスクを軽減します。アナリストがケースをエスカレーションし、レベル2 調査者が承認すると、調査者はエスカレーション トークンを受け取り、そのリクエストに対して機密層クライアントプールを有効化します。

このセクションは、ソリューションを実行して評価したいチームのための配置ガイドです。配置の成功に重要な構成の選択、スタックをローカルで実行する方法、および本番環境に配置する方法について説明します。 GitHubリポジトリを使用して、このソリューションを実装します。

1

プロジェクトが次の要件に準拠していることを確認します。

  • Node.js 20 LTS 以上

  • DockerとDocker構成( フルスタックの実行が推奨)。

  • MongoDB Atlasクラスター、M10 以上。 Queryable Encryption は無料階層では使用できません。

  • AWS KMS などのキー プロバイダーや、オフライン開発用のローカル プロバイダー(PSP_KMS_PROVIDER=local)。

  • 自動暗号化共有ライブラリ。 MongoDB EnterpriseMONGODB_CRYPT_SHARED_LIB_PATH のダウンロードからダウンロードし、 に点。バックエンドは、設定されていない場合は一般的なインストール パスにフォールバックします。

2

データベース設定コマンド npm run setup:db を使用してMongoDBキーヴォールトをプロビジョニングします。 CMK によってラップされた暗号化されたフィールドごとに DEK を使用します。このステップは偶数であるため、安全に再実行して既存のキーを再利用できます。

AWS KMS などの管理された KMS を、本番環境または本番環境のような配置で使用します。 CMK は組織の独自のアカウントに保持され、 MongoDB はそのCMKにアクセスできません。

AWS KMS の場合は、環境変数を使用してプロバイダーを構成します。

PSP_KMS_PROVIDER=aws
AWS_CMK_ARN=arn:aws:kms:<region>:<account-id>:key/<key-id>
AWS_REGION=<region>
AWS_ACCESS_KEY_ID=<access-key-id>
AWS_SECRET_ACCESS_KEY=<secret-access-key>
# AWS_SESSION_TOKEN=<token> # optional, for temporary credentials

あるいは、マスターキーを環境変数に保持するローカルキープロバイダーを使用します。この設定はオフラインのデモやローカル開発の回避策として機能し、実際のカード所有者データには適していません。

オフライン デモのみにローカル KMS 回避策を構成します。

PSP_KMS_PROVIDER=local
PSP_KMS_LOCAL_MASTER_KEY=<96-byte base64 key> # generate with: npm run setup:key:master

ローカルプロバイダーには、96 バイトのベース64マスターキーが必要です。 MongoDB Queryable Encryptionでは、ローカルプロバイダーにこのサイズが必要です。

3

このプラットフォームはイベント駆動型です。ビジネス イベントとコンプライアンスイベントはイベントバス。エンジンは EVENT_BUS_ENGINE によって選択されており、選択に関係なく同じ出版社とコンシューマー コードが実行されます。

Kafka は本番環境または高スループット環境で使用されるため、イベントは耐久性があり、分割され、他のシステムによって消費されます。

EVENT_BUS_ENGINE=kafka
KAFKA_BROKERS=broker1:9092,broker2:9092
KAFKA_CLIENT_ID=pci-psp
KAFKA_SSL=true
KAFKA_SASL_MECHANISM=plain # or scram-sha-256 / scram-sha-512
KAFKA_SASL_USERNAME=<username>
KAFKA_SASL_PASSWORD=<password>
EVENT_BUS_TOPIC_PREFIX=pci.psp

ローカル開発、デモ、低ボリュームの配置など、負荷の少ない環境には、プロセス内エンジンを使用します。

EVENT_BUS_ENGINE=in-process

カードデータは暗号化されたエンベロープとして送信されるため、エンジンの選択によって PCI DSS への対応状況が変わることはありません。

4

スタックを開始する前に、ルート .env に次の値を設定します。

  • MongoDB Atlas: MONGODB_URI, MONGODB_DB_NAME

  • QE 共有ライブラリ: MONGODB_CRYPT_SHARED_LIB_PATH

  • 認証: PSP_JWT_SECRET、PSP_OAUTH_KEY_PROVIDER

  • フロントエンド/マーチャント: NEXT_PUBLIC_PSP_URL_BACKEND_PUBLIC, PSP_MERCHANT_OAUTH_CLIENT_ID, PSP_MERCHANT_OAUTH_CLIENT_SECRET, PSP_MERCHANT_SESSION_SECRET

リポジトリには編集用の .envファイルが含まれています。完全なリストについては、インストールウィキページを参照してください。

5

依存関係をインストールし、データベースをプロビジョニングおよびシードし、スタックを起動します。 Docker Compose が最初の実行に推奨されるパスです。バックエンド、PSP ポータル、マーチャンクアプリを自己完結型の コンテナ化スタックとして起動します。

npm run setup # install root + backend + frontend + merchant dependencies
npm run setup:db # create QE collections, provision DEKs and indexes
npm run setup:seed # insert synthetic BIAN demo data
docker compose up # start the full stack

ホットリロードを使用してローカル開発を行う場合は、docker compose up ではなく npm run dev を使用します。

を実行中と、サービスは以下で利用できます。

Leafy Payアプリケーションのデモ ユーザー インターフェース

図の 4。 Leafy Payアプリケーションのデモ ユーザー インターフェース

クリックして拡大します

setup:db には、有効な KMS 認証情報を持つライブ M10 以上の Atlas クラスターが必要です。このデモでは合成データのみを使用します。

6

本番環境または共有環境では、単一の Docker Compose ホストではなく Kubernetes にデプロイします。

npm run deploy:kube # Kubernetes deploy via tools/kube.ts
# npm run deploy:docker # alternative: containerised deploy with docker compose

推奨される本番環境の設定:

  • キー プロバイダーとKafkaイベントパスにAWS KMS を使用します。

  • Kubernetes secret として QE 階層ごとの接続文字列と認証情報を提供します。

  • TLS 経由でクライアントトラフィックを終了し、利用可能なプライベート エンドポイントを介して Atlas にアクセスします。

  • AWS KMS が配置されたら、バックエンドを水平方向にスケーリングします。を、ローカル キー プロバイダーで実行中間のみ、単一のレプリカを保持します。

  • 初日から共有の責任を念頭に置いた設計: MongoDB Atlas の PCI DSS 認定により、インフラストラクチャ層を AOC を通じて継承できますが、アプリケーション層は引き続きカスタマーの責任となります。

  • 暗号化と検索可能性を一緒に有効にします。Queryable Queryable Encryption は、サーバーが復号化することなく暗号化された PII の完全一致検索をサポートしているため、「復号化の調査」を容易にできます。 PCI DSS の範囲を増やす傾向があるトレードオフ。

  • コードではなくキーでアクセス制御を強制する :階層ごとの DEK モデルにより、フィールドレベルのアクセスが暗号化されます。特権のないクライアントは機密フィールドを復号化できないため、クエリ バグによって機密フィールドがリークされる可能性が低くなります。

  • データを保護する前にスコープを縮小する: Pandora をトークン化し、マスクされた最後の 4 桁のみを保存すると、システムのほとんどがカードホルダー データ スコープの対象外になります。スコープ外のデータは、暗号化されているがスコープ内にあるデータよりも制御が少なくなるため、スコープを削減すると監査する画面が縮小します。

  • キーを超える監査するログを設計します。追加専用のアクセスログは、暗号化されず、記述されるデータとは別に管理されるため、キーのローテーション中も読み取り可能であり、PCI DSS に期待されるアクセス ログとモニタリングをサポートします。

  • Antonio Membrides Espinosa, MongoDB