このバージョンはまだ開発中であり、まだ安定しているとは見なされていません。最新の安定バージョンについては、Spring Vault 4.0.2 を使用してください!

Spring Security

Spring、Vault は、BytesKeyGenerator および BytesEncryptor の実装を提供することで Spring Security と統合されます。どちらの実装も Vault の transit エンジンを使用します。

例 1: VaultBytesKeyGenerator の例
VaultOperations operations = …;
VaultBytesKeyGenerator generator = new VaultBytesKeyGenerator(operations);

byte[] key = generator.generateKey();
例 2: VaultBytesEncryptor の例
VaultTransitOperations transit = …;

VaultBytesEncryptor encryptor = new VaultBytesEncryptor(transit, "my-key-name");

byte[] ciphertext = encryptor.encrypt(plaintext);

byte[] result = encryptor.decrypt(ciphertext);

Vault は、JVM から分離されたエントロピーソースとサーバー側の鍵管理をカプセル化します。これにより、適切な暗号化 / 復号化の負担がアプリケーション開発者から軽減され、Vault の運用担当者に委ねられます。Vault の運用担当者には通常、組織のセキュリティチームが含まれ、データの暗号化 / 復号化が適切に行われていることを保証できます。さらに、暗号化 / 復号化操作は監査ログに記録されるため、すべての復号化イベントが記録されます。エンジンは鍵のローテーションもサポートしており、指定された鍵の新しいバージョンを生成できます。この鍵で暗号化されたすべてのデータは最新バージョンの鍵を使用し、以前に暗号化されたデータは古いバージョンの鍵を使用して復号化できます。管理者は、どの以前のバージョンの鍵を復号化に使用できるかを制御することで、攻撃者が古い暗号文のコピーを入手して復号化に成功するのを防ぐことができます。Vault は、ネットワークサービスであるため、各操作には遅延が発生します。暗号化やランダムバイト生成を頻繁に使用するコンポーネントでは、スループットとパフォーマンスに違いが生じる可能性があります。