「パスワードの付箋はもう卒業!」GoとVaultで作る、セキュリティ・クッキング


「パスワードの付箋はもう卒業!」GoとVaultで作る、セキュリティ・クッキング

hashicorp/vault

2026-01-30

今回の主役は、Hashicorp Vault。 「パスワードを付箋に書いてモニターに貼っちゃう」なんていう、おっちょこちょいなエンジニアの皆さん、必見です!

エンジニア界隈では、APIキーやデータベースのパスワードのことを「シークレット」と呼びます。これをコードの中に直接書く(ハードコードする)のは、まるでカレーの隠し味を街中の看板に掲示するようなもの!筒抜けです!

そこで、Vaultの出番。

秘密の保管庫(Secrets Management)
大事な鍵をガッチリガード。

暗号化の達人(Encryption as a Service)
データを暗号化して、万が一盗まれても読めなくします。

使い捨ての鍵(Dynamic Secrets)
必要な時だけ発行して、使い終わったら自動で消える魔法の鍵。

まずは、Vaultサーバーを立ち上げましょう。今日は手軽に「開発モード」で仕込みます。

お使いのパッケージマネージャーでサクッと。

brew install hashicorp/tap/vault
# ターミナルで「へいお待ち!」
vault server -dev

これで、http://127.0.0.1:8200 に保管庫ができました。

それでは、Go言語という「最新の調理器具」を使って、Vaultからパスワードを取り出してみましょう!

package main

import (
	"context"
	"fmt"
	"log"

	vault "github.com/hashicorp/vault/api"
)

func main() {
	// 1. Vaultクライアントの設定(キッチンの入り口)
	config := vault.DefaultConfig()
	config.Address = "http://127.0.0.1:8200"

	client, err := vault.NewClient(config)
	if err != nil {
		log.Fatalf("クライアントが作れないよ!: %v", err)
	}

	// 2. 認証トークンのセット(合言葉!)
	// ※開発モードのデフォルトトークンは "root" です
	client.SetToken("root")

	// 3. シークレットの読み込み(冷蔵庫から隠し味を取り出す)
	secret, err := client.KVv2("secret").Get(context.Background(), "my-recipe")
	if err != nil {
		log.Fatalf("レシピが見つからない!: %v", err)
	}

	// 4. データの中身を表示
	apiKey := secret.Data["api_key"]
	fmt.Printf("今日の隠し味(API Key)は... 【%s】 です!\n", apiKey)
}

「Vaultを使うと何が嬉しいの?」という声が聞こえてきますね。

「鍵どこだっけ?」がなくなる
バラバラな設定ファイルに書くのではなく、Vaultという「一箇所」で管理できるので、整理整頓が捗ります。

履歴が残る(監査ログ)
「誰がいつ、冷蔵庫(シークレット)を開けたか」が丸見え。つまみ食いは厳禁です!

自動で鍵を替える(ローテーション)
「3ヶ月に一度パスワードを変える」なんて面倒な作業も、Vaultなら自動化できます。

いかがでしたか?Vaultを使えば、あなたのシステムは三ツ星レストラン並みの安心感に包まれます。


hashicorp/vault




【爆速】autobrr/qui で実現する、qBittorrent 複数管理の極上体験

autobrr/qui を一言で表すなら、まさに「職人が注いだ、雑味のない生ビール」のようなツールです。余計なものを削ぎ落とし、必要な機能だけを最高速で提供してくれます。エンジニア的な視点で見ると、このツールがいかに洗練されているかが分かります。


【ママが解説】GitleaksでGitリポジトリの隠れた秘密をあばけ!

今日はね、ソフトウェアエンジニアのあなたにとって、とーっても大切なツール、「Gitleaks」について、ママが特別に分かりやすく、そして優しく教えてあげるわね。まず、Gitleaks(ギットリークス)って何かっていうとね、一言で言えば「Gitのリポジトリに隠れてる秘密を探し出す探偵さん」みたいなものよ。


脆弱性スキャンツールTrivy入門:開発者のためのセキュリティガイド

これから君たちに、素晴らしい才能を持つ役者を紹介する。その名はTrivyだ。 こいつは、映画のセットで言うところの、「セキュリティ監査の鬼」だ。 君たちが作った最高の作品(コードやコンテナ)に潜む、見えない危険を徹底的に見つけ出すんだ。 ただ見つけるだけじゃない。その危険がどこにあるのか、どうすれば直せるのか、的確に教えてくれる。 君たちの作品を、より安全に、より完璧なものにするために、こいつの演技指導は絶対に必要だ!


牛丼一筋の心意気で学ぶ、Go言語とgRPCによる高速RPC通信

一言でいうと、「Go言語でサクッとマイクロサービスを構築するための、うまい、早い、安いRPCフレームワーク」です。RPC(Remote Procedure Call)とは、ネットワーク越しに別々のプログラムの関数を呼び出す仕組みのこと。簡単に言えば、サーバーの機能(関数)を、クライアントからまるで自分のプログラム内の関数のように呼び出せるようにしてくれる技術です。


妹が教える!エンジニアのためのOllama活用術

ねえねえ、最近流行りの「Ollama」って知ってる?お兄ちゃんの好きそうな、めちゃくちゃ便利なツールなんだよ!Ollamaはね、お兄ちゃんのパソコンで、いろんなAIモデルを簡単に動かせるようにしてくれるすごーいツールなんだ!今までだと、AIモデルを使おうと思ったら、いろいろ難しそうな設定をしなきゃいけなかったり、パソコンの性能が足りなかったりしたんだけど、Ollamaを使えば、そんな心配はほとんどいらなくなるんだって!


もう悩まない! Go言語からRedisを使うためのベストパートナー「Redis Goクライアント」

そうですね、彼女がたくさんの水着の中から、どれが一番自分に似合うか、海辺で輝けるかを悩むように、私たちソフトウェアエンジニアも、たくさんのライブラリの中から、どのツールがプロジェクトに最適か、効率的に開発できるかを悩むことがあります。今回は、その悩みを解決してくれる頼もしい相棒の一つ、Redis Go clientについて、彼女の水着選びをサポートする優しい彼氏のように、分かりやすく丁寧に解説していきますね!


Dockerだけじゃない!Moby Projectで自作コンテナ環境を構築する

Moby Project ってのはな、一言で言うと「コンテナをベースにしたシステムを作るための、オープンソースのツールキット」だ。例えるなら、俺たちが事件現場で使う道具一式、例えば手錠とか懐中電灯とか、そういうのを全部まとめて提供してくれるようなもんだな。


メディアサーバーの決定版!bluenviron/mediamtxで君のプロジェクトにモジョを注入!

オースティン・パワーズだぜ!今回は君たちソフトウェアエンジニアの悩みを解決する、とびっきりクールなツールを紹介するぜ!その名も「bluenviron/mediamtx」!君たちのプロジェクトに、こう、なんていうか…「映像と音声のセクシーな魔法」をかけることができるんだ!この「mediamtx」は、まるで僕のモジョみたいに、あらゆる種類のメディアストリームを自由自在に操れる、まさに究極のメディアサーバー&プロキシなんだ!


ソフトウェアエンジニア必見!Cobraで実現するプロ級Go CLIツール

「コマンドの解析が面倒だ…」 「ヘルプメッセージをいちいち書くのが大変…」 「サブコマンドをうまく管理できない…」もう大丈夫です!そんな悩みとは今日でサヨナラ。 今回は、あなたの開発を劇的にラクにする、魔法のツール「Cobra」をご紹介します!


自動化の極み!Seanimeでアニメ管理をハックする:Goエンジニア視点の導入ガイド

簡単に言うと、「自分専用の最強アニメ・マンガ管理サーバー」 を作れるツールやね。エンジニア的な視点で「これ、役立つわ〜」ってポイントを3つに絞ってみたで。技術スタックが現代的で勉強になる バックエンドが Go、フロントエンドが React。この組み合わせはパフォーマンスもええし、コードの見通しもええから、ソースを追うだけでも勉強になるわ。