

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 混淆代理问题防范
<a name="Subscriptions-confused-deputy"></a>

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

我们建议在资源策略中使用 [https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)、[https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)、[https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceorgid](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceorgid) 和 [https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceorgpaths](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceorgpaths) 全局条件上下文键，以限制为其他服务提供的资源访问权限。使用 `aws:SourceArn` 来仅将一个资源与跨服务访问相关联。使用 `aws:SourceAccount` 来让该账户中的任何资源与跨服务使用相关联。使用 `aws:SourceOrgID` 来允许某组织内的任何账户中的任何资源与跨服务使用相关联。使用 `aws:SourceOrgPaths` 来将 Amazon Organizations 路径内账户中的任何资源与跨服务使用相关联。有关使用和理解路径的更多信息，请参阅[了解 Amazon Organizations 实体路径](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_policies_last-accessed-view-data-orgs.html#access_policies_last-accessed-viewing-orgs-entity-path)。

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

如果 `aws:SourceArn` 值不包含账户 ID，例如 Amazon S3 桶 ARN，您必须使用 `aws:SourceAccount` 和 `aws:SourceArn` 来限制权限。

要防范大规模混淆代理问题，请在基于资源的策略中将 `aws:SourceOrgID` 或 `aws:SourceOrgPaths` 全局条件上下文键与资源的组织 ID 或组织路径一起使用。包含 `aws:SourceOrgID` 或 `aws:SourceOrgPaths` 键的策略将自动包含正确的账户，并且当您在组织中添加、删除或移动账户时，无需手动更新策略。

记录的策略用于授予访问 CloudWatch 日志的权限，以便将数据写入 Amazon Kinesis Data Streams 和 Firehose[步骤 1：创建目标](CreateDestination.md)，[步骤 2：创建目标](CreateFirehoseStreamDestination.md)并显示如何使用`aws:SourceArn`全局条件上下文密钥来帮助防止混乱的副手问题。