AWS KMSでの暗号化

AWS KMSでシークレットマネージャー接続の詳細情報を保護

Keeperシークレットマネージャーは、AWS KMSと統合することで、Keeperシークレットマネージャーの構成ファイルを暗号化できます。この統合により、マシン上の接続情報を保護しながら、すべてのシークレット認証情報に対してKeeperのゼロ知識暗号化を活用できます。

機能

  • AWS KMS を使用して、Keeperシークレットマネージャーの構成ファイルを暗号化および復号化

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

  • わずかなコード変更で即座に保護を実現。すべてのKeeperシークレットマネージャーSDK機能と互換性あり

前提条件

セットアップ

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

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

Gradle

Maven

2. AWS接続を構成

デフォルトでは、boto3ライブラリは、aws configureコマンドを使用したAWS CLIで既定の接続セッション設定を利用します。 接続の詳細情報を指定したい場合は、~/.aws/config~/.aws/credentialsにある2つの設定ファイルを手動で編集できます。

AWSセッション設定の詳細は、以下のAWSのドキュメントをご参照ください。https://docs.aws.amazon.com/cli/latest/reference/configure/

または、AwsSessionConfigデータクラスを使用し、aws_access_key_id変数、aws_secret_access_key変数、aws_session_token変数を使用して、設定の変数をアクセスキーとして明示的に指定することもできます。

AWS KMS連携を使用するには、AWSアクセスキーが必要です。

AWSアクセスキーの詳細は、次のAWSのドキュメントをご参照ください。https://aws.amazon.com/premiumsupport/knowledge-center/create-access-key/

3. AWS KMSストレージをコードに追加

AWS接続の構成が完了すると、KSM構成ファイルの暗号化・復号に使用するキーを連携を通じて取得できます。また、シークレットマネージャーSDKに対して、KMSをストレージとして利用するよう指定する必要があります。

指定された接続認証情報の使用

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

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

デフォルトの接続を使用

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

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

AWS KMS連携の使用

セットアップが完了すると、シークレットマネージャーとAWS KMSの連携により、シークレットマネージャーPython SDKのすべての機能が利用できるようになります。 実行時に構成ファイルの復号化を管理するには、コードからAWS KMS APIにアクセスできなければなりません。

追加オプション

キーの変更

構成の暗号化に使用するキーは変更できます。以下はその変更に必要なコードの例となります。

構成の復号化

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

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

最終更新