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

暗号化の設定

This page discusses server configuration to support encryption at rest. If you use MongoDB Atlas, your data is already encrypted. MongoDB manages Atlas encryption at the cloud provider level, but you can also use your own key management solution. See the Atlas key management documentation for details.

MongoDB Enterprise 3.2 では、WiredTiger ストレージ エンジンのネイティブ暗号化オプションが導入されています。Atlas 以外では、暗号化は WiredTiger ストレージ エンジンを使用するエンタープライズ インストールでのみ使用できます。

暗号化のキーを安全に管理することは、ストレージ暗号化にとって重要です。MongoDB は、MongoDB インストールにストアされていないマスター キーを使用します。 マスター キーのみが外部で管理され、他のキーは MongoDB インスタンスに保存できます。

MongoDB の暗号化ストレージ エンジンは、マスター キーの 2 つのキー管理オプションをサポートしています。

  • KMIP(Key Management Interoperability Protocol)を介してサードパーティのキーマネジメント機器と統合します。推奨

  • キーファイル経由でローカルキー管理の使用。

重要

MongoDB cannot encrypt existing data. When you enable encryption with a new key, the MongoDB instance cannot have any pre-existing data. If your MongoDB installation already has existing data, see Encrypt Existing Data at Rest for additional steps.

MongoDB Enterprise は、互換性のあるキー管理アプライアンスを使用したキーの安全な転送をサポートします。キー マネージャーを使用すると、キーをキー マネージャーにストアできます。

MongoDB Enterprise は、Key Management Interoperability Protocol(KMIP)準拠のキー管理アプライアンスを使用したキーの安全な転送をサポートします。

For a list of MongoDB's certified partners, refer to the Partners List.

Tip

推奨

キー マネージャーの使用により HIPAA、PCI-DSS、FERPA などの規制キー管理ガイドラインに準拠し、これはローカル キー管理よりも推奨されます。

  • キー マネージャーは KMIP 通信プロトコルをサポートしている必要があります。

    デフォルトの KMIP プロトコル バージョンは 1.2 です。MongoDB サーバーの構成ファイルで、KMIP バージョン 1.0 または 1.1 を使用するように MongoDB を構成できます。

  • KMIP を使用してサードパーティのマネジメント機器を統合する場合、次の KMIP 操作を許可する必要があります。

    • 作成(operation_create)

    • 取得(operation_get)

    • アクティブ化(operation_activate)

    • GetAttributes(operation_get_attributes)

    • 暗号化された(operation_encrypt)

    • 復号化(operation_decrypt)

    MongoDB、デフォルトのKMIP構成で暗号化および復号化操作が必要です。security.kmip.useLegacyProtocoltrueMongoDBサーバーの 構成ファイル で を に設定すると、MongoDB は KMIP1.0 / を使用します1.1プロトコルでは、これらの操作は必要ありません。

  • MongoDB を KMIP サーバーに対して認証するには、キー管理アプライアンスによって発行された有効な証明書が必要です。

注意

Windows 上の MongoDB Enterprise では、保管時の暗号化のブロック暗号として AES256-GCM をサポートしなくなりました。この使用は、Linux でのみサポートされています。

キー マネージャーに接続するときに新しいキーを作成するには、構成ファイルに次のようなエントリを追加します。文字列とポート番号を自分の値に置き換えます。

security:
enableEncryption: true
kmip:
serverName: "mdbhost.somecompany.com"
port: 5696
serverCAFile: "security/libs/trusted-ca.pem"
clientCertificateFile: "security/libs/trusted-client.pem"

これらのオプションの詳細については、キー・マネジメント構成オプションを参照してください。

バージョン 1.0 または 1.1 に接続するにはKMIPサーバーで、security.kmip.useLegacyProtocol 構成オプションを設定します。

構成に必要な追加オプションを含めます。 たとえば、リモート クライアントを配置に接続する場合、または配置ノードを異なるホスト上で実行する場合は、 --bind_ipを指定します。

重要

Windows で KMIP サーバーを使用して暗号化を有効にすると、 security.kmip.clientCertificateFileと KMIP サーバーにより TLS 1.2が強制されます。

Windows で KMIP を使用して保管時の暗号化を有効にするには、次の条件を満たす必要があります。

mongod では、起動時に KMIP サーバーへの接続を検証します。

security.kmip.serverName に指定するサーバー名は、KMIP サーバーで提示する証明書のサブジェクト代替名 SAN またはコモンネーム CN のいずれかと一致する必要があります。SAN はシステム名または IP アドレスにすることができます。

SAN が存在する場合、mongod は CN との一致は試行しません。

KMIP サーバーのホスト名や IP アドレスが SAN とも CN とも一致しない場合、mongod は起動しません。

キーの作成と使用が成功したことを確認するには、ログファイルを確認します。成功した場合、プロセスでは次のメッセージがログに記録されます。

[initandlisten] Created KMIP key with id: <UID>
[initandlisten] Encryption key manager initialized using master key with id: <UID>

KMIPサーバーがすでに管理している既存のマスター キーを使用できます。既存のキーを使用するには、mongod を起動する前に、次のようなエントリを構成ファイルに追加します。文字列とポート番号を自分の値に置き換えます。

security:
enableEncryption: true
kmip:
keyIdentifier: "a29fba3-fd8327a2-74ba-43aa-bd3b-78a549a5295f"
serverName: "mdbhost.somecompany.com"
port: 5696
serverCAFile: "security/libs/trusted-ca.pem"
clientCertificateFile: "security/libs/trusted-client.pem"

これらのオプションの詳細については、キー・マネジメント構成オプションを参照してください。

バージョン 1.0 または 1.1 に接続するにはKMIPサーバーで、security.kmip.useLegacyProtocol 構成オプションを設定します。

構成に必要な追加オプションを含めます。 たとえば、リモート クライアントを配置に接続する場合、または配置ノードを異なるホスト上で実行する場合は、 --bind_ipを指定します。

mongod では、起動時に KMIP サーバーへの接続を検証します。

security.kmip.serverName に指定するサーバー名は、KMIP サーバーで提示する証明書のサブジェクト代替名 SAN またはコモンネーム CN のいずれかと一致する必要があります。SAN はシステム名または IP アドレスにすることができます。

SAN が存在する場合、mongod は CN との一致は試行しません。

KMIP サーバーのホスト名や IP アドレスが SAN とも CN とも一致しない場合、mongod は起動しません。

キーファイル メソッドを使用することは、ほとんどの規制キー管理ガイドラインを満たしていないため、ユーザーは自分のキーを安全に管理する必要があります。

キーファイルの安全な管理は重要です。

重要

Key rotation is not available for local key management. If your use case requires key rotation, use a key manager.

キーファイルを使用して暗号化するには、16 文字または 32 文字の文字列を 1 つ含み base64 でエンコードされたキーファイルが必要です。キーファイルにアクセスできるのは、mongod プロセスの所有者のみである必要があります。

  1. 16 文字または 32 文字の文字列で base64 でエンコードされたキーファイルを作成します。キーファイルを生成するには、任意の方法を使用できます。たとえば、

    openssl rand -base64 32 > mongodb-keyfile
  2. ファイルのアクセス許可をアップデートします。

    chmod 600 mongodb-keyfile
  3. キーファイルを使用するには、次のオプションで mongod を開始します。

    • --enableEncryption,

    • --encryptionKeyFile <path to keyfile>,

    mongod --enableEncryption --encryptionKeyFile mongodb-keyfile

    構成に必要な追加オプションを含めます。 たとえば、リモート クライアントを配置に接続する場合、または配置ノードを異なるホスト上で実行する場合は、 --bind_ipを指定します。

  4. 暗号化キー マネージャーがキーファイルを使用して正常に初期化されたかどうかを確認します。操作が成功した場合、成功した場合、プロセスでは次のメッセージがログに記録されます。

    [initandlisten] Encryption key manager initialized with key file: <path to keyfile>

MongoDB は既存のデータを暗号化できません。新しいキーで暗号化を有効にすると、MongoDB インスタンスに既存のデータを含めることはできません。

既存のデータを含むレプリカセットを使用している場合は、ローリングの最初の同期を使用してデータを暗号化します。

たとえば、3 つのノードを持つレプリカセットを考えてみましょう。レプリカセットは使用中で、暗号化したいデータを保持しています。保管中のデータを暗号化する手順は次のとおりです。

1

次の手順に従って、サーバーを準備します。

  • セカンダリ サーバーの 1 つを選択します。

  • セカンダリ サーバーで mongod を停止します。

  • 任意: dbPath のデータをバックアップします。完全なバックアップが必要ない場合は、問題が発生した場合に役立つ可能性のあるトラブルシューティング データを保存するために、diagnostic.data ディレクトリのみをバックアップすることを検討してください。詳細については、「フルタイム診断データ取得」を参照してください。

  • dbPath。 内のファイルとディレクトリを削除します。

2

Start the secondary server with encryption enabled. The mongod instance creates a new keystore.

3

プライマリからデータをインポートします。必要に応じてレプリケーション オプションを指定して、mongod プロセスを開始します。

mongod 最初の同期を実行し、同期アップ プロセス中にデータを暗号化します。

4

最初のセカンダリがデータのインポートと暗号化を完了したら、他のセカンダリ mongod インスタンスでも同じプロセスを繰り返します。

5

すべてのセカンダリが暗号化されたら、プライマリを step down します。適格なセカンダリによって、新しいプライマリが選出されます。

古いプライマリはセカンダリになりました。手順を繰り返して暗号化されていないデータを削除し、最初の同期を実行します。

ルール バッジを取得する

「保管時の暗号化操作」を無料でマスターします。

詳細

このページを評価