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

フィールドレベルの暗号化

MongoDB Enterprise または MongoDB Atlas クラスターで作業する場合は、mongosh を使用して Queryable Encryption またはクライアント側フィールドレベル暗号化を構成し、暗号化サポートで接続できます。Queryable Encryption と CSFLE はどちらも、データ暗号化キーを使用してフィールド値の暗号化と復号化をサポートします。また、この暗号化のキーマテリアルを KMS(Key Management Service)に保存します。

mongosh は、 Queryable Encryptionと CSFLE で使用する次の KMS プロバイダーをサポートしています。

  • Amazon Web Services KMS

  • Azure Key Vault

  • Google Cloud Platform KMS

  • ローカルで管理されるキーファイル

次の手順では、mongosh を使用して、フィールドレベル暗号化のデータ暗号化キーを作成します。

以下のタブを使用して、配置に適したKMSを選択します。

1

--nodbオプションを使用して、実行中のデータベースに接続せずにmongoshセッションを作成します。

mongosh --nodb
2

Amazon Web Services KMSのクライアント側フィールドレベル暗号化を構成するには、 Amazon Web ServicesアクセスキーIDとそれに関連付けられたシークレットアクセスキーが必要です。 Amazon Web Servicesアクセス キーは、 KMSサービスに対するすべての リスト および 読み取り 権限を持つ IAM ユーザーに対応する必要があります。

mongoshでは、次の認証情報を含むクライアント側のフィールドレベル暗号化構成を保存するための新しいAutoEncryptionOpts変数が作成されます。

var autoEncryptionOpts = { "keyVaultNamespace" : "encryption.__dataKeys", "kmsProviders" : { "aws" : { "accessKeyId" : "YOUR_AWS_ACCESS_KEY_ID", "secretAccessKey" : "YOUR_AWS_SECRET_ACCESS_KEY" } }}

必要に応じて、 YOUR_AWS_ACCESS_KEY_IDとYOUR_AWS_SECRET_ACCESS_KEYの値を入力します。

3

mongoshでは、 Mongo()コンストラクターを使用してターゲット クラスターへのデータベース接続を確立します。 AutoEncryptionOptsドキュメントをMongo()コンストラクターの 2 番目のパラメーターとして指定して、クライアント側のフィールドレベル暗号化の接続を構成します。

csfleDatabaseConnection = Mongo( "mongodb://replaceMe.example.net:27017/?replicaSet=myMongoCluster", autoEncryptionOpts)

replaceMe.example.net URIを、ターゲット クラスターの接続stringに置き換えます。

4

getKeyVault() shell メソッドを使用してkeyVaultオブジェクトを作成します。

keyVault = csfleDatabaseConnection.getKeyVault();
5

createKey() shell メソッドを使用してデータ暗号化キーを作成します。

keyVault.createKey( "aws", { region: "regionname", key: "awsarn" }, [ "keyAlternateName" ])

以下の条件に一致するもの。

  • 構成された Amazon Web Services KMS を指定するには、最初のパラメータが"aws"である必要があります。

  • 2 番目のパラメーターは、次の内容を含むドキュメントである必要があります。

    • 接続しているAmazon Web Servicesのリージョン(例: us-west-2

    • Amazon Web Servicesカスタマーマスター キー(CMK)へのAmazonリソース名(ARN) 。

  • 3 つ目のパラメータは、データ暗号化のキーの 1 つ以上のkeyAltNamesの配列にすることができます。 各キーの代替名は一意である必要があります。 getKeyVault()はkeyAltNamesに一意なインデックスを作成し、フィールドに一意性を強制します(未作成の場合)。 キーの代替名により、データ暗号化されたキーを見つけやすくなります。

成功した場合、 は新しいデータ暗号化のキーのcreateKey() UUID を返します。新しいデータ暗号化のキードキュメントをキーヴォールトから検索するには、次のいずれかを実行します。

  • getKey()を使用して、UUID で作成されたキーを取得するか、

  • 別名でキーを検索するには、 getKeyByAltName()を使用します(指定されている場合)。

このページを評価