age 使い方まとめ: recipients でチームの秘密ファイルを暗号化し、秘密鍵で復号する
この記事は韓国語で執筆され、AIを用いて日本語に自動翻訳されました。
要約: age でチームの秘密ファイルを公開鍵(recipients)で暗号化し、秘密鍵で復号する方法を整理します。鍵の生成、recipients の管理、GPG との違い、メンバー変更時に再暗号化が必要な理由まで併せて説明します。

概要
age とは?
age は、ファイルを公開鍵(Recipient)ベースで簡単に暗号化・復号できるツールです。
生成されるファイルは通常 *.age として保存し、秘密鍵はローカルにのみ保管します。
age が解決する問題
- チームで機密設定ファイルを平文で共有せずに保存できます
- recipient(公開鍵)リストを知っていれば誰でも暗号化でき、秘密鍵を持つ人だけが復号できます
- 使い方がシンプルなので CI やスクリプトに組み込みやすいです
GPG との違い(概要)
- 鍵の配布・検索
- GPG: 鍵サーバーに公開鍵をアップロードして検索・検証する文化があります
- age: 鍵サーバーモデルは一般的ではなく、プロジェクト内の
recipients.txtのようなファイルで recipient を管理する場合が多いです
- 機能範囲
- GPG: 署名、Web of Trust、メール暗号化など機能が幅広いです
- age: ファイル暗号化に特化しています(シンプルさが利点)
- チーム運用
- age:
recipientsファイルにチームメンバーの公開鍵を追加・削除する方式が実務で直感的です
- age:
:lock: 秘密鍵ファイル(age-key)は絶対にリモートリポジトリにアップロードしないでください。必要な場合は CI Secret または別のシークレットストアを使用します。
インストール
macOS
1# Homebrew
2brew install age
Linux
1# RHEL/CentOS/Amazon Linux
2sudo yum install age
3
4# Debian/Ubuntu
5# sudo apt install age
6
7# Fedora
8# sudo dnf install age
9
10# Arch
11# sudo pacman -S age
Windows
1winget install FiloSottile.age
2# Chocolatey: choco install age
基本的な使い方の流れ
1) 鍵の生成(秘密鍵ファイルの作成)
できるだけユーザーディレクトリの配下に作成します。
1age-keygen -o ~/.config/age/key.txt
推奨保存場所の例
- macOS / Linux:
~/.config/age/key.txt - Windows:
%USERPROFILE%\.config\age\key.txt
2) 秘密鍵ファイルの権限設定(Linux/macOS 推奨)
1chmod 600 ~/.config/age/key.txt
3) 公開鍵(Recipient)の表示
1age-keygen -y ~/.config/age/key.txt
チーム共有方式(公開鍵を「登録」する概念)
age は通常、「鍵サーバーに登録」するのではなく、プロジェクト内に recipient リストファイルを置いて共有します。
:technologist: 実務の感覚ではこのように使います。
- チームメンバーはそれぞれの公開鍵を
recipientsファイルに追加します。- 誰かが秘密ファイルを暗号化する際、
recipientsにある公開鍵で暗号化します。すると recipients に含まれる人はそれぞれの秘密鍵で復号できます。- 最小権限の原則に従い、その秘密を読む必要がある人だけを recipients に含めます。
- recipients から誰かを削除しても、既存の
*.ageファイルはそのままなのでアクセスは自動的にブロックされません。recipients を修正した後、ファイルを再暗号化(re-encrypt)して反映します。- そのため、メンバーや鍵の変動が多い環境では再暗号化の作業が煩わしいという欠点があります。
recipients ファイルの例
例: .age/recipients.txt
- 1 行に公開鍵 1 つ
- 複数人なら複数行
1age1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2age1yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
暗号化の例(ファイルで recipient を指定)
1age -R .age/recipients.txt -o secrets.env.age secrets.env
復号の例(秘密鍵で復号)
1age -d -i ~/.config/age/key.txt -o secrets.env secrets.env.age
:white_check_mark: まとめ: 「自分の公開鍵をどこに登録する?」は、通常リポジトリの recipients ファイルに追加することで解決します。
関連記事
この記事はNotionで執筆され、Github Actionを通じてHugoに変換されました。
Copyright © plzhans. All Rights Reserved. | Powered by github.com/plzhans/hans-blog