Gadget 08:目的別アクセス制御レシピ

Gatekeeper を「どの用途で使うか」に応じて設定テンプレ化するためのページ

目的別アクセス制御レシピ

同じ Gatekeeper でも「用途」によって接続範囲・権限を変えるべきです。 ここでは目的ごとのレシピ(テンプレ)を用意します。

目的

  • 「誰に・どのサービスへ・どの範囲で」を目的別にテンプレ化する
  • 最小権限(Least Privilege)を手軽に実践する

前提条件

レシピ一覧

レシピ A:個人検証(一人で試す)

項目 設定
利用者 開発者本人のみ
サービス 必要最小(例: GitHub のみ)
Scope repo:read のみ
監査 connected 確認で十分

レシピ B:チーム運用(複数人)

項目 設定
利用者 承認済みメンバー
サービス 必要に応じて限定追加
Scope 書き込み操作ごとに個別承認
監査 アクセスログ定期的レビュー

レシピ C:公開運用(外部ユーザー想定)

項目 設定
利用者 不特定多数(要認証)
サービス 外部連携は最小・原則読み取り
Scope 書き込みは個別申請制
監査 全アクセスをログ&通知(18
注意 ADMINS の既定 admin を必ず除去(11

手順(レシピを適用する)

  1. どのレシピかを決める(1ページで1目的)
  2. 連携先の OAuth アプリで Scope を絞る
  3. .dev.vars を当該用途用に揃える
  4. run-local 再起動 → connected 確認
  5. 「想定以上の権限を持たない」ことを確認項目に
Warning重要:既定 admin

初期構成では ADMINS=["admin"] が付いています。 チーム・公開運用にする場合は必ず外しましょう。詳しくは 11-security-hardening を参照。

よくある失敗

症状 原因 対処
想定より権限が広い Scope を広げたまま使い回し 目的ごとに OAuth アプリを分ける
誰かが書き込みできた 書込 Scope が常時有効 書き込みは申請制・短時間にする
意図しない人が見える ADMINS の既定値残存 外部公開前に admin 除去
監査が追えない ログ未保存 アクセスログを tarball/外部へ

確認

次に読む