BT

Spring Vault GA 1.0がリリースされた

| 作者: Andrew Morgan フォローする 3 人のフォロワー , 翻訳者 阪田 浩一 フォローする 1 人のフォロワー 投稿日 2017年5月25日. 推定読書時間: 3 分 |

原文(投稿日:2017/05/08)へのリンク

PivotalはSpring Vault 1.0の一般提供を発表した。これはJavaライブラリで、セキュリティ管理ツールのHashicorp Vaultのまわりにクライアントサイドを抽象化したものを提供する。典型的なSpringのイディオムに従うと、VaultをSpringやJavaアプリケーションにより簡単に連携できるようにする。よくあるパターンはテンプレートやプロパティソースといったものだ。

Hashicorp Vaultは開発者にAPIトークンやSSL証明書、パスワードのような機密にアクセスし保存する安全な手段を提供するツールである。またトークンを無効にしたりロールしたりすることでユーザへのアクセス制限を処理する。この上には、ユーザを追跡する監査機能がある。

Vaultを採用したいJava開発者は一般的にCLIかAPIかの選択を提示される。ゆえにJVMからVaultを呼び出したいとき、開発者はAPIを選択し、彼ら自身のクライアントライブラリを実装する可能性が高い。Spring Vaultをオープンソースとして提供することで開発者自身がそうせずともよくする。また営利企業であるPivotalによっても支援されている。

Spring自身に依存はしないが、高レベルの設計原則と抽象化はともに開発者にとってのお決まりのコードを減らす目的となじんでいる。これが意味することは、フレームワークは一般的なJava開発者と同様に、Spring開発者にとってとくに簡単に適用できるべきだということだ。

Vaultとやり取りするために、Spring Vaultは中心となるクラスとしてVaultTemplateを使う。VaultのCLIやAPIと同義にする目的で、"write"や"read"、"delete"、"revoke"のようなよくある処理を提供する。

Secret toWrite = new Secret("foo");
vaultTemplate.write("mysecret/myapp", toWrite);

VaultResponseSupport<Secret> toRead = vaultTemplate.read("mysecret/myapp", Secret.class);
vaultTemplate.delete("mysecret/myapp");

@VaultPropertySourceアノテーションを使うと、Spring Vaultが機密をJavaオブジェクトに暗黙的にマッピングできるようになる宣言的メカニズムを適用できる。

@VaultPropertySource(value = "foo/creds", propertyNamePrefix = "foo")
public class SomeConfig {
  // ...
}

public class MyProperties {
  @Value("${foo.username}")
  private String awsAccessKey;

  @Value("${foo.password}")
  private String awsSecretKey;

  // ...
}

ライブラリは複数の認証メカニズムもサポートする。AppIdAppRoleAWS EC2TLS証明書Cubbyholeだ。ClientAuthenticationクラスの実装を通じてこれらを提供することで、Java開発者は最初のログインをより簡単に構築する足場を提供してもらえるということを意味する。

またSessionManagerを通じて、フレームワークによって必要とされるセッション管理が処理される。これが意味することは、トークンの再生成や廃棄時の無効化のようなタスクは自動的に処理され、アプリケーションコードで明示的に処理する必要がない。もう一度言うが、追加となる開発のオーバーヘッドを取り除いてくれる。

より詳細は公式ドキュメントにある。ライブラリはMavenセントラルからダウンロードできる。ソースコードはGitHubから利用できる。

 

Rate this Article

Adoption Stage
Style

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT