「パスワードの付箋はもう卒業!」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




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

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


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

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


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

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


【動かぬ証拠】Goで組む、信頼できるAIエージェント:adk-goの導入と実践

google/adk-goは、Googleが提供するオープンソースのGo言語(Golang)用ツールキットで、複雑なAIエージェントを構築、評価、デプロイするために、「コードファースト」のアプローチを取っているのが特徴です。これは、あなたがより柔軟性とコントロールを持ってAIのロジックを設計し、インフラストラクチャとしてではなく、純粋なソフトウェアコンポーネントとして扱えるようにするためのものです。


コード量削減!オールインワン開発環境で実現する高効率AI開発

「おーい、兄ちゃん!アンタ、ソフトウェアエンジニアなんだろ?最近流行りのナウい開発ツールがあるんだ。名前は使わないが、この『開発スタジオ』ってやつ、これがまた、うちのラーメンの味見みたいに、手間なくササッとAIエージェントを作れちまうって話でな!」


MinIO入門:ソフトウェアエンジニアのためのS3互換オブジェクトストレージ徹底解説

今日はね、ソフトウェアエンジニアの皆さんの強い味方になってくれる、とっても素敵なツールをご紹介するわね!その名も、MinIO!MinIOはね、簡単に言うと「S3互換の高性能なオブジェクトストレージ」なの。「S3互換って何?」って思った人もいるかしら?S3っていうのは、Amazon Web Services (AWS) が提供している、すごく有名で信頼性の高いストレージサービスのこと。MinIOは、このS3と同じように使えるように作られているから、AWS S3を使っていた人も、すごくスムーズに乗り換えたり、併用したりできるのが大きな魅力なのよ。


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

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


【脱Electron】Go製TUIクライアント「Discordo」が開発環境を最適化する理由

Discordoは、Discordのクライアントをターミナル上(TUI Terminal User Interface)で動作させるための軽量かつセキュアなソフトウェアです。言語・環境 Go言語 (Golang) で書かれており、Linux環境での利用が想定されています。


オブザーバビリティの玄関口!DataDog Agentを使ったGoアプリのメトリクス送信サンプルコード

[go, monitoring, metrics]というヒントがありますが、DataDog Agentの主な役割はズバリ何でしょう?正解は… B!DataDog Agentは、サーバー、コンテナ、アプリケーションの環境にインストールされ、そこからメトリクス(性能指標)、トレース(リクエストの流れ)、ログといったあらゆるデータを収集し、DataDogプラットフォームに送信する監視の「玄関口」となるソフトウェアです。ソフトウェアエンジニアにとっては、「自分のコードが本番環境でどう動いているか」を知るための目であり耳となります。


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

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