

• Amazon Systems Manager CloudWatch 控制面板在 2026 年 4 月 30 日之后将不再可用。客户可以像现在一样继续使用 Amazon CloudWatch 控制台来查看、创建和管理其 Amazon CloudWatch 控制面板。有关更多信息，请参阅 [Amazon CloudWatch 控制面板文档](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

# 防止跨服务混淆代理
<a name="cross-service-confused-deputy-prevention"></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) 全局条件上下文键，进而限制 Amazon Systems Manager 为其他服务提供的资源访问权限。如果 `aws:SourceArn` 值不包含账户 ID，例如 S3 存储桶的 Amazon 资源名称（ARN），则您必须使用两个全局条件上下文键来限制权限。如果同时使用全局条件上下文密钥和包含账户 ID 的 `aws:SourceArn` 值，则 `aws:SourceAccount` 值和 `aws:SourceArn` 值中的账户在同一策略语句中使用时，必须使用相同的账户 ID。如果您只希望将一个资源与跨服务访问相关联，请使用 `aws:SourceArn`。如果您想允许该账户中的任何资源与跨服务使用操作相关联，请使用。`aws:SourceAccount`

以下几节提供 Amazon Systems Manager 工具的策略示例。

## 混合激活策略示例
<a name="cross-service-confused-deputy-prevention-hybrid"></a>

对于在[混合激活](activations.md)中使用的服务角色，`aws:SourceArn` 的值必须是 Amazon Web Services 账户 的 ARN。请务必指定您在其中创建混合激活的 ARN 中的 Amazon Web Services 区域。如果您不知道资源的完整 ARN，或正在指定多个资源，请针对 ARN 未知部分使用带有通配符 (`*`) 的 `aws:SourceArn` 全局上下文条件键。例如 `arn:aws:ssm:*:region:123456789012:*`。

以下示例演示了如何通过为自动化使用 `aws:SourceArn` 和 `aws:SourceAccount` 全局条件上下文键，以防止在美国东部（俄亥俄州）区域（us-east-2）出现混淆代理问题。

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

****  

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

------

## 资源数据同步策略示例
<a name="cross-service-confused-deputy-prevention-rds"></a>

利用 Systems Manager Inventory、Explorer 和 Compliance，您能够创建资源数据同步，将运营数据 (OpsData) 集中存储在 Amazon Simple Storage Service 中央存储桶中。如果希望使用 Amazon Key Management Service (Amazon KMS) 来加密资源数据同步，则必须创建包含以下策略的新键，或更新现有键并向其添加此策略。此策略中的 `aws:SourceArn` 和 `aws:SourceAccount` 条件键可防止混淆代理问题。以下为策略示例。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "ssm-access-policy",
    "Statement": [
        {
            "Sid": "ssm-access-policy-statement",
            "Action": [
                "kms:GenerateDataKey"
            ],
            "Effect": "Allow",
            "Principal": {
                "Service": "ssm.amazonaws.com"
            },
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/KMS_key_id",
            "Condition": {
                "StringLike": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:ssm:*:123456789012:role/aws-service-role/ssm.amazonaws.com/AWSServiceRoleForAmazonSSM"
                }
            }
        }
    ]
}
```

------

**注意**  
策略示例中的 ARN 让系统能够加密来自除 Amazon Security Hub CSPM 之外所有来源的 OpsData。如果您需要加密 Security Hub CSPM 数据，例如使用 Explorer 收集 Security Hub CSPM 数据，则必须附加指定以下 ARN 的额外策略：  
`"aws:SourceArn": "arn:aws:ssm:*:account-id:role/aws-service-role/opsdatasync.ssm.amazonaws.com/AWSServiceRoleForSystemsManagerOpsDataSync"` 