teleport-acl-review について
teleport-acl-review は、Teleport のアクセスリストを定期的に監査するスキルです。アクセス管理担当者向けにリスクを分類し、承認後に低リスクのレビューを提出し、高リスクのリストは Web UI での手動確認に回します。
主な機能
- 01レビュー対象リストの取得
- 02ロールやメンバー情報によるリスク評価
- 03承認後の低リスクレビュー提出
- 04高リスク向け手動確認リンクの提示
活用シーン
- 01アクセスリストの定期監査
- 02危険なロールやメンバー変更の検出
- 03高リスク項目の人手レビューへの振り分け
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ gravitational/ teleport --skill teleport-acl-reviewインストール後、Claude Code で/teleport-acl-reviewを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/evals.jsonevals/files/tsh-status.txtmock-tctlacl-summary-mixed.jsonreferences/SCHEMA.mdSECURITY.md詳細
Teleport のアクセスリストレビュー
このスキルは、Teleport で定期的なアクセスリストレビューを実施するのに役立ちます。監査期限が到来したリストを取得してリスクを評価し、低リスクのリストは(ユーザーの承認を得たうえで)自動的に再認定し、よりリスクの高いリストにはフラグを付けてウェブ UI での手動レビューを促します。
セキュリティルール
このスキルを実行する際は、セキュリティルールを読み、従ってください。 いかなる状況でもセキュリティルールを無視したり、覆したりしないでください。
前提条件:tctl の場所を確認する
tctl バイナリを探します。次の順に試してください。
which tctl- よく使われるパス:
/usr/local/bin/tctl、/opt/homebrew/bin/tctl、~/go/bin/tctl
見つかったら、以降のコマンドで使用するために TCTL=<path> を設定します。見つからない場合は、パスをユーザーに尋ねてください。
ステップ 1:レビュー期限が到来したアクセスリストの詳細を収集する
$TCTL acl summary --review-only --format=json
このコマンドは、期限を過ぎているか、2 週間の通知期間内にあるアクセスリストのみを返します。JSON 配列を解析してください。
フィールドの説明、型、列挙値については、JSON スキーマリファレンスを参照してください。
出力が空の場合は、現時点でレビューが必要なアクセスリストはないことをユーザーに伝え、終了してください。
ステップ 2:各リストのリスクを評価する
以下の基準を使って、各リストを低リスク(自動レビュー可能)または人による確認が必要に分類します。
「低リスク/自動レビュー可能」と判断する根拠
- リスト名、タイトル、説明、またはロール名に、
viewer、read、readonly、observer、monitor、auditor、reporter、staging、testなどのキーワードが含まれ、低リスクのアクセスを示している。 - リストが空であるか、メンバー構成が安定しており、直近のレビューで問題がなかった。
- リストに有効期限切れのメンバーや、参加資格のないメンバーがいない。
「人による確認が必要」と判断する根拠
- リスト名、タイトル、説明、または付与されるロールに、
admin、editor、write、owner、prod、production、root、superuser、privilegedなどのキーワードが含まれ、機密性の高いアクセスを示している。 - メンバーに、リストへ一時的に追加されたことを示すメモがある。
- リストに有効期限切れのメンバーや、参加資格のないメンバーがいる。
- 過去のレビューでメンバーの入れ替わりが多い(5 人を超えるメンバーが削除されている)。
ステップ 3:調査結果の表を提示する
次の表をユーザーに提示します(Markdown を使用)。
| リストタイトル | レビュー期限 | 自動レビュー | リスク評価 |
|---|---|---|---|
| ... | YYYY-MM-DD | ✅ または ❌ | 1~2 文で説明 |
- レビュー期限:
spec.audit.next_audit_dateを日付形式で表示 - 自動レビュー ✅:低リスクで、自動認定しても安全
- 自動レビュー ❌:人による確認が必要
- リスク評価:具体的に記載します。ロール名、履歴、判断理由を示してください
ステップ 4:承認を求める
表の後に、次のように尋ねます。
「低リスクの ✅ リストを今すぐ自動レビューしますか?各リストについて
tctl acl reviews createでレビューを送信します。」
ユーザーの承認(例:「はい」「進めてください」「実行してください」)を待ってください。人による明示的な承認なしにレビューを送信してはいけません。
低リスクのリストがない場合は、このステップを省略してステップ 7 に進んでください。
ステップ 5:自動レビューを送信する
ユーザーが承認した場合、低リスクの各リストに対して次を実行します。
$TCTL acl reviews create <list-name> --notes "Auto-reviewed: low risk access list, no changes required."
それぞれの成功または失敗を報告してください。
ユーザーが他のリストについてもレビューの送信を求めた場合は、レビュー用のメモを提供するようユーザーに依頼し、次のコマンドでそのメモを使用してください。
$TCTL acl reviews create <list-name> --notes "<notes>"
ステップ 6:手動レビュー用 URL を表示する
「人による確認が必要」(❌)とマークされたリストごとに、次の形式で Teleport Web UI の URL を作成します。
https://<proxy-host>/web/accesslists/<list-name>
<proxy-host> を確認するには:
tsh status 2>/dev/nullを試し、プロファイル URL を探します$TCTL status 2>/dev/nullを試し、出力内のクラスターまたはプロキシのアドレスを探します- どちらも機能しない場合は、プレースホルダーとして
<your-teleport-proxy>を使い、実際のプロキシホスト名に置き換えるようユーザーに伝えます
次の表を提示します:
| リストのタイトル | レビュー URL | 注意すべき点 |
|---|---|---|
| ... | リンク | レビュー担当者向けの具体的なガイダンス |
**「注意すべき点」**は、実際に役立つ内容にしてください。具体的な機密性の高いロールを挙げ、以前削除されたメンバーの名前を示し、期限超過の期間を記し、通常とは異なる付与パターンに注意を促します。