Carpe Diem

備忘録

HashiCorp VaultのAudit Devicesでオペレーションをロギング

概要

HashiCorp Vaultの売りは

  • Secure secret management
  • Dynamic secrets
  • Encryption as a Service
  • Leasing and Renewal

など多々ありますが、その中でもAudit(監査)ログ(Vaultの操作ログ)の管理はとても重要です。
今回はその設定を紹介します。

Audit Devices

公式では以下の3つの形式をサポートしています。

Audit Devices - Vault by HashiCorp

続きを読む

AngularのPipeでデータの表示形式を簡単に操作する

概要

元はunixtimeだったり、単純な数値データなものだったりを以下のようなフォーマットにしたいことは往々にしてあります。

  • 日付
  • 通過
  • パーセント
  • 大文字に統一

AngularではPipesという機能を使うことでテンプレート上で簡単に実現できます。

ビルトインPipe

あらかじめ用意されているPipeを使ってみます。今回はCurrencyPipeを使ってみます。

続きを読む

HashiCorp VaultのPKI(公開鍵基盤)でルート証明書・中間証明書・サーバ証明書を発行

概要

HashiCorp VaultにはPKI(公開鍵基盤)の機能もあります。
これを使って

  • ルートCA
  • 中間CA

を用意し、

を作成します。

環境

  • Vault 0.10.3
続きを読む

SSL/TLS周りで必要な知識

概要

SSL/TLSでは

など色々なファイルや用語があり、混乱しやすいのでまとめます。

認証局(CA)について

ルートCA

認証局です。
この認証局が発行するルート証明書は自身が署名します。
いわゆるオレオレ証明書になります。
一般的には社会的に信用された企業がルート認証局となります。
ブラウザなどTLSのクライアントサイドは一般的なルート証明書をデフォルトで持っています

続きを読む

HashiCorp VaultのTransit secret engineでデータを暗号化・復号する

概要

HashiCorp VaultにはTransit Secrets Engineという、暗号化・復号をしてくれる機能があります。 このTransit Secrets EngineはKey/Valueのように暗号化データを保存することはなく、暗号化するための暗号化キーを保存&バージョン管理します。
また複数の機能を持っており、AWS KMSのようなデータキーを生成する機能もあります。
今回はこれの使い方を紹介します。

環境

  • Vault 0.10.3

基本的な使い方

暗号化キーの生成

まずはtransitを有効化します。

$ vault secrets enable transit
Success! Enabled the transit secrets engine at: transit/
続きを読む

GoでVaultを操作

概要

これまで紹介したHashiCorp Vaultの使い方はCLIを使うのがメインでしたが、実際はアプリケーション内で秘密情報を扱うケースが多々あります。
VaultはGoのライブラリを提供しているので、様々なログイン方法を紹介しつつ秘密情報にアクセスしてみます。

環境

CLIから秘密情報を登録する

あらかじめKey/Valueに秘密情報を登録しておきます。

$ vault kv put secret/my-secret my-value=s3cr3t
Key              Value
---              -----
created_time     2018-07-13T15:01:30.440745605Z
deletion_time    n/a
destroyed        false
version          2
続きを読む

IAMユーザを持っていたらVaultにログインできるようにする

概要

HashiCorp Vaultのデフォルトのログインはトークンですが、これだと漏れた時など管理しにくいのでAWSのIAMユーザ情報を元にログインできるようにします。

前提

ログインするメンバーはAWSのIAMユーザを持つ

環境

  • Vault 0.10.3
続きを読む