Skip to content

Commit f04cc26

Browse files
aster-voidclaude
andcommitted
docs: expand SOPS guide with full usage instructions
Closes #7 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 953bc48 commit f04cc26

File tree

1 file changed

+65
-12
lines changed

1 file changed

+65
-12
lines changed

docs/sops.md

Lines changed: 65 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,90 @@
1-
# SOPS セットアップ
1+
# SOPS ガイド
22

3-
環境変数を暗号化して Git に安全にコミットする
3+
環境変数を [age](https://github.com/FiloSottile/age) で暗号化し、Git に安全にコミットする仕組み
44

5-
## 初回セットアップ
5+
## 初回セットアップ (自分の鍵を作る)
6+
7+
### age 鍵を生成
68

79
```bash
8-
# 1. 鍵を作成(公開鍵が表示される → コピー)
910
age-keygen -o .age-key
11+
# Public key: age1xxxx... ← この公開鍵をコピー
12+
```
13+
14+
`.age-key``.gitignore` 済み。ローカル復号に使う。
15+
16+
### SSH 鍵を使う場合
1017

11-
# 2. .sops.yaml に公開鍵を追加してコミット
18+
age 鍵の代わりに既存の SSH 鍵 (Ed25519/RSA) も使える。
19+
20+
```bash
21+
# SSH 公開鍵から age 公開鍵を導出
22+
age-keygen -y /path/to/ssh/id_ed25519
23+
# age1xxxx...
1224
```
1325

14-
## 環境変数ファイルを作成
26+
復号時は `SOPS_AGE_KEY_FILE` の代わりに ssh-agent が使われる。
27+
`.sops.yaml` には導出した age 公開鍵を登録する (手順は同じ)。
28+
29+
## 公開鍵を `.sops.yaml` に追加
30+
31+
```yaml
32+
_:
33+
age-public-keys:
34+
- &deploy age15uc7fh... # サーバー
35+
- &your-name age1xxxx... # ← 追加
36+
37+
creation_rules:
38+
- path_regex: bots/my-bot/*
39+
age:
40+
- *deploy
41+
- *your-name # ← 復号できる人を列挙
42+
```
43+
44+
変更をコミット・プッシュしたら、既存の暗号化ファイルにリキーが必要 (後述)。
45+
46+
## 暗号化ファイルを作成
1547

1648
```bash
1749
sops bots/my-bot/sops.env
1850
```
1951

20-
エディタで環境変数を書いて保存。
52+
エディタが開くので `KEY=VALUE` 形式で書いて保存。自動で暗号化される。
53+
54+
## 暗号化ファイルを編集
55+
56+
```bash
57+
sops bots/my-bot/sops.env
58+
```
59+
60+
作成と同じコマンド。既存ファイルならエディタで復号された状態が開き、保存時に再暗号化される。
2161

2262
## Bot で使う
2363

24-
`run.sh`:
64+
`run.sh``sops exec-env` を使う:
2565

2666
```bash
2767
#!/bin/bash
2868
sops exec-env sops.env 'bun run index.ts'
2969
```
3070

31-
## その他のコマンド
71+
環境変数として復号された値がプロセスに渡される。ファイルに平文は残らない。
72+
73+
## リキー (鍵の追加・削除を既存ファイルに反映)
74+
75+
`.sops.yaml` を変更しただけでは既存ファイルには反映されない。`updatekeys` で反映する:
76+
77+
```bash
78+
sops updatekeys bots/my-bot/sops.env
79+
```
80+
81+
変更された `sops.env` をコミットする。
82+
83+
## よく使うコマンド
3284

3385
```bash
34-
sops -d sops.env # 復号して表示
35-
sops updatekeys sops.env # .sops.yaml の変更を反映
36-
age-keygen -y .age-key # 公開鍵を表示
86+
sops bots/my-bot/sops.env # 作成 or 編集
87+
sops -d bots/my-bot/sops.env # 復号して stdout に表示
88+
sops updatekeys bots/my-bot/sops.env # .sops.yaml の変更を反映
89+
age-keygen -y .age-key # 自分の公開鍵を表示
3790
```

0 commit comments

Comments
 (0)