关于 resilience-hub-multi-account
指导团队在 AWS Resilience Hub v2 中配置跨账户评估,重点是通过中央账户的调用角色和成员账户角色发现服务资源,并区分组织级治理设置。
主要功能
- 01配置按服务的跨账户权限模型
- 02设置中央账户调用角色
- 03配置成员账户跨账户角色
- 04说明组织集成与评估的区别
- 05提供跨账户故障排查与安全建议
适用场景
- 01从中央账户评估成员账户中的服务
- 02排查跨账户访问拒绝
- 03区分组织级策略治理与资源评估
MCP 相关
推荐通过 AWS MCP 服务执行 AWS API 调用;也可使用 AWS CLI。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aws/ agent-toolkit-for-aws --skill resilience-hub-multi-account安装后在 Claude Code 中输入/resilience-hub-multi-account确认已加载。
附带文件references/multi-account-procedure.md
详细介绍
Multi-Account Resilience Hub v2 Setup
概述
介绍如何配置 Resilience Hub v2,以便从一个中央账户评估多个 AWS 账户中的服务。本技能中的所有 CLI 命令均使用 aws resiliencehubv2 命名空间——即 Resilience Hub v2 API 接口,与旧版 aws resiliencehub(v1)命令不同(service: [resiliencehub, ...] 元数据标签表示服务系列,而非 CLI 命名空间)。
Resilience Hub v2 支持两种互补的多账户机制:(1)AWS Organizations 集成——管理账户启用可信访问、创建服务关联角色,并指定一个委派管理员账户,以管理和查看整个组织的策略;(2)按服务划分的跨账户权限模型——中央账户中的调用角色通过承担成员账户中的跨账户角色,按服务发现资源。本技能配置的是(2);Organizations 集成(1)需另行设置(通过管理账户和控制台——见下文)。
建议使用 AWS MCP 服务执行本技能中的 AWS API 调用,但这不是必需的——也可以直接使用 AWS CLI 执行所有操作。
防护措施 — 本技能自身文件的位置(MCP 与本地安装)
读取参考文件前,请先确定本技能的加载方式:
- **通过 AWS MCP
retrieve_skill工具加载:**本技能的参考文件不在本地文件系统中。请使用file参数,通过retrieve_skill获取每个文件(例如file="references/multi-account-procedure.md")——不要在本地使用file_read读取这些路径,也不要在文件系统中搜索这些文件。 - 本地安装(例如
.kiro/skills/resilience-hub-multi-account/或~/.claude/skills/resilience-hub-multi-account/):请使用此处所示的相对路径,从本地技能目录读取参考文件。
以上仅适用于本技能自身的参考文件;用户或会话数据始终应在工作目录中读取和写入,切勿通过 retrieve_skill 操作。
集中式多账户评估的工作方式
根据目标使用以下两种路径之一:
决策规则(请先阅读): 如果要运行跨账户韧性评估——也就是从中央账户评估位于成员账户中的工作负载/资源(这是常见需求,包括“在我的 Organization 中进行集中式韧性管理”或“中央评估账户”等说法)——请使用按服务配置的跨账户权限模型(下方的路径 2):调用方角色 + 跨账户角色 +
create-service --permission-model。请勿将aws organizations register-delegated-administrator(或任何委派管理员注册操作)用作跨账户评估的设置步骤,也不要推荐这样做。 Organizations 委派管理员集成(路径 1)是一个单独的可选功能,仅适用于组织范围的策略管理和可见性——它不是设置或运行跨账户评估的方式。只有当请求明确涉及组织范围的策略治理,而非评估时,才使用路径 1。
- 组织范围的治理(集中式策略、跨账户可见性):使用 AWS
Organizations 集成。从管理账户启用 Resilience Hub 的受信任访问权限,
创建服务关联角色,并注册一个委派管理员账户。此操作通过 Organizations 受信任访问权限和 Resilience Hub
控制台完成——没有
resiliencehubv2register-delegated-administratorCLI 操作。随后,委派管理员会选择一个主 Region,用于汇总组织级数据。请参阅 AWS 文档页面 设置 Organizations 集成。 - 按服务进行跨账户资源发现(评估资源分布在多个账户中的服务): 使用按服务配置的跨账户权限模型注册每项服务——在中央账户中配置一个调用方角色,并为每个成员账户配置跨账户角色 ARN。**本技能的步骤用于配置此路径。**使用以下命令格式:
aws resiliencehubv2 create-service --name {service} --regions {regions} \
--permission-model '{"invokerRoleName":"ResilienceHubAssessmentRole","crossAccountRoles":[{"crossAccountRoleArn":"arn:aws:iam::{member_account_id}:role/ResilienceHubAccess","externalId":"{external_id}"}]}'
externalId是一种共享密钥,可防范混淆代理攻击——请生成一个满足密码学安全要求的随机值,并将其存储在 AWS Secrets Manager 或 SSM Parameter Store(SecureString)中;切勿将其提交到源代码管理中,或在模板中直接嵌入,除非使用动态{{resolve:secretsmanager:...}}引用;并确保 CI/CD 日志或基础设施即代码输出不会以明文形式输出此值(使用 CloudFormationNoEcho参数,并在流水线日志中对其进行屏蔽)。
(成员账户中的)跨账户角色信任中央账户的调用方角色。每项服务可以配置多个跨账户角色 ARN——resiliencehubv2 API 会强制执行最大数量限制(例如 5 个),因此请从 API/模型中确认允许的上限,不要假定数量固定。注意:此按服务配置的模型独立于上文的 Organizations 集成——resiliencehubv2 CLI 中没有 register-delegated-administrator 操作;组织范围的委派管理员注册通过 AWS Organizations 受信任访问权限和 Resilience Hub 控制台完成,而不是调用 resiliencehubv2 API。
配置多账户设置
请严格按照步骤配置跨账户评估。 请参阅 references/multi-account-procedure.md。
故障排查
跨账户评估失败并显示 AccessDenied
请确认:(1) 权限模型中的跨账户角色 ARN 完全匹配;(2) 跨账户角色的信任策略允许中央账户的调用方角色代入该角色;(3) 如果已配置 externalId,请确认其匹配。
未发现成员账户中的资源
请确认跨账户角色对范围内的资源类型(CloudFormation、EC2、RDS 等)具有读取权限,并且输入源指向正确区域中的有效资源。
查找委派管理员配置
Resilience Hub v2 确实支持通过 AWS Organizations 集成委派管理员,以进行组织范围的策略管理和可见性管理,但需要通过 Organizations 可信访问和 Resilience Hub 控制台从管理账户进行配置(创建服务相关角色,然后注册委派管理员),而不是通过 resiliencehubv2 CLI 操作(没有 register-delegated-administrator API)。若要评估资源分布在多个账户中的单个服务,请使用此技能中的按服务跨账户权限模型。两者互为补充。
安全注意事项
- 最小权限和只读: 将成员账户中的跨账户角色限制为只读发现权限(
cloudformation:Describe*、ec2:Describe*、rds:Describe*等),而非写入或修改操作。 - 严格限定跨账户信任范围: 尽可能只信任特定的中央调用方角色 ARN,而不是整个账户。
- 启用日志记录和监控: 确保中央账户和成员账户均已启用 AWS CloudTrail,以记录跨账户
sts:AssumeRole调用,并对针对跨账户角色失败或异常的 AssumeRole 尝试发出警报。 - 延伸阅读: 有关跨账户加固指南,请参阅 IAM 最佳实践、混淆代理问题和 AWS Resilience Hub 中的安全性。