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




脱クラウド!Nexa AI SDKを使ってローカル環境でLlama 3やGemmaを動かそう

ドラえもん「もう、のび太くんたら。そんなこともあろうかと……『NexaAI/nexa-sdk』〜!!(チャラララッチャラー)」のび太「なにこれ?四次元ポケットの最新道具?」ドラえもん「これはね、『ローカル環境』で最新のAIをサクサク動かすための魔法の道具だよ。普通、AIを動かすには高価なサーバーが必要だけど、これを使えば君のPCの GPU(画像処理) や NPU(AI専用チップ)、さらには普通の CPU までフル活用して、爆速でAIが動くんだ。」


「memos」こそがアタシたちの安息の地。オープンソースでプライバシーを守り抜く、セルフホストの嗜み

最近のメモアプリって、サブスクだの広告だの、余計なお世話が多いじゃない? これはそんなのとは無縁。あんたのデータはあんただけのもの。まさに「鉄壁の純愛」みたいなメモツールなのよ。それじゃあ、ママがエンジニア視点でたっぷり可愛がってあげるから、じっくり聞いていってね!


苦悩する司令官へ:Ginが解決するGoウェブ開発の課題

Ginは、Go言語でウェブアプリケーションやAPIを開発するための、非常に高速なフレームワークです。ちょうど、戦艦の主砲を最新鋭の超高速レールガンに換装するようなものです。なぜGinが強力な武器なのか? それは、Ginがパフォーマンスと使いやすさを両立しているからです。


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

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


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

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


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

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


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

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


【エンジニア向け】Infisicalで秘密情報も体重もスマートに管理!

ダイエット中のエンジニアさん、お疲れ様です!食事制限、運動、そしてコード. .. 毎日やることがいっぱいですよね。でも、ちょっと待ってください!あなたのコードの中にも、ひっそりと隠れている「秘密」はありませんか?そう、APIキーとかデータベースのパスワードとか


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

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


GOWA参上!WhatsApp自動化で開発効率を爆上げだ!

悪の組織に立ち向かう戦隊ヒーローのように、私たちソフトウェアエンジニアも日夜、様々な課題と戦っています。その中でも「WhatsAppの自動化」は、多くの人が直面する難題の一つでした。しかし、GOWAという強力な味方が現れました!GOWAは、Go言語で開発されたWhatsApp REST APIです。簡単に言うと、あなたのプログラムからWhatsAppを操作できるようにするツールですね。これまでのWhatsApp自動化は、ブラウザを操作したり、非公式なライブラリを使ったりと、不安定なものが多かったんです。でもGOWAは、公式のWhatsApp Webマルチデバイス機能に対応しているので、安定性が格段に向上しました!