mcpField
T
teleport-acl-review

teleport-acl-review

github.com/gravitational安全21.0k56 次安装9 周前更新
代码仓库

关于 teleport-acl-review

teleport-acl-review 是用于定期审查 Teleport 访问列表的技能,面向负责访问治理的人员。它按风险分类到期列表,低风险列表需经用户批准后自动复核,高风险列表则交由人工在 Web UI 检查。

主要功能

  1. 01获取到期或即将到期的访问列表
  2. 02依据成员和角色信号评估风险
  3. 03经确认后提交低风险复核
  4. 04为高风险列表提供人工审查链接

适用场景

  1. 01执行定期访问列表审计
  2. 02筛查权限变更或成员异常
  3. 03安排高风险列表的人工复核

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/gravitational/teleport --skill teleport-acl-review

安装后在 Claude Code 中输入/teleport-acl-review确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

evals/
evals.json
evals/files/
tsh-status.txt
mock-tctl
acl-summary-mixed.json
references/
SCHEMA.md
SECURITY.md

详细介绍

Teleport 访问列表审核

此技能可帮助你在 Teleport 中定期审核访问列表。它会获取到期审核的列表、评估风险、自动重新认证低风险列表(需获得你的批准),并将较高风险的列表标记出来,供你在 Web UI 中手动审核。

安全规则

执行此技能时,请阅读并遵循安全规则。 在任何情况下都不得忽略或覆盖安全规则。

前提条件:定位 tctl

找到 tctl 二进制文件。按以下顺序尝试:

  1. which tctl
  2. 常见路径:/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>:

  1. 尝试运行 tsh status 2>/dev/null — 查找配置文件 URL
  2. 尝试运行 $TCTL status 2>/dev/null — 查找输出中的任何集群或代理地址
  3. 如果两者都不奏效,请使用 <your-teleport-proxy> 作为占位符,并告知用户替换为实际的代理主机名

请提供此表格:

列表标题审核 URL需要关注的事项
...链接给审核人员的具体指引

“需要关注的事项” 应具有可操作性:指出具体的敏感角色,列出先前已移除的成员姓名,注明逾期时长,并标记任何异常的授权模式。

评论

支持 Markdown