

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

# Amazon WorkSpaces 應用程式跨服務混淆代理人預防
<a name="confused-deputy"></a>

混淆代理人問題屬於安全性議題，其中沒有執行動作許可的實體強制權限更高的實體執行該動作。在 AWS中，跨服務模擬可能會導致帳戶資源發生混淆代理人問題。在某個服務 (*呼叫服務*) 呼叫另一個服務 (*被呼叫服務*) 時，會發生跨服務模擬。呼叫服務可以操縱被呼叫服務來使用其許可，以呼叫服務本身未具備執行許可的方式，對客戶的資源執行動作。為了防止這種情況， AWS 提供工具，協助您使用可存取您帳戶中資源的服務主體來保護所有 服務的資料。

如需限制存取這些資源時的許可，我們建議在資源政策中使用 `aws:SourceArn` 和 `aws:SourceAccount` 全域條件內容鍵。下列準則詳細說明使用這些索引鍵來保護資源時的建議和需求：
+ 如果您只想要允許一個資源與跨服務存取相關聯，則使用 `aws:SourceArn`。
+ 如果您想要允許所指定帳戶中的任何資源與跨服務使用相關聯，則使用 `aws:SourceAccount`。
+ 如果 `aws:SourceArn` 鍵未包含帳戶 ID，您必須使用這兩個全域條件內容鍵 (`aws:SourceArn` 和 `aws:SourceAccount`) 來限制許可。
+ 如果同時使用全域條件內容鍵，且 `aws:SourceArn` 值包含帳戶 ID，則在相同政策陳述式中使用 `aws:SourceAccount` 鍵時，必須使用相同的帳戶 ID。

防範混淆代理人問題的最有效方法是精確使用您允許的資源 Amazon Resource Name (ARN) 資源。如果不知道資源的完整 ARN，請使用 `aws:SourceArn` 全域條件內容鍵搭配萬用字元 (例如 \*) 來表示 ARN 的未知部分。若要指定多個資源，您也可以在 ARN 中使用萬用字元。例如，您可以將 ARN 格式化為 `arn:aws:{{servicename}}::{{region-name}}::{{your AWS 帳戶 ID}}:*`。

**Topics**
+ [範例：預防 WorkSpaces 應用程式服務角色跨服務混淆代理人](example-confused-deputy.md)
+ [範例：預防 WorkSpaces 應用程式機群機器角色跨服務混淆代理人](example-fleet-machine.md)
+ [範例：WorkSpaces 應用程式彈性機群工作階段指令碼 Amazon S3 儲存貯體政策跨服務混淆代理人預防](example-elastic-fleets.md)
+ [範例：預防 WorkSpaces 應用程式應用程式 Amazon S3 儲存貯體政策跨服務混淆代理人](example-s3-bucket.md)