

支援終止通知：2026 年 5 月 20 日， AWS 將終止對 的支援 AWS IoT Events。2026 年 5 月 20 日之後，您將無法再存取 AWS IoT Events 主控台或 AWS IoT Events 資源。如需詳細資訊，請參閱[AWS IoT Events 終止支援](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-end-of-support.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 的跨服務混淆代理人預防 AWS IoT Events
<a name="cross-service-confused-deputy-prevention"></a>

**注意**  
 AWS IoT Events 此服務只允許您使用角色在建立資源的相同帳戶中啟動動作。這有助於防止混淆代理人攻擊 AWS IoT Events。
此頁面可做為參考，讓您了解混淆代理人問題的運作方式，並在服務中 AWS IoT Events 允許跨帳戶資源時加以防止。

混淆代理人問題屬於安全性議題，其中沒有執行動作許可的實體可以強制具有更多許可的實體執行該動作。在 中 AWS，跨服務模擬可能會導致混淆代理人問題。

在某個服務 (*呼叫服務*) 呼叫另一個服務 (*被呼叫服務*) 時，可能會發生跨服務模擬。可以操縱呼叫服務來使用其許可，以其不應有存取許可的方式對其他客戶的資源採取動作。為了防止這種情況， AWS 提供工具，協助您保護所有 服務的資料，讓 服務主體能夠存取您帳戶中的資源。

我們建議在資源政策中使用 [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 IoT Events 提供給資源的許可。如果 `aws:SourceArn` 值不包含帳戶 ID (例如 Amazon S3 儲存貯體 ARN)，您必須使用這兩個全域條件內容金鑰來限制許可。如果同時使用這兩個全域條件內容金鑰，且 `aws:SourceArn` 值包含帳戶 ID，則在相同政策陳述式中使用 `aws:SourceAccount` 值和 `aws:SourceArn` 值中的帳戶時，必須使用相同的帳戶 ID。

 如果您想要僅允許一個資源與跨服務存取相關聯，則請使用 `aws:SourceArn`。如果您想要允許該帳戶中的任何資源與跨服務使用相關聯，請使用 `aws:SourceAccount`。的值`aws:SourceArn`必須是與`sts:AssumeRole`請求相關聯的偵測器模型或警示模型。

防範混淆代理人問題最有效的方法，是使用 `aws:SourceArn` 全域條件內容金鑰，以及資源的完整 ARN。如果不知道資源的完整 ARN，或者如果您指定了多個資源，請使用 `aws:SourceArn` 全域條件內容金鑰，同時使用萬用字元 (`*`) 表示 ARN 的未知部分。例如 `arn:aws:iotevents:*:123456789012:*`。

下列範例示範如何在 中使用 `aws:SourceArn`和 `aws:SourceAccount`全域條件內容索引鍵 AWS IoT Events ，以防止混淆代理人問題。

**Topics**
+ [範例：安全存取 AWS IoT Events 偵測器模型](accessing-a-detector-model.md)
+ [範例：安全存取 AWS IoT Events 警示模型](accessing-an-alarm-model.md)
+ [範例：存取指定區域中 AWS IoT Events 的資源](accessing-resource-in-specified-region.md)
+ [範例：設定 的記錄選項 AWS IoT Events](logging-options.md)

# 範例：安全存取 AWS IoT Events 偵測器模型
<a name="accessing-a-detector-model"></a>

此範例示範如何建立 IAM 政策，以安全地將存取權授予 中的特定偵測器模型 AWS IoT Events。此政策使用條件來確保只有指定的 AWS 帳戶 AWS IoT Events 和服務可以擔任該角色，並新增額外的安全層。在此範例中，角色只能存取名為 *WindTurbine01* 的偵測器模型。

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

****  

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

------

# 範例：安全存取 AWS IoT Events 警示模型
<a name="accessing-an-alarm-model"></a>

此範例示範如何建立 IAM 政策， AWS IoT Events 允許 安全地存取警示模型。此政策使用條件來確保只有指定的 AWS 帳戶 AWS IoT Events 和服務可以擔任該角色。

在此範例中，角色可以存取指定 AWS 帳戶中的任何警示模型，如警示模型 ARN 中的`*`萬用字元所示。`aws:SourceAccount` 和 `aws:SourceArn`條件共同運作，以防止混淆代理人問題。

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

****  

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

------

# 範例：存取指定區域中 AWS IoT Events 的資源
<a name="accessing-resource-in-specified-region"></a>

此範例示範如何設定 IAM 角色以存取特定 AWS 區域中 AWS IoT Events 的資源。透過在 IAM 政策中使用區域特定的 ARNs，您可以限制存取不同地理區域 AWS IoT Events 的資源。此方法有助於在多區域部署中維持安全與合規。此範例中的區域是 *us-east-1*。

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

****  

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

------

# 範例：設定 的記錄選項 AWS IoT Events
<a name="logging-options"></a>

適當的記錄對於監控、偵錯和稽核您的 AWS IoT Events 應用程式至關重要。本節提供 中可用記錄選項的概觀 AWS IoT Events。

此範例示範如何設定允許 AWS IoT Events 將資料記錄到 CloudWatch Logs 的 IAM 角色。在資源 ARN 中使用萬用字元 (`*`) 可讓您跨 AWS IoT Events 基礎設施進行全面記錄。

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

****  

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

------