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




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

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


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

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


Go言語でCLIを楽しく!Bubble Tea入門

やぁ、ソフトウェアエンジニアの皆さん!今日は、Go言語を使ったCLI開発を劇的に楽しくしてくれるフレームワーク「Bubble Tea」について、飲み比べコント風にご紹介しますね。このお酒、見た目は素朴な「ターミナル画面」なんだけど、一口飲むと「わ、これすごい!」ってなるんですよ。


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

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


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

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


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

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


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

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


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

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


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

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


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

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