KMS プロバイダー
項目一覧
Overview
KMSがサポートするQueryable Encryption プロバイダーについて説明します。
KMSは、サービスとして提供されるキー管理システムです。
KMSタスク
Queryable Encryptionでは、 KMSは次のようになります。
CMK の作成と暗号化
アプリケーションによって作成されたデータ暗号化キーを暗号化します
データ暗号化キーの復号化
カスタマー マスター キーとデータ暗号化キーの詳細については、 キーとキー ボールトを参照してください。
CMK の作成と保存
カスタマー マスター キーを作成するには、次のようにKMSプロバイダーを設定してカスタマー マスター キーを生成します。
CMKを作成して希望のKMSに保存する方法については、「チュートリアル 」を参照してください。
データ暗号化キーの作成と暗号化
データ暗号化キーを作成するには、次の手順に従います。
Queryable Encryption が有効なアプリケーションで
ClientEncryption
インスタンスをインスタンス化します。Queryable Encryption 対応のアプリケーションがKMSで認証するために使用する認証情報を指定する
kmsProviders
オブジェクトを提供します。
Queryable Encryption 有効アプリケーション内の
ClientEncryption
オブジェクトのCreateDataKey
メソッドを使用してデータ暗号化キーを作成します。KMSが新しいデータ暗号化キーを暗号化するキーを指定する
dataKeyOpts
オブジェクトを指定します。
データ暗号化キーの作成および暗号化方法のチュートリアル デモは、次のリソースを参照してください。
サポートされているすべての KMS プロバイダーの オブジェクトと オブジェクトの構造を表示するには、kmsProviders
「dataKeyOpts
サポートされているキー管理サービス」 を参照してください。
サポートされているキー管理サービス
このページの次のセクションには、すべての KMS プロバイダーに関する次の情報が表示されます。
Queryable Encryption が有効なクライアントのアーキテクチャ
kmsProviders
オブジェクトの構造dataKeyOpts
オブジェクトの構造
Queryable Encryptionは次のKMSプロバイダーをサポートしています。
Amazon Web Services KMS
このセクションでは、Amazon Web ServicesKMS Queryable Encryptionの使用に関連する情報を提供します。 が有効なアプリケーションの場合
対応アプリケーションで を使用する方法のチュートリアルを表示するには、「Amazon Web ServicesKMS Queryable Encryptionで自動 を使用するQueryable Encryption Amazon Web Services」を参照してください。
アーキテクチャ
Queryable Encryption次の図は、 を使用してAmazon Web ServicesKMS が有効なアプリケーションのアーキテクチャを説明します。
注意
クライアントが CMK にアクセスできません
上記のKMSを使用している場合、 Queryable Encryptionが有効なアプリケーションは CMK にアクセスできません。
kmsProviders オブジェクト
次の表は、 Amazon Web Services KMSの kmsProviders
オブジェクトの構造を示しています。
フィールド | IAM ユーザーに必要 | IAM ロールに必要 | 説明 |
---|---|---|---|
アクセスキー ID | はい | はい | アカウント ユーザーを識別します。 |
シークレット アクセス キー | はい | はい | アカウント ユーザーの認証情報が含まれています。 |
Session Token | No | はい | Amazon Web Services Security Token Service(STS)から取得したトークンが含まれます。 |
dataKeyOps オブジェクト
次の表は、 Amazon Web Services KMSの dataKeyOpts
オブジェクトの構造を示しています。
フィールド | 必須 | 説明 |
---|---|---|
キー | はい | Amazon リソース番号(ARN) のマスター キー。 |
リージョン | No | マスターキーのAmazon Web Servicesのリージョン(例: "us-west-2" ) ARN で指定されていない場合にのみ必要です。 |
エンドポイント | No | アカウントに設定されている場合は、 Amazon Web Servicesエンドポイントのカスタムホスト名。 |
Azure Key Vault
このセクションでは、 Azure Key Vault の使用に関連する情報を提供します。 : Queryable Encryption が有効なアプリケーションの場合
Queryable Encryption 対応アプリケーションで Azure Key Vault を使用する方法のチュートリアル デモは、「 Azure で自動 Queryable Encryption を使用する」を参照してください。
アーキテクチャ
次の図では、Azure Key Vault を使用した Queryable Encryption 対応アプリケーションのアーキテクチャを説明します。
注意
クライアントが CMK にアクセスできません
上記のKMSを使用している場合、 Queryable Encryptionが有効なアプリケーションは CMK にアクセスできません。
kmsProviders オブジェクト
次の表は、Azure Key Vault のkmsProviders
オブジェクトの構造を示しています。
フィールド | 必須 | 説明 |
---|---|---|
azure.tenantId | はい | アカウントの組織を識別します。 |
azure.clientId | はい | 登録されたアプリケーションを認証するために clientId を識別します。 |
azure.clientSecret | はい | 登録されたアプリケーションを認証するために使用されます。 |
azure. identityPlatformEndpoint | No | 認証サーバーのホスト名とポート番号を指定します。 デフォルトは login.Microsoftonline.com で、政府や中国のアカウントなど、非営利の Azure インスタンスにのみ必要です。 |
dataKeyOps オブジェクト
次の表は、Azure Key Vault のdataKeyOpts
オブジェクトの構造を示しています。
フィールド | 必須 | 説明 |
---|---|---|
keyName | はい | マスターキーの名前 |
keyVersion | No | マスターキーのバージョン |
keyVaultEndpoint | はい | キーヴォールトの URL。 Eg myVaultName.vault.azure.net |
Google Cloud Platform KMS
Google Cloud Platformこのセクションでは、 キー管理 の使用に関連する情報を提供しますQueryable Encryption が有効なアプリケーションの場合
Queryable Encryption 対応アプリケーションで GCP KMS を使用する方法のチュートリアル デモは、「 GCP で自動 Queryable Encryption を使用する」を参照してください。
アーキテクチャ
以下の図では、GCP KMS を使用した Queryable Encryption 有効アプリケーションのアーキテクチャが説明されています。
注意
クライアントが CMK にアクセスできません
上記のKMSを使用している場合、 Queryable Encryptionが有効なアプリケーションは CMK にアクセスできません。
kmsProviders オブジェクト
次の表は、GCP KMS のkmsProviders
オブジェクトの構造を示しています。
フィールド | 必須 | 説明 | |||
---|---|---|---|---|---|
メールアドレス | はい | サービス アカウントのメール アドレスを識別します。 | |||
privateKey | はい | Identifies your service account private key in either
base64 string or
Binary subtype 0
format without the prefix and suffix markers. Suppose your service account private key value is as follows:
The value you would specify for this field is:
If you have a user-key.json credential file, you can extract
the string by executing the following command in a bash or
similar shell:
| |||
エンドポイント | No | 認証サーバーのホスト名とポート番号を指定します。 デフォルトは opth2.googleapis.com です。 |
dataKeyOps オブジェクト
次の表は、GCP KMS のdataKeyOpts
オブジェクトの構造を示しています。
フィールド | 必須 | 説明 |
---|---|---|
projectId | はい | キーを作成したプロジェクトの識別子。 |
ロケーション | はい | キーに指定されたリージョン。 |
keyRing | はい | キーが属するキーのグループの識別子。 |
keyName | はい | 対称マスターキーの識別子。 |
keyVersion | No | 名前付きキーのバージョンを指定します。 指定しない場合、キーのデフォルトのバージョンが使用されます。 |
エンドポイント | No | Cloud KMS のホストとオプション ポートを指定します。 デフォルトは |
KMIP
このセクションでは、 KMIP の使用に関する情報を提供しますKMS Queryable Encryptionが有効なアプリケーション内の 準拠の プロバイダー。
アーキテクチャ
次の図は、 KMIP準拠のキー プロバイダーを使用して Queryable Encryption が有効なアプリケーションのアーキテクチャを説明します。
重要
クライアントが CMK にアクセス
Queryable Encryption が有効なアプリケーションがKMIP準拠のキープロバイダーを使用する場合、アプリケーションはカスタマー マスター キーに直接アクセスします。
kmsProviders オブジェクト
次の表は、KMIP 準拠のKMSの kmsProviders
オブジェクトの構造を示しています。
注意
TLS/SSL による認証
Queryable Encryption が有効なアプリケーションは、KMIP を使用する場合、 TLS/SSL経由で認証されます。
フィールド | 必須 | 説明 |
---|---|---|
エンドポイント | はい | 認証サーバーのホスト名とポート番号を指定します。 |
dataKeyOps オブジェクト
次の表は、KMIP 準拠のKMSの dataKeyOpts
オブジェクトの構造を示しています。
フィールド | 必須 | 説明 |
---|---|---|
keyId | No | バイト の シークレット データ マネージド KMIP準拠のキープロバイダーに送信する |
エンドポイント | はい | KMIP準拠のキー プロバイダーの URI 。 |
ローカル キー プロバイダー
このセクションでは、Queryable Encryption が有効なアプリケーションでローカル キー プロバイダー(ファイルシステム)を使用する方法に関連する情報を提供します。
警告
本番環境ではローカルキー ファイルを使用しない
ファイルシステム内のローカルキー ファイルは安全でなく、本番環境には推奨されません。 代わりに、CMK をリモート キー管理システム に保存する必要があります (KMS)。
Queryable Encryption の実装でリモート KMS を使用する方法については、チュートリアルのガイドを参照してください。
ローカル キー プロバイダーを使用して Queryable Encryption をテストする方法のチュートリアル デモは、「クイック スタート 」を参照してください。
アーキテクチャ
ローカル キー プロバイダーを使用すると、アプリケーションは実行されるコンピューターのファイルシステムからカスタマー マスター キーを検索します。 以下の図では、ローカル キー プロバイダーを使用した、Queryable Encryption 対応のアプリケーションのアーキテクチャを示します。
kmsProviders オブジェクト
次の表は、ローカル キー プロバイダーのkmsProviders
オブジェクトの構造を示しています。
フィールド | 必須 | 説明 |
---|---|---|
キー | はい | データキーを暗号化および復号化するために使用されるマスターキー。 マスターキーは base64 でエンコードされたstringとして渡されます。 |
dataKeyOps オブジェクト
ローカル キー プロバイダーを使用する場合は、 kmsProviders
オブジェクトを通じてカスタマー マスター キーを指定します。