本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
預防混淆代理人
當沒有執行動作許可的實體可能會強制更特權的實體執行動作時,就會發生混淆代理人問題。如果您提供第三方 (稱為跨帳戶) 或其他 AWS 服務 (稱為跨服務) 存取您帳戶中的資源, AWS 會提供可協助您保護帳戶的工具。
當一個服務 (呼叫服務) 呼叫另一個服務 (呼叫服務) 時,可能會發生跨服務混淆代理人問題。可以操縱呼叫服務來使用其許可,以其不應有存取許可的方式對其他客戶的資源採取動作。若要防止這種情況,您可以建立政策,以透過已授予服務資源存取權的服務主體,協助保護所有 服務的資料。
Amazon Fraud Detector 支援在您的許可政策中使用服務角色,以允許服務代表您存取其他服務的資源。角色需要兩個政策:指定允許承擔角色的主體的角色信任政策;以及指定角色可執行動作的許可政策。當服務代表您擔任角色時,必須允許服務主體執行角色信任政策中的 sts:AssumeRole
動作。當服務呼叫 時sts:AssumeRole
, AWS STS 會傳回一組臨時安全登入資料,供服務主體用來存取角色的許可政策所允許的資源。
為了防止跨服務混淆代理問題,Amazon Fraud Detector 建議您在角色信任政策中使用 aws:SourceArn
和 aws:SourceAccount
全域條件內容金鑰,將角色的存取限制為僅由預期資源產生的請求。
aws:SourceAccount
指定帳戶 ID,而 aws:SourceArn
指定與跨服務存取相關聯的資源 ARN。aws:SourceArn
必須使用 ARN 格式指定 。確保 aws:SourceAccount
和 aws:SourceArn
在相同的政策陳述式中使用相同的帳戶 ID。
防範混淆代理人問題的最有效方法是使用 aws:SourceArn
全域條件內容索引鍵,以及資源的完整 ARN。如果您不知道資源的完整 ARN 或指定多個資源,請將aws:SourceArn
全域內容條件索引鍵與萬用字元 (*
) 搭配使用,以取得 ARN 的未知部分。例如:arn:aws:
。如需有關您可以在許可政策中使用的 Amazon Fraud Detector 資源和動作的資訊,請參閱 Amazon Fraud Detector 的動作、資源和條件索引鍵。servicename
:*:123456789012
:*
下列角色信任政策範例在aws:SourceArn
條件索引鍵中使用萬用字元 (*),以允許 Amazon Fraud Detector 存取與帳戶 ID 相關聯的多個資源。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "frauddetector.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "StringLike": { "aws:SourceArn": "arn:aws:frauddetector:us-west-2:123456789012:*" } } } ] }
下列角色信任政策允許 Amazon Fraud Detector 僅存取 external-model
資源。請注意條件區塊中的aws:SourceArn
參數。資源限定詞是使用用於進行 PutExternalModel
API 呼叫的模型端點所建置。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "frauddetector.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "StringLike": { "aws:SourceArn": "arn:aws:frauddetector:us-west-2:123456789012:external-model/MyExternalModeldoNotDelete-ReadOnly" } } } ] }