Google Cloud Key Managementでの暗号化
シークレットマネージャーの接続情報をGoogle Cloud Key Managementで保護

KeeperシークレットマネージャーはGoogle Cloud Key Managementと連携し、Keeperシークレットマネージャーの構成ファイルを暗号化できるようにします。この連携により、マシン上の接続情報を保護しながら、すべてのシークレット認証情報に対するKeeperのゼロ知識暗号化の利点を活用できます。
機能
Google Cloud Key Managementを使って、Keeperシークレットマネージャーの構成ファイルを暗号化および復号化します。
シークレットマネージャーの接続情報への不正アクセスを防止します。
保護のためにコードに加える変更は最小限で済みます。すべてのKeeperシークレットマネージャーSDK機能で動作します。
要件
Keeper SecurityとGoogle Cloud Key Managementを連携するには、
.jsonで終わるサービスアカウントキーが必要です。この連携でサポートされるキーの構造は以下の形式です。
projects/<project_name>/locations/<location_name>/keyRings/<key_ring_name>/cryptoKeys/<key_name>/cryptoKeyVersions/<key_version>
Java/Kotlin用シークレットマネージャーSDKに対応
GCPパッケージ
google-cloud-kmsが必要GCP CKMキーに
ENCRYPTおよびDECRYPTの権限が必要
JavaScript用シークレットマネージャーSDKに対応
GCPパッケージ
@google-cloud/kmsが必要GCP CKMキーに
ENCRYPTおよびDECRYPTの権限が必要
Python用シークレットマネージャーSDKに対応
GCPパッケージ
google-cloud-kmsが必要GCP CKMキーに
ENCRYPTおよびDECRYPTの権限が必要
.NET用シークレットマネージャーSDKに対応
GCPパッケージ
Google.Apis.CloudKMS.v1が必要GCP CKMキーに
ENCRYPTおよびDECRYPTの権限が必要
セットアップ
1. モジュールのインストール
GradleまたはMavenを使用してプロジェクトをセットアップ
Gradle
Maven
npmを使用してシークレットマネージャーとGoogle Cloud Key Managementモジュール統合をインストールします。
シークレットマネージャーGoogle Cloud Key Managementモジュールは、pipを使用してインストールできます。
シークレットマネージャーのGoogle Cloud Key Managementモジュールは、.NETのNuGetパッケージマネージャーを使用してインストールできます。
シークレットマネージャーのGoogle Cloud Key Managementモジュール統合は、以下を使用してインストールできます。
2. Google CKM接続を構成
Google Cloud Platform (GCP) で安全に認証を行うには、JSON形式のサービスアカウントキーを作成します。この認証情報ファイルは、GCPのサービスとプログラム経由でやり取りする際の認証手段として使用されます。
3. コードにGCPキーボルトストレージを追加
GCP接続の設定が完了したら、統合機能を使ってKSM構成を暗号化および復号化するためのキーを取得できます。また、シークレットマネージャーSDKに、KMSをストレージとして使用するよう指示する必要があります。
GCPキーボルト統合の使用
セットアップが完了すると、シークレットマネージャーのGCPキー・ボールト統合は、シークレットマネージャーSDKのすべての機能に対応します。KSM構成ファイルを暗号化・復号化するには、コードからGCPのCKMキーへアクセスできる必要があります。
指定した接続認証情報の使用
この操作を行うには、GcpKeyValueStorageインスタンスを作成し、それをSecretManagerOptionsのコンストラクタに渡します。
GcpKeyValueStorageには、シークレットマネージャーの構成ファイル名、GCP認証情報ファイル、およびCloud Key Managementのキー情報が必要です。
この操作を行うには、SecretsManagerのコンストラクタでGCPKeyValueStorageをシークレットマネージャーのストレージとして使用します。
このストレージには、keyConfig、GCPKSMClientによって生成されるgcpsessionConfig、およびGCP Cloud Key Managementで暗号化されるシークレットマネージャー構成ファイル名が必要です。
この操作を行うには、SecretsManagerのコンストラクタでGCPKeyValueStorageをシークレットマネージャーのストレージとして使用します。
このストレージには、GCPConfigによって生成されるgcp_key_config、GCPKMSClientConfigによって生成されるgcp_session_configオブジェクト、GCP Cloud Key Managementによって暗号化されるシークレットマネージャー構成ファイルの名前が必要です。
この操作を行うには、SecretsManagerのコンストラクタでGCPKeyValueStorageをシークレットマネージャーのストレージとして使用します。
このストレージには、GCPKeyConfigによって生成されるkeyConfig、GCPKMSClientによって生成されるgcpSessionConfigオブジェクト、そしてGCP Cloud Key Managementによって暗号化されるシークレットマネージャー構成ファイルの名前が必要です。
この操作を行うには、NewSecretsManagerでNewGCPKeyVaultStorageをシークレットマネージャーのストレージとして使用します。
NewGCPKeyVaultStorageは、GCP Cloud Key Management を使用してKSM構成を暗号化するために、以下のパラメータを必要とします。
ksmConfigFileName: KSM構成ファイルのファイル名keyResourceName: Google Cloud Key Management のkeyResourceNameを指定credentialFileWithPath: GCP認証情報ファイルのパスとファイル名を指定
追加オプション
キーの変更
KSM構成の暗号化に使用するキーは変更可能です。以下の例では、そのキーを使用するために必要なコードを示しています。
構成を復号化する
現在の実装を別のクラウドに移行する場合や、生の認証情報を取り出したい場合は、構成ファイルを復号化できます。この関数はブール値を受け取り、trueに設定すると復号された構成をファイルに保存し、falseの場合は復号された構成を返すだけになります。
KSM統合機能を使用する準備ができました。
最終更新

