跨服务混淆代理问题防范 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

跨服务混淆代理问题防范

混淆代理问题是一个安全性问题,即不具有操作执行权限的实体可能会迫使具有更高权限的实体执行该操作。在 Amazon 中,跨服务模拟可能会导致混淆代理问题。一个服务(呼叫服务) 调用另一项服务(所谓的服务)时,可能会发生跨服务模拟。可以操纵调用服务,通过调用服务使用其权限对另一个客户的资源进行操作,否则该服务不应有访问权限。为了防止这种情况,Amazon 提供可帮助您保护所有服务的服务委托人数据的工具,这些服务委托人有权限访问账户中的资源。

混淆代理安全问题会影响 Amazon IoT Device Defender 从您处访问的三种资源:运行审计、发送安全配置文件违规事件的 SNS 通知以及运行缓解操作。对于其中每个操作,aws:SourceArn 的值必须如下所示:

  • 对于在 UpdateAccountAuditConfiguration API 中传递的资源(RoleArn 和 notificationTarget RoleArn 属性),应将 aws:SourceArn 作为 arn:arnPartition:iot:region:accountId: 来缩小资源策略的范围。

  • 对于在 CreateMitigationAction API 中传递的资源(RoleArn 属性),应将 aws:SourceArn 作为 arn:arnPartition:iot:region:accountId:mitigationaction/mitigationActionName 来缩小资源策略的范围。

  • 对于在 CreateSecurityProfile API 中传递的资源(alertTargets 属性),应将 aws:SourceArn 作为 arn:arnPartition:iot:region:accountId:securityprofile/securityprofileName 来缩小资源策略的范围。

防范混淆代理问题最有效的方法是使用 aws:SourceArn 全局条件上下文键和资源的完整 ARN。如果不知道资源的完整 ARN,或者正在指定多个资源,请针对 ARN 未知部分使用带有通配符 (*) 的 aws:SourceArn 全局上下文条件键。例如:arn:aws:servicename:*:123456789012:*

以下示例演示如何使用 Amazon IoT Device Defender 中的 aws:SourceArnaws:SourceAccount 全局条件上下文键来防范混淆代理问题。

{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:iot:*:123456789012::*" }, "StringEquals": { "aws:SourceAccount": "123456789012:" } } } }