Carpe Diem

備忘録

HashiCorp VaultのAppRoleを使ってトークン取得

概要

HashiCorp Vaultではトークンを取得するための様々な認証方法がありますが、その中でアプリケーションに向いたAppRoleという認証方法があります。

f:id:quoll00:20180803184031p:plain

ref: AppRole Pull Authentication | Vault - HashiCorp Learn

この図ではRole IDSecret IDというID & Password的な認証方法ですが、他にも特定のIP Rangeのアクセスの時のみトークンを発行するといった設定もでき、アプリケーションのPrivate IPの範囲を指定すれば外部からはトークンは発行できず、アプリケーションのみ発行できるということが実現できます。

続きを読む

SSHのCA認証で Certificate lacks principal list

背景

christina04.hatenablog.com

を元に本番環境を用意していたところ、ubuntuで作ったインスタンスsshできるもののAmazon Linuxで作られたec2-userインスタンスsshできない現象に遭遇しました。
sshのログを調べるために

# /etc/ssh/sshd_config
# ...
LogLevel VERBOSE

と設定して再起動し、

$ tail -f /var/log/auth.log | grep --line-buffered "sshd"

でtailしながら再度アクセスを試みると

error: key_cert_check_authority: invalid certificate
error: Certificate lacks principal list

というエラーが発生していました。

続きを読む

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/
続きを読む