mcpField
A
aws-fault-injection-service

aws-fault-injection-service

github.com/aws测试与质量3.3k1.1k 次安装1 天前更新
代码仓库

关于 aws-fault-injection-service

面向使用 AWS Fault Injection Service 开展韧性实验的团队领域技能,支持规划、创建和运行受控实验。它帮助选择故障注入操作、设置实验防护措施,并理解 FIS 概念与操作。

主要功能

  1. 01将故障场景映射到实验
  2. 02创建并运行实验模板
  3. 03配置目标与停止条件
  4. 04指导监控和实验生命周期
  5. 05说明 FIS 概念与安全

适用场景

  1. 01为故障模式选择实验
  2. 02在预生产环境测试韧性
  3. 03创建限制影响范围的故障注入

MCP 相关

推荐使用 AWS MCP 服务调用 AWS API,也支持 AWS CLI。README 提及其提供沙盒执行和审计日志。

安装

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

$npx skills add https://github.com/aws/agent-toolkit-for-aws --skill aws-fault-injection-service

安装后在 Claude Code 中输入/aws-fault-injection-service确认已加载。

包含的文件

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

references/
fis-actions-reference.md
fis-api-reference.md
fis-concepts.md
fis-security.md
fis-workflow.md

详细介绍

AWS Fault Injection Service(FIS)实验

概述

AWS Fault Injection Service(AWS FIS)的领域专业知识——这是一项托管式混沌工程服务,可在真实 AWS 资源上运行受控故障注入实验,让你观察应用如何响应中断并提升其韧性。

此技能可让 Agent 完成三项工作:

  1. 推荐合适的实验 — 将用户的故障场景或韧性问题映射到正确的 FIS 操作、场景或实验设计,并说明其中的权衡。
  2. 构建并运行实验 — 编写实验模板(操作、目标、停止条件、日志记录、报告),配置实验 IAM 角色,并通过 CLI、SDK 或 CloudFormation 推进运行、监控和停止的生命周期。
  3. 向用户提供信息 — 解答有关 FIS 术语、安全性、定价、支持的服务,以及 FIS 如何融入韧性计划的概念性问题。

AWS FIS 会对真实 AWS 资源执行真实操作。 在生产环境中运行任何实验之前,请做好规划,先在预生产环境中运行,并始终通过停止条件限制影响范围。请将故障注入视为一项权限较高且可能造成中断的操作。

推荐使用 AWS MCP 服务执行此技能所需的 AWS API 调用——它提供沙箱化执行和审计日志记录,但并非必需;所有操作也都可以直接通过 AWS CLI(aws fis ...)完成。

防护措施 — 此技能自身文件的位置(MCP 与本地安装)

读取参考文件之前,请先确定此技能的加载方式:

  • 通过 AWS MCP retrieve_skill 工具加载: 此技能的参考文件不在本地文件系统中。请通过 retrieve_skill 并使用 file 参数获取每个文件(例如 file="references/fis-concepts.md")——不要在本地对这些路径使用 file_read,也不要搜索文件系统来查找这些文件。
  • 本地安装(例如 .kiro/skills/aws-fault-injection-service/ 或 ~/.claude/skills/aws-fault-injection-service/):使用此处显示的相对路径,从本地技能目录读取参考文件。

此规则仅适用于此技能自身的参考文件;始终在工作目录中读写用户或会话数据,切勿通过 retrieve_skill 处理。

从这里开始 — 判断请求类型

  • “什么是 FIS / 我什么时候该使用它 / X 术语是什么意思 / 它支持 Y 吗?” → 阅读 references/fis-concepts.md。
  • “我应该运行什么实验或操作来测试某种故障模式?” → 阅读 references/fis-actions-reference.md(操作选择指南和完整目录),并推荐相应操作或场景。
  • “构建 / 创建 / 运行实验”(模板、目标、停止条件、日志记录、报告、场景、多账户、监控)→ 严格遵循 references/fis-workflow.md。
  • 任何 AWS CLI 或 FIS API 命令 → 首先查阅 references/fis-api-reference.md——这是操作和参数的权威参考,其中包含拒绝错误臆造的对照表。
  • IAM 角色、权限、信任策略、混淆代理问题、影响范围安全性 → 阅读 references/fis-security.md。

API 参考(生成任何 AWS CLI 命令前请先阅读)

aws fis 的准确操作名称和模板参数记录在 references/fis-api-reference.md 中,其中还包含将常见错误 API/操作名称映射到正确名称的表格。生成命令前务必查阅此参考。 操作 ID 和资源类型会不断变化——请通过 aws fis list-actions 和 aws fis get-action --id <action-id> 进行验证,不要依赖记忆。

建议实验(行为约定)

当用户描述的是想要测试的故障,而不是想要运行的命令时:

  1. 确定故障模式(可用区故障、区域隔离、API 错误/限流、计算/数据库/缓存丢失、延迟、丢包、资源耗尽)。
  2. 使用 references/fis-actions-reference.md 中的选择映射,将其对应到某个场景(适用时优先选择——预构建且由 AWS 提供)或特定操作。
  3. 说明目标(资源类型及其范围界定方式)和停止条件(针对稳态指标的 CloudWatch 警报),以限制影响范围。
  4. 建议先在预生产环境运行,再按照变更管理流程在生产环境运行。
  5. 提出生成实验模板,然后按照 references/fis-workflow.md 操作。

不要臆造操作 ID、资源类型或参数。如不确定,请说明情况,并通过 aws fis list-actions / aws fis get-action 或 FIS 文档进行核实。

故障排查

“实验立即失败/未找到目标”

FIS 会在实验开始时解析所有目标;如果目标解析出的资源数为 0,实验就会失败(除非 emptyTargetResolutionMode 为 skip)。请检查标签、筛选条件、区域和账户。运行前请使用目标预览(参见工作流参考)。

“操作因权限错误而失败”

FIS 实验 IAM 角色缺少调用底层服务 API(或 SSM)所需的权限,或者混淆代理信任条件阻止了角色代入。请参阅 references/fis-security.md。

“实验意外停止”

停止条件(CloudWatch 警报)可能已触发——这说明防护措施正在发挥作用。请检查实验的 state.reason 和警报历史记录。已停止的实验无法恢复;请从模板启动新实验。

“EBS 或网络故障操作出现 Nitro/实例类型错误”

某些操作需要基于 Nitro 的实例或 SSM Agent。请根据 references/fis-actions-reference.md 核实每项操作的前置条件。

可观测性配套技能

对于支持 FIS 停止条件和实验报告的 CloudWatch 警报、控制面板和指标,建议使用 AWS Observability 技能来设置警报和控制面板——本技能的指导应仅说明这些信号如何用于保障实验安全和开展实验后分析。

安全注意事项

FIS 会执行真实且可能造成破坏的操作。要点如下(完整指南请参阅 references/fis-security.md):

  • 最小权限: 将实验角色的权限范围限制为每个实验所需的操作和目标 ARN——绝不要使用 *。同时限制获准调用 fis:StartExperiment 的人员/CI 主体。
  • 混淆代理防护: 实验角色的信任策略必须包含 aws:SourceAccount 和 aws:SourceArn 条件(范围限定为实验 ARN 模式)。
  • 限制影响范围: 始终附加 CloudWatch 警报停止条件;先从范围较小的目标(COUNT(1) / 较低的 PERCENT)开始,并先在预生产环境运行,再在生产环境运行。
  • 字符串字段中不得包含敏感数据: 实验/模板描述、标签和日志会显示在 CloudTrail、CloudWatch Logs、S3 报告和(多账户)目标账户 Health 控制面板中——切勿嵌入 PII、机密或敏感的架构细节。
  • 加密日志/报告: 实验日志和 PDF 报告会暴露弹性状况——请在 S3 存储桶上使用 SSE-KMS、强制启用 TLS,并考虑在报告存储桶上启用 S3 Object Lock。
  • 延伸阅读: FIS Security 和 AWS Well-Architected Reliability Pillar。

评论

支持 Markdown