AWS KMSでの暗号化
AWS KMSによるシークレットマネージャー接続情報の保護

KeeperシークレットマネージャーをAWS KMSと組み合わせると、構成ファイルを暗号化できます。マシン上の接続情報を保護しつつ、ボルト内のシークレットについてもKeeperのゼロ知識暗号化を利用できます。
機能
AWS KMSを使い、Keeperシークレットマネージャーの構成ファイルを暗号化・復号化する
シークレットマネージャー接続情報への不正アクセスを防ぐ
わずかなコード変更で保護を有効化でき、すべてのKeeperシークレットマネージャーSDKの機能をそのまま利用できる
要件
Java 11以降で利用可能
@aws-sdk/client-kmsはバンドル済みのため、別途インストールは不要です
Python 3.9.2以降が必要 (Python 3.6〜3.8の場合は
<1.1.0に固定)boto3パッケージが必要
セットアップ
1. モジュールのインストール
GradleまたはMavenでプロジェクトをセットアップします。
Gradle
Maven
npmで、シークレットマネージャーとAWS KMSの統合パッケージをインストールします。
HSM用モジュールは、Keeperシークレットマネージャーのストレージパッケージに含まれます。以下のコマンドでインストールします。
AWS KMS連携では、あらかじめ boto3 が必要です。以下のコマンドでインストールします。
以下のコマンドでシークレットマネージャーとAWS KMSの統合をインストールします。
2. AWS接続を構成
デフォルトでは、boto3は、aws configure で設定したAWS CLIの既定セッションを使います。接続内容を独自に指定する場合は、~/.aws/config と ~/.aws/credentials の2ファイルを手動で編集します。
あるいは、AwsSessionConfig データクラスを使い、aws_access_key_id、aws_secret_access_key、aws_session_token にアクセスキー情報を渡して明示的に指定します。
3. AWS KMSストレージをコードに追加
AWS接続の構成が完了すると、連携を通じてKSM構成ファイルの暗号化と復号に使うキーを取得できます。シークレットマネージャーSDKでは、KMSをストレージとして使うよう指定する必要があります。
指定された接続認証情報の使用
この操作を行うには、SecretsManager コンストラクタで、AwsKeyValueStorage をシークレットマネージャーのストレージとして使用します。
このストレージには、AWSキーID、AwsSessionConfig、AWS KMSによって暗号化されるシークレットマネージャー構成ファイルの名前が必要です。
この操作を行うには、SecretsManager コンストラクタで、AWSKeyValueStorage をシークレットマネージャーのストレージとして使用します。
このストレージには、AWSキーID、AWSセッション認証情報の AWSSessionConfig、AWS KMSによって暗号化されるシークレットマネージャー構成ファイルの名前が必要です。
この操作を行うには、SecretsManager のコンストラクタで、AwsKmsKeyValueStorage をシークレットマネージャーのストレージとして使用します。
このストレージには、AWSキーID、AwsSessionConfig、AWS KMSによって暗号化されるシークレットマネージャー構成ファイルの名前が必要です。
この操作を行うには、SecretsManager のコンストラクタで、AwsKeyValueStorage をシークレットマネージャーのストレージとして使用します。
このストレージには、AWSキーID、AwsSessionConfig、AWS KMSによって暗号化されるシークレットマネージャー構成ファイルの名前が必要です。
デフォルトの接続を使用
この操作を行うには、SecretsManager コンストラクタで、AwsKeyValueStorage をシークレットマネージャーのストレージとして使用します。
このストレージには、AWSキーID、およびAWS KMSによって暗号化されるシークレットマネージャー構成ファイルの名前が必要です。
この操作を行うには、SecretsManager コンストラクタで、AWSKeyValueStorage をシークレットマネージャーのストレージとして使用します。
このストレージには、AWSキーID、およびAWS KMSによって暗号化されるシークレットマネージャー構成ファイルの名前が必要です。
この操作を行うには、SecretsManager のコンストラクタで、AwsKmsKeyValueStorage をシークレットマネージャーのストレージとして使用します。
このストレージには、AWSキーID、AWS KMSによって暗号化されるシークレットマネージャー構成ファイルの名前が必要です。
この操作を行うには、SecretsManager のコンストラクタで、AWSKeyValueStorage をシークレットマネージャーのストレージとして使用します。
このストレージには、AWSキーID、AWS KMSによって暗号化されるシークレットマネージャー構成ファイルの名前が必要です。
AWS KMS連携の使用
セットアップが完了すると、シークレットマネージャーとAWS KMSの連携により、シークレットマネージャーSDKの機能をすべて利用できます。実行時に構成ファイルを復号するには、コードからAWS KMSのAPIにアクセスできる必要があります。
追加オプション
キーの変更
構成の暗号化に使うキーは変更できます。以下にコード例を示します。
構成の復号化
実装を別のクラウド環境へ移す場合や、平文の認証情報が必要な場合は、構成ファイルを復号できます。この関数はブール値を取り、true では復号結果をファイルに書き出し、false では復号した構成の内容だけを返します。
最終更新

