For the complete documentation index, see llms.txt. This page is also available as Markdown.

Azure Key Vaultでの暗号化

Azure Key Vault キーでシークレットマネージャーの接続情報を保護

KeeperシークレットマネージャーとAzure Key Vaultと連携することで、構成ファイルを暗号化できます。この連携により、接続情報をローカル環境で保護しつつ、すべての機密認証情報に対してKeeperのゼロ知識暗号化を活用できます。

機能

  • Keeperシークレットマネージャーの構成ファイルをAzure Key Vaultで暗号化および復号化

  • シークレットマネージャー接続への不正アクセスを防止

  • 最小限のコード変更で即時に保護を実現。すべてのKeeperシークレットマネージャーSDK機能と連携

  • AzureのRSA非対称鍵に対応

要件

セットアップ

1. モジュールのインストール

GradleまたはMavenを使用してプロジェクトをセットアップ

Gradle

Maven

npmを使用してシークレットマネージャーとAzure Key Vaultモジュール統合をインストールします。

シークレットマネージャーストレージモジュールは、pipを使用してインストールできます。

Azureバックエンドには、以下の3つの追加パッケージが必要です。

KeeperシークレットマネージャーのKSMモジュールは、Keeperシークレットマネージャーのストレージモジュールに含まれており、dotnet を使用してインストールします。

シークレットマネージャーとAzure KSMモジュールの統合は、以下のコマンドでインストールします。

2. Azure Key Vaultの接続を構成

Azure Key Vaultインスタンスが利用可能であることを確認してください。Azure Key Vaultに接続するために必要な以下のパラメータが必要です。 AZURE_TENANT_ID: The Microsoft Entra tenant (directory) ID.

AZURE_CLIENT_ID: The client (application) ID of an App Registration in the tenant.

AZURE_CLIENT_SECRET: A client secret that was generated for the App Registration.

Azure Key Vault統合を使用するには、Azure Appディレクトリのアプリが必要です。

Azure Appディレクトリのアプリ登録および権限の詳細については、以下のAzureのドキュメントをご参照ください。

3. コードにAzure Key Vaultストレージを追加する

Azure接続が構成されたら、Azureキーを使用してKSM構成の暗号化/復号化を行うためにキーを取得できます。また、シークレットマネージャーSDKに対して、キー ボルトをストレージとして使用するよう指示する必要があります。

Azure Key Vault統合の使用

設定が完了すると、Secrets Manager Azure Key Vault統合はすべてのシークレットマネージャーSDK機能をサポートします。コードは、KSM構成ファイルの暗号化および復号化を管理するために、Azureキーにアクセスできる必要があります。 指定された接続認証情報の使用

この操作を行うには、AzureKeyValueStorage インスタンスを作成し、SecretManagerOptions コンストラクタで使用します。

AzureKeyValueStorage は、azure_key_idazure_keyvault_URL、構成が含まれたシークレットマネージャー構成ファイルの名前を必要とします。

この操作を行うには、SecretsManager コンストラクタで、AzureKeyValueStorage をシークレットマネージャーのストレージとして使用します。

このストレージには、Azure Key ID と、Azure Key Vaultによって暗号化されるシークレットマネージャー構成ファイルの名前が必要となります。

この操作を行うには、SecretsManager コンストラクタで、トークンとともに AzureKeyValueStorage を構成として指定し、シークレットマネージャーのストレージとして使用します。

このストレージでは、Azure Key ID、Azure-KSM統合によって暗号化されるシークレットマネージャー構成ファイルの場所、そして以下のようなAzureセッション構成が必要です。

comment-question

v1.0.xからのアップグレードについて

v1.1.0では、以下の動作が変わります。

  • AES-GCMノンスがNIST SP 800-38Dに従い16バイトから12バイトに修正されました。既存の暗号化済み構成は引き続き読み取り可能です。

  • decrypt_config() のデフォルトは autosave=False になりました。従来の動作を維持するには decrypt_config(autosave=True) を呼び出してください。

  • 暗号化および復号に失敗した場合、エラーを出さずにストレージ状態を破損させるのではなく、例外が発生します。

  • 破損した、または非UTF8の構成ファイルは、JSONDecodeError をそのまま返すのではなく、"is not a valid encrypted config file" の例外が発生します。

  • 構成の書き込みはアトミック (書き込み後にリネーム) になり、書き込み失敗時に既存の構成が0バイトに切り詰められることはありません。

  • delete_all() は空の暗号化ブロブを書き込むのではなく、暗号化された構成ファイルをディスクから削除します。

  • AzureKeyValueStorage は、同時読み書きに対してスレッドセーフになりました。

この操作を行うには、SecretsManager コンストラクタで、AzureKeyValueStorage をシークレットマネージャーのストレージとして使用します。 このストレージでは、Azure Key ID と、Azure Key Vaultによって暗号化されるシークレットマネージャー構成ファイルの名前が必要です。オプションで AzureSessionConfig を指定することも可能です。認証情報が指定されていない場合は、既定の認証情報が使用されます。

この操作を行うには、SecretsManager コンストラクタで、NewAzureKeyValueStorage をシークレットマネージャーのストレージとして使用します。

NewAzureKeyVaultStorage でAzure Key Vaultを使用してKSM構成を暗号化するには、以下のパラメータが必要です:

  • ksmConfigFileName: KSM構成ファイルの名前

  • keyURL: Azure KeyのURL

追加オプション

キーの変更

KSM構成の暗号化に使用するキーを変更することも可能です。以下の例は、そのために必要なコードとなります。

構成の復号化

現在の実装を別のクラウド環境へ移行する場合や、生の認証情報を取得したい場合には、構成の復号が可能です。この関数はブール値を受け取り、true に設定すると復号化された構成をファイルに保存し、false の場合は復号化された構成を返します。

pencil-line

v1.1.0では、decrypt_config() のデフォルトは autosave=False になりました。以前のデフォルトは True であり、暗号化された構成ファイルを平文で上書きしていました。ディスクに保存する場合は、明示的に autosave=True を指定してください。

その他の例と機能については、KSM SDKのドキュメントをご参照ください。

最終更新