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

Oracle Key Vaultでの暗号化

シークレットマネージャーの接続情報をOCIボルトで保護

Keeperシークレットマネージャーは、Oracle Cloud Infrastructure (OCI) ボルトと統合し、Keeperシークレットマネージャーの構成ファイルを保護できます。この統合により、マシン上の接続情報を保護しつつ、すべてのシークレット認証情報についてKeeperのゼロ知識暗号化を活用できます。

機能

  • Keeperシークレットマネージャーの構成ファイルをOCIボルトで暗号化・復号化

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

  • コードの最小限の変更で導入可能。すべてのKeeperシークレットマネージャーSDK機能と互換性あり

要件

  • Python 3.9以降が必要です。Python 3.6~3.8を使用している場合は、<1.1.0 にバージョンを固定してください。

  • oci パッケージが必要です。

  • OCIサービスアカウントには、以下の権限が必要です。

    • KMS CryptoKey Encrypter

    • KMS CryptoKey Decrypter

    • KMS CryptoKey Public Key Viewer

セットアップ

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

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

Gradle

Maven

npm を使用して、シークレットマネージャーのOCIボルト連携モジュールをインストールします。

シークレットマネージャーのOCIボルト連携モジュールは、pip でインストールできます。

oci パッケージは依存関係として同梱されており、別途インストールする必要はありません。

シークレットマネージャーのOCIボルト連携モジュールは、.NETのNuGetパッケージマネージャーでインストールできます。

2. OCIボルト接続の構成

OCIボルトのインスタンスが利用可能であり、その OCID (Oracle Cloud Identifier) を把握していることを確認してください。デフォルトでは、oci key management ライブラリは標準のOCI設定ファイル (~/.oci/config) を使用します。

Oracleキーのセットアップの詳細については、Oracleの公式ドキュメントをご参照ください。

または、OCIボルトにアクセスするための情報を含め、OCI環境に適した設定を追加する必要があります。

設定ファイルは以下のようになります (実際の情報に置き換えてください)

[DEFAULT] user=ocid1.user.oc1..example_unique_id fingerprint=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx key_file=/path/to/your/private/api/key.pem tenancy=ocid1.tenancy.oc1..example_unique_id region=us-phoenix-1

3. コードにOCIボルトストレージを追加

OCIボルト接続の構成が済んだら、OCIボルト連携でKSM構成の暗号化・復号ができます。シークレットマネージャーSDKでは、ストレージとしてOCIボルトを指定します。

OCIボルト連携の利用

セットアップ後は、OCIボルト連携によりシークレットマネージャーSDKの機能をすべて利用できます。KSM構成ファイルの暗号化・復号を行うには、コードからOCIキーにアクセスできる必要があります。 接続認証情報を指定して使う場合

この操作を行うには、まず OracleKeyValueStorage インスタンスを作成し、それを SecretManagerOptions コンストラクタに渡します。

OracleKeyValueStorage には、プロファイルと構成が記載されたシークレットマネージャーの構成ファイル名が必要です。

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

ストレージには、OCIの構成ファイルのパス、複数プロファイルがある場合のOCI構成プロファイル名、OCI KMSのCryptoエンドポイントとManagementエンドポイント、およびOCIボルトで暗号化するシークレットマネージャー構成ファイル名が必要です。

v1.0.xからアップグレードする場合: v1.1.0では、以下の動作が変更されています。

  • decrypt_config() の既定値が autosave=False になりました。以前の動作を維持するには decrypt_config(autosave=True) を明示的に呼び出してください。

  • delete_all() を実行すると、認証情報ファイルがディスクから削除されるようになりました。

  • KMSでエラーが発生した場合、以前は空の値を黙って返していましたが、現在は例外が発生するようになりました。

  • OracleKeyValueStorage はスレッドセーフになりました。

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

ストレージには、OCIキーID、キーバージョンID、KMSのCryptoエンドポイントとManagementエンドポイント、OCI構成ファイルのパス、構成プロファイル、およびOCIボルトで暗号化するシークレットマネージャー構成ファイル名が必要です。あわせて次のとおりOCIセッションを構成します。

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

ストレージには、OCIキーID、キーバージョンID、KMSのCryptoエンドポイントとManagementエンドポイント、OCI構成ファイルのパス、構成プロファイル、およびOCIボルトで暗号化するシークレットマネージャー構成ファイル名が必要です。あわせて次のとおりOCIセッションを構成します。

追加オプション

キーの変更

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

構成の復号化

別のクラウドプロバイダーへ移行する場合や、平文の認証情報を取得するために構成ファイルを復号できます。復号した構成をファイルに書き戻すには true、ファイルを変更せず平文だけ取得するには false を渡します。

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

最終更新