0Pricing
Cloud & IT Cert Prep · 课时

外部 ID 与困惑代理问题

防止第三方受骗而滥用访问权限。

外部 ID 与困惑代理问题 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。

一个微妙的信任问题

当您允许第三方在您的账户中担任角色时,可能会出现一种称为混淆代理问题的安全风险。外部 ID 是防止该问题的简单但至关重要的控制措施。只要 SaaS 供应商需要访问您的 AWS 账户,考试中就可能考查这种模式。

什么是混淆代理

混淆代理是指一个受信任的实体(代理)被欺骗,代表攻击者使用自身权限。在 AWS 中,第三方服务可能有权在许多客户账户中担任角色;如果没有任何机制将请求与合法的客户关系绑定,攻击者就可能诱骗该服务担任您的角色。

供应商场景

设想一个监控 SaaS,它会在每个客户账户中担任一个角色。该 SaaS 为所有客户使用同一个 AWS 身份。如果攻击者同时也是某位客户,并猜出了您的角色 ARN,就可能说服该 SaaS 担任您的角色,因为 SaaS 是受信任的委托主体。仅凭账户 ID 不足以阻止这种情况。

加入外部 ID

外部 ID 是供应商为您与其之间的关系分配的唯一值和机密值。您需要将它作为条件写入角色的信任策略,而供应商在调用 AssumeRole 时必须提供完全相同的值。由于攻击者不知道您的外部 ID,因此无法诱骗供应商担任您的角色。

包含外部 ID 的信任策略

此信任策略要求匹配的外部 ID。只有当供应商传入完全相同的值时,AssumeRole 才会成功,从而挫败混淆代理攻击。

"Condition": {
  "StringEquals": {
    "sts:ExternalId": "unique-customer-12345"
  }
}

谁设置外部 ID

关键在于,外部 ID 由供应商生成并控制,而不是由客户控制。这可以防止客户串通并重复使用同一个值。AWS 的指导非常明确:作为第三方,您必须为每位客户分配唯一的外部 ID,并在每次担任角色时都要求提供该 ID。

不是秘密密码

外部 ID 并不是要像密码一样保密;它可以出现在设置说明中。它的安全价值来自每位客户各不相同且由供应商控制,这样攻击者就无法让代理使用其他客户的值。请将它视为防冒用令牌,而不是凭证。

与最小权限相结合

外部 ID 控制谁可以担任角色,但您仍需使用严格的权限策略来限定角色可以执行哪些操作。即使供应商已通过正确授权,也只能授予其完成任务所需的最低权限。将外部 ID、特定委托主体和最小权限结合起来,才能安全地实现第三方访问。

超越供应商场景

混淆代理模式同样适用于代表您执行操作的 AWS 服务。服务到服务的信任关系通常会在资源策略中使用 aws:SourceArn 和 aws:SourceAccount 等条件键,以确保调用服务是在代表您的资源执行操作;只是包装形式不同,但防御思路相同。

识别考试提示

每当题目描述第三方或 SaaS跨账户担任角色时,安全答案几乎总会涉及信任策略中的外部 ID。如果场景是服务到服务的调用,则应改为查找 aws:SourceArn/aws:SourceAccount 条件。识别出这一提示后,您就能直接找到正确的控制措施。

综合运用

混淆代理问题会让攻击者诱骗受信任的第三方滥用其访问权限。通过要求 AssumeRole 提供匹配的值,按客户设置唯一且由供应商控制的外部 ID可以防止这一问题。对于 AWS 服务,请使用 aws:SourceArn 和 aws:SourceAccount。始终将这些措施与最小权限结合使用。

快速检查

测试您对混淆代理概念的理解。

回顾

当受信任的第三方被诱骗而滥用其跨账户访问权限时,就会出现混淆代理问题。按客户设置唯一且由供应商控制的外部 ID,可以通过信任策略中针对 sts:ExternalId 的条件来防止该问题。对于 AWS 服务到服务的信任关系,请使用 aws:SourceArn 和 aws:SourceAccount,并始终遵循最小权限原则。

常见问题解答

「外部 ID 与困惑代理问题」课时是免费的吗?

是的 — 「外部 ID 与困惑代理问题」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。

「外部 ID 与困惑代理问题」这节课中我会学到什么?

防止第三方受骗而滥用访问权限。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cloud & IT Cert Prep 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「外部 ID 与困惑代理问题」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?

能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. STS 如何签发临时凭证
  2. AssumeRole 与会话生命周期
  3. 外部 ID 与困惑代理问题
  4. 会话策略与基于标签的范围限定
← 返回 Cloud & IT Cert Prep