

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

# 跨服务混淆了副手预防 HealthImaging
<a name="cross-service-confused-deputy-prevention"></a>

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

我们建议在您的 `ImportJobDataAccessRole` IAM 角色信任关系策略中使用[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)和[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)全局条件上下文密钥来限制 AWS HealthImaging 为您的资源提供其他服务的权限。使用 `aws:SourceArn` 来仅将一个资源与跨服务访问相关联。使用 `aws:SourceAccount` 来让该账户中的任何资源与跨服务使用相关联。如果您同时使用两个全局条件上下文密钥，则在同一策略语句中使用 `aws:SourceAccount` 值和 `aws:SourceArn` 值中引用的账户时，必须使用相同的账户 ID。

的值`aws:SourceArn`必须是受影响数据存储的 ARN。如果您不知道数据存储的完整 ARN，或者要指定多个数据存储，请使用带有\$1 通配符的`aws:SourceArn`全局上下文条件键来表示 ARN 的未知部分。例如，您可以将 `aws:SourceArn` 设置为 `arn:aws:medical-imaging:us-west-2:111122223333:datastore/*`。

在以下信任策略示例中，我们使用`aws:SourceArn`和`aws:SourceAccount`条件键根据数据存储的 ARN 限制对服务主体的访问，以防止出现混淆的代理问题。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "medical-imaging.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:medical-imaging:us-east-1:123456789012:datastore/*"
        },
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        }
      }
    }
  ]
}
```

------