このバージョンはまだ開発中であり、まだ安定しているとは見なされていません。最新の安定バージョンについては、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 は、ネットワークサービスであるため、各操作には遅延が発生します。暗号化やランダムバイト生成を頻繁に使用するコンポーネントでは、スループットとパフォーマンスに違いが生じる可能性があります。