vault

A collection of 12 posts
Get data from Vault with Nomad task
vault

Get data from Vault with Nomad task

最近 Vault クラスターの作成と Nomad と Vault の統合を行いました。 Vault を HA モードで使うこのブログの SSL/TLS 証明書を Vault [https://www.vaultproject.io/] で管理しようと考えています。 * Let’s Encrypt のクライアントを Nomad ジョブとして実行し SSL 証明書を取得してみた [https://blog.lorentzca.me/run-letsencrypt-client-with-nomad-job/] 現在サーバーは 3 台でクラスターを組んでおり、 Nomad [https://www.nomadproject.io/…ゆるふわキャンパーLorentzcaNomad と Vault を統合する現在 Nomad [https://www.nomadproject.io/
3 min read
Integrate Nomad and Vault
nomad

Integrate Nomad and Vault

現在 Nomad と Consul を使用してこのブログを動かしています。 * nomad - ゆるふわキャンパー * consul - ゆるふわキャンパー 例えば DB のパスワード等の機密情報を Nomad のジョブで扱いたい場合があります。Nomad は環境変数から機密情報を取得することもできますが、Vault と連携することで Vault の暗号化された KVS から機密情報を取得することが可能になります。 * Vault Integration | Nomad by HashiCorp 今回、Nomad と Vault の統合を設定してみたのでメモします。 Nomad の設定 Nomad の設定としては以下のように vault スタンザを追加するだけです。 ※今回、簡単のため Vault 側で TLS の設定を無効にしていますが TLS を有効にしている場合は以下に証明書等の設定が追加されます。 vault { enabled
5 min read
Use Vault with HA mode
vault

Use Vault with HA mode

このブログの SSL/TLS 証明書を Vault で管理しようと考えています。 * Let's Encrypt のクライアントを Nomad ジョブとして実行し SSL 証明書を取得してみた 現在サーバーは 3 台でクラスターを組んでおり、 Nomad と Consul でアプリケーションを管理しています。ここに Vault を追加しました。 Vault の HA 構成 1 台で Vault を運用するのは心許ないので、 3 台でクラスターを組み可用性を高めてみます。Vault は high availability (HA) モードで動かすことができます。HA モードでの Vault はアクティブとスタンバイの状態があります。Vault クラスターは 1 台のアクティブノードと複数のスタンバイモードから構成されます。それぞれの役割は以下です。 * アクティブノード: 読み取りと書き取りの全てを処理する。
4 min read
Moved from Arukas to hyper.sh
arukas

Moved from Arukas to hyper.sh

Arukasのベータサービスが終了したので移住先を探さねばなりません。 * Arukas βサービス提供終了に関するお知らせ – Arukas そこで、少し前に会社のSlackでDockerマンが呟いてるのを見てオッとなったhyper.shを使ってみます。 * Hyper.sh - On-demand Container, Per-Second Billing hyper.shもArukasのようなContainer-as-a-Serviceで、特徴は通常のLinuxコンテナは同一ホスト上のカーネルから複数立ち上げるのに対し、hyper.shはコンテナ毎に独立したカーネル上で動かしている点です。これにより、セキュアなコンテナ環境の提供を可能にしているようです。 また、コンテナの利点である起動スピードを殺さないように特別なハイパーバイザが使われているようです。 * What is Hyper.sh | Hyper.sh User Guide あとはDockerボリュームを使えるのがありがたい(Arukasはβ版なのもありボリュームを使えなかった)。
5 min read
Add annotation to Mackerel when changed infrastructure with Terraform
terraform

Add annotation to Mackerel when changed infrastructure with Terraform

mackerelにグラフアノテーション機能が追加されました。 * グラフアノテーションをリリースしました! ほか - Mackerel ブログ #mackerelio * Mackerel API ドキュメント(v0) - Mackerel API ドキュメント (v0) グラフアノテーション機能とは先日のmackerelミートアップでも紹介があった通り、デプロイや何かしらの事象をmackerelのグラフ上で注釈することができる機能です。 * Mackerel Meetup #9 Tokyo #mackerelio 今回はterraformで特定のリソースに変更があった場合、それをグラフ上に表示させてみます。 まずは普通にAPIを叩いてみる 鬼のようなcurlを実行します。 できた。 Terraformと連携させる方法を考える 今回は例として、DigitalOceanのtagリソースに変更が加えられた場合、グラフに注釈を入れるようにしてみます。 「tagリソースに変更が加えられた場合何かを実行する」方法として、null_reso
4 min read
Read access key from Vault with Terraform
terraform

Read access key from Vault with Terraform

ここ最近terraformのvaultプロバイダについて試していました。 * terraformのvaultプロバイダを試す * terraformでvaultから値を取得する方法 * Solved Vault data source error その成果として、terraformで管理している個人サーバのアクセスキーをvaultで管理し、terraformで利用してみます。 これまで main.tfのあるディレクトリでdirenvを使い、アクセスキーを環境変数で設定していました。 export DIGITALOCEAN_TOKEN="XXXXXXXX" これから vaultにアクセスキーを格納し、terraformから呼び出すようにしました。 data "vault_generic_secret" "digitalocean" { path = "secret/digitalocean" } provider "digitalocean" { token = "${data.vault_generic_secret.digital
1 min read
Solved Vault data source error
terraform

Solved Vault data source error

terraformからvaultを使う際にうまくいかなかった問題が解決できたっぽいのでメモ。 * terraformのvaultプロバイダを試す これ。* Resource 'data.vault_generic_secret.test' does not have attribute 'data' for variable 'data.vault_generic_secret.test.data' vaultのバージョンを0.6.0から0.6.4に上げたら解消した! terraformのvaultプロバイダのコードを見るとvaultのapiライブラリをインポートして使っている。 * terraform/data_source_generic_secret.go at master · hashicorp/terraform · GitHub vault側のチェンジログを見ると、0.6.0から0.6.4の差分はだいぶ大きい。例えば0.6.1ではGo APIのための修正が入っていたりする(この修正はCLIとGo
1 min read
Get value from Vault with Terraform
vault

Get value from Vault with Terraform

この前terraformのvaultプロバイダを使おうとした所うまくいきませんでした。 * terraformのvaultプロバイダを試す そこで、もう少し単純なコードで書き直して検証してみたところ、うまくvaultから値を取ってこれたのでその方法をメモしておきます。 準備 MacでVaultを起動しておきます。検証なのでdevモードで起動します。起動したら、出力に出るRoot Tokenの値をメモしておきます。 brew install vault vault server -dev 環境変数に必要な値をセットしておきます。 export VAULT_ADDR="http://127.0.0.1:8200" export VAULT_TOKEN="Root Tokenの値" main.tfを書く こんなmain.tfを書きました。 * vaultにsecret/doというpathを作成し、token=XXXXXXXXというkey/valueをセットする * データソースにvaultを指定し、作成したpathからfetchできるよ
1 min read
Vault provider by Terraform v0.8
terraform

Vault provider by Terraform v0.8

terraform 0.8がリリースされました。 * Terraform 0.8 | HashiCorp 幾つかの新機能が追加さました!!!その中でVaultとの連携を試してみます。 が、うまく動きませんでした。orz できた。✨ → Read access key from Vault with Terraform やったところまで書く。 Vault providerが提供する2つの機能 vault providerが提供する機能は2つあります。 * terraformからvaultそのものを変更する機能(新しいkey/valueの追加とか) * vaultから機密情報をreadし、terraformで使う機能(シークレットキーを取得したりとか) 注意事項 vaultと連携することによって、より便利にterraformが使えるようになりましたが、それぞれ以下のようなセキュリティ上のトレードオフがあるのでよく考慮した上で導入すること。とのこと。 * vaultに変更を加える(機密情報の追加とか)場合は、terraformの設定ファイル内
4 min read
Deploy Docker images to Heroku
arukas

Deploy Docker images to Heroku

herokuに好きなコンテナデプロイ出来るようになったらしいので試した!! この記事を受けて試してみた 会社で遊んでた(定時後ですよ!)ので社内向けのqiita teamに書いたんだけどべつに機密でもないので個人ブログに移す! 先に結論 herokuはあくまでPaaSであり、CaaSではない! 確かに好きなコンテナプッシュできるが、 あくまでWebアプリケーションのデプロイ方法の1つとして提供された機能 であり、 なんでもかんでも動かせるわけではなさそうだった(dnsサーバー立てたりvault立てたりはできなそう。pushまではできるけど) ※ もし動かせたらすまん → 動いたw ↓ 結論を書いたものの… コメントでvault動いた報告 (´°̥̥̥̥̥̥̥̥ω°̥̥̥̥̥̥̥̥`) 感謝 (´°̥̥̥̥̥̥̥̥ω°̥̥̥̥̥̥̥̥`) CaaSじゃねーか!(怒) 以下(早とちりした)結論に至るまでの道のり 任意のコンテナをプッシュしてみる ほんとに任意のコンテナプッシュできるのか!?vault乗ったコンテナプッシ
4 min read
Using HashiCorp's Vault with Ansible
ansible

Using HashiCorp's Vault with Ansible

ansibleのプレイブック内にある機密情報(dbのパスワードとか)をVault by HashiCorpを使ってvaultの管理下に置いてみようと思う イメージ的には、今までプレイブックにこんな感じで平文で書かれていたものを、 password="1234abcd" こんな感じでプレイブック内に書かないようにしたい password="{{vaultからいい感じに取ってくる何か}}" 確かにこれでプレイブックには含まれなくなるけど、外部のデータストアに機密情報置くことになるけどそこは安全なのか問題がここで発生する でもvaultはそんな悩みを解決するためのツールだからいい感じに かつ安全に機密情報を管理してアプリケーションからいい感じに機密を使えるであろうことを激しく期待!禿北!! 準備 Ansible Lookup Plugin Lookup Pluginを使ってみる Lookup Pluginとは外部ソース(ローカルのファイルや外部のデータストア等)からansible内のデータへのアクセスを可能にしてくれるプラグイン機能 vau
1 min read
Vault on Arukas
docker

Vault on Arukas

Vaultをdockerで動かしてみた * GitHub - Lorentzca/vault_on_docker: use vault on docker * DockerHub - lorentzca/vault_on_docker これをプロダクションぽい感じで動かしたくって、herokuを使って見ようと思ったんだけど色々制約があり(というか好きに作ったコンテナを動かすのはherokuの使い方じゃない感じ)のでなんかないかな〜と思ったらArukas|Dockerホスティングサービスなるものが! まだβ版で恐らく今後は有料になりそうなプランもまだ無料で使える こんな感じ 簡単にコンテナを動かせるのでいい感じだった dockerhubにあるvaultのイメージを指定したりポートを指定したり。環境変数やコマンドも必要なら設定できる 立ち上がるとurlが発行される こんな感じでvaultが使えるようになる! $ curl -s -X PUT -d '{ "secret_shares": 6, "secret_threshold": 5
1 min read