本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
預防跨服務混淆代理人
混淆代理人問題屬於安全性議題,其中沒有執行動作許可的實體可以強制具有更多許可的實體執行該動作。在 中 AWS,跨服務模擬可能會導致混淆代理問題。在某個服務 (呼叫服務) 呼叫另一個服務 (被呼叫服務) 時,可能會發生跨服務模擬。可以操縱呼叫服務來使用其許可,以其不應有存取許可的方式對其他客戶的資源採取動作。為了防止這種情況, AWS 提供工具,協助您使用已授予您帳戶中資源存取權的服務主體來保護所有 服務的資料。
我們建議您使用 aws:SourceArn 和 aws:SourceAccount 資源政策中的全域條件內容索引鍵,以限制將另一項服務 AWS CloudFormation 提供給特定資源的許可,例如 CloudFormation 延伸模組。如果您想要僅允許一個資源與跨服務存取相關聯,則請使用 aws:SourceArn
。如果您想要允許該帳戶中的任何資源與跨服務使用相關聯,請使用 aws:SourceAccount
。
確定 的值aws:SourceArn
是所 CloudFormation 存放資源ARN的 。
防止混淆代理問題的最有效方法是使用包含完整資源ARN的aws:SourceArn
全域條件內容索引鍵。如果您不知道完整ARN資源,或如果您要指定多個資源,請將aws:SourceArn
全域內容條件索引鍵與萬用字元 (*
) 搭配使用,用於 的未知部分ARN。例如:arn:aws:
。cloudformation
:*:123456789012
:*
如果aws:SourceArn
值不包含帳戶 ID,您必須使用兩個全域條件內容索引鍵來限制許可。
下列範例顯示如何使用 中的 aws:SourceArn
和 aws:SourceAccount
全域條件內容索引鍵 CloudFormation ,以防止混淆代理問題。
使用 aws:SourceArn
和 aws:SourceAccount
條件索引鍵的信任政策範例
對於登錄服務, CloudFormation 會呼叫 AWS Security Token Service (AWS STS) 以在您的帳戶中擔任服務角色。此角色是在 ExecutionRoleArn
中為 設定的 RegisterType 操作並在 中LogRoleArn
設定 LoggingConfig 操作。如需詳細資訊,請參閱設定具有IAM許可和信任政策的執行角色,以進行公有延伸存取。
此範例角色信任政策使用條件陳述式,將服務角色AssumeRole
的功能限制為僅對指定帳戶中指定 CloudFormation 延伸執行動作。獨立評估 aws:SourceArn
和 aws:SourceAccount
條件。使用服務角色的任何請求都必須滿足這兩個條件。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "resources.cloudformation.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "
123456789012
" }, "StringLike": { "aws:SourceArn": "arn:aws:cloudformation:us-east-1:123456789012:type/resource/Organization-Service-Resource/*
" } } } ] }
其他資訊
如需針對 使用的服務角色使用 aws:SourceArn
和 aws:SourceAccount
全域條件內容索引鍵的政策範例 StackSets,請參閱 設定全域索引鍵以減輕混淆代理人問題。
如需詳細資訊,請參閱 IAM 使用者指南 中的更新角色信任政策。