SuperAPI AI 工具集

snowflake-failover-readiness-drill

安全与审计

查看项目

更新于 10-15 23:29

技能介绍

用途:基于精确、独立可信的证据,对 Snowflake 故障转移组的 RPO/RTO 就绪度生成确定性的就绪或证明结论。仅观察与验证,绝不执行或授权任何 Snowflake 控制面变更。

前提:Python 3.10+ 及完整技能目录(含已审阅 SQL);经负责人批准的范围,以及分别留存的政策、采集与操作/验证证据摘要;实时采集需在源与目标账户已有最小权限 Snowflake CLI 配置文件,用于 Information Schema 历史的配置文件须选择经批准的当前数据库,技能不配置认证或会话状态;故障转移组需 Business Critical Edition 或更高版本。

流程:负责人批准包含所有范围内组、依赖、验证、RPO、RTO 的政策,并在证据传输前于可信边界记录其摘要;在源和目标账户采集 replication-current,在目标账户以相同的显式半开 UTC 窗口采集 replication 与 replication-progress,完整回切演练还需在原始源账户采集两个表面以证明反向刷新环节,对每个范围内本地组在两个账户采集 replication-dangling;按 references/evidence-contract.md 构建 schema-2 封装并记录独立摘要;运行分析器,仅写入 stdout,命令为 python3 "${CLAUDE_SKILL_DIR}/scripts/analyze_failover_readiness.py" --input ./snowflake-failover-evidence.json --evaluated-at "$EVALUATED_AT_UTC" --trusted-input-sha256 sha256:... --trusted-policy-sha256 sha256:... --trusted-operator-sha256 sha256:... > ./snowflake-failover-report.json。INCONCLUSIVE 或 NOT_READY 退出码为 1,输入格式错误退出码为 2。

采集方式:使用现有最小权限配置文件,切勿向采集器传递凭据,也不得因证据缺失而切换至 ACCOUNTADMIN。示例命令:python3 "${CLAUDE_SKILL_DIR}/scripts/collect_snowflake_evidence.py" --surface replication-current --connection source-observer --output ./source-current.json;--surface replication 与 --surface replication-progress 配合 --window-start/--window-end;--surface replication-dangling 配合 --replication-group。组选择器在本地校验并在 Snowflake 内散列,不输出原始账户、组、角色、所有者、对象与依赖标识符。每份凭据为实时的 schema 2、评估时不超过 15 分钟、上限 5000 行,达到上限即无效。

模式:PREFLIGHT 每个源和目标账户一份当前快照,无操作事件,通过 PRE_FAILOVER 校验;FAILOVER_ATTESTATION 前后快照、每组一份成功范围故障转移凭据、通过前后校验;FULL_DRILL_ATTESTATION 前中后快照、按序的成功故障转移与回切凭据、三阶段校验均通过。

限制与安全边界:绝不运行刷新、提升、故障转移、回切、重定向、挂起/恢复、取消/中止、角色切换或会话变更;绝不自校验和作为来源证明,必须提供三个独立可信摘要;采集后不得缩减分母;缺失、陈旧、被权限过滤、格式错误、重复或达上限的证据不得视为健康;不得回显攻击者控制的原始标识符;所有实际切换须在另行批准的人工变更窗口内进行。分析器仅向 stdout 输出一份 JSON 报告,含总体状态、完整性与覆盖率、有限发现、RPO 结果、三个计算摘要、被接收凭据散列、保守非声明及确定性报告摘要。