本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
預防跨服務混淆代理人
混淆代理人問題屬於安全性議題,其中沒有執行動作許可的實體可以強制具有更多許可的實體執行該動作。在中AWS,由於跨服務模擬,可能會出現混淆的副問題。當一個服務 (呼叫服務) 叫用另一個服務 (呼叫的服務),並利用呼叫服務的提升權限對呼叫服務沒有存取授權的資源採取行動時,就可能會發生跨服務模擬。為了防止通過混淆的副問題未經授權的訪問,AWS提供工具來幫助保護跨服務的數據。這些工具可協助您控制授與服務主體的權限,並限制其僅存取您帳戶中所需的資源。藉由謹慎管理服務主體的存取權限,您可以協助降低服務不當存取其不應具有權限之資料或資源的風險。
請繼續閱讀以取得一般指引,或瀏覽至特定 SageMaker 功能的範例:
主題
使用全域條件金鑰限制許可
我們建議在資源政策中使用aws:SourceArn
和aws:SourceAccount
全域條件金鑰,將許可限制在 Amazon SageMaker 提供其他服務的資源。如果同時使用這兩個全域條件金鑰,且 aws:SourceArn
值包含帳戶 ID,則在相同政策陳述式中使用 aws:SourceAccount
值和 aws:SourceArn
值中的帳戶時,必須使用相同的帳戶 ID。如果您想要僅允許一個資源與跨服務存取相關聯,則請使用 aws:SourceArn
。如果您想要允許該帳戶中的任何資源與跨服務使用相關聯,請使用 aws:SourceAccount
。
防範混淆代理人問題的最有效方法是使用 aws:SourceArn
全域條件金鑰,以及資源的完整 ARN。如果不知道資源的完整 ARN,或者如果您指定了多個資源,請使用 aws:SourceArn
全域條件金鑰,同時使用萬用字元 (*
) 表示 ARN 的未知部分。例如 arn:aws:sagemaker:*:
。123456789012
:*
下列範例顯示如何在中使用aws:SourceArn
和aws:SourceAccount
全域條件鍵 SageMaker 來避免混淆的副問題。
{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, # Specify an action and resource policy for another service "Action": "
service
:ActionName
", "Resource": [ "arn:aws:service
:::ResourceName
/*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:partition
:sagemaker:region
:123456789012
:*" }, "StringEquals": { "aws:SourceAccount": "123456789012
" } } } }
SageMaker 邊緣管理員
下列範例顯示如何使用
aws:SourceArn
全域條件金鑰來防止在 US-西部 -2 區域中的帳戶編號 12345678
9012 所建立的 SageMaker 邊緣管理員發生跨服務混淆副問題。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:
us-west-2
:123456789012
:*" } } } }
您可以使用一個特定封裝工作的完整 ARN 來取代此範本中的aws:SourceArn
,以進一步限制許可。
SageMaker 圖片
下列範例顯示如何使用aws:SourceArn
全域條件索引鍵來防止 I SageMaker mage 的跨服務混淆副問題。將此範本與Image
或ImageVersion
搭配使用。這個範例會使用帳號為 123456789012
的ImageVersion
記錄 ARN。請注意,由於帳號是aws:SourceArn
值的一部分,因此您不需要指定aws:SourceAccount
值。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:
partition
:sagemaker:us-west-2
:123456789012
:image-version
" } } } }
請勿以特定影像或影像版本的完整 ARN 取代此範本中的aws:SourceArn
。ARN 必須採用以上提供的格式,並指定image
或image-version
。partition
預留位置應該指定AWS商業分割區 (aws
) 或在中國分割區 AWS (aws-cn
),視影像檔或影像版本的執行位置而定。同樣,ARN 中的region
佔位符可以是任何可用 SageMaker 圖像的有效區域。
SageMaker 推論
下列範例顯示如何使用aws:SourceArn
全域條件金鑰來防止 SageMaker 即時、無伺服器和非同步推論的跨服務混淆副問題。請注意,由於帳號是aws:SourceArn
值的一部分,因此您不需要指定aws:SourceAccount
值。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:
us-west-2
:123456789012
:*" } } } }
請勿以特定模型或端點的完整 ARN 取代此範本中的aws:SourceArn
。ARN 必須採用上面提供的格式。ARN 範本中的星號不代表萬用字元,因此不應變更。
SageMaker Batch 轉換工作
下列範例顯示如何使用
請注意,由於帳號位於 ARN 中,因此您不需要指定aws:SourceArn
全域條件索引鍵來防止由 us-West -2 區域中帳號 12345678
9012 建立的 SageMaker 批次轉換工作發生跨服務混淆副問題。aws:SourceAccount
值。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:
us-west-2
:123456789012
:transform-job/*" } } } ] }
您可以使用一個特定批次轉換工作的完整 ARN 來取代此範本中的aws:SourceArn
,以進一步限制許可。
SageMaker Marketplace
下列範例顯示如何使用
請注意,由於帳號位於 ARN 中,因此您不需要指定aws:SourceArn
全域條件金鑰來防止由 US-西部 -2 區域中帳號 12345678
9012 建立的 SageMaker Marketplace 資源發生跨服務混淆副問題。aws:SourceAccount
值。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:
us-west-2
:123456789012
:*" } } } ] }
請勿以特定演算法或模型套件的完整 ARN 取代此範本中的aws:SourceArn
。ARN 必須採用上面提供的格式。ARN 範本中的星號代表萬用字元,涵蓋了驗證步驟的所有訓練工作、模型和批次轉換工作,以及發佈至 SageMaker Marketplace 的演算法和模型套件。
SageMaker 新
下列範例顯示如何使用
請注意,由於帳號位於 ARN 中,因此您不需要指定aws:SourceArn
全域條件金鑰來防止在 us-West -2 區域中,帳號 12345678
9012 所建立的 SageMaker Neo 編譯工作發生跨服務混淆副問題。aws:SourceAccount
值。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:
us-west-2
:123456789012
:compilation-job/*
" } } } ] }
您可以使用一個特定編譯任務的完整 ARN 來取代此範本中的aws:SourceArn
,以進一步限制許可。
SageMaker 管道
下列範例顯示如何使用aws:SourceArn
全域條件金鑰來防止使用一或多個管線的管線執行記錄的 Pipel SageMaker ines 發生跨服務混淆副問題。請注意,由於帳號位於 ARN 中,因此您不需要指定aws:SourceAccount
值。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:
partition
:sagemaker:region
:123456789012
:pipeline/mypipeline/*
" } } } ] }
請勿以特定管道執行的完整 ARN 取代此範本中的aws:SourceArn
。ARN 必須採用上面提供的格式。partition
預留位置應該指定AWS商業分割區 (aws
) 或在中國分割區 AWS (aws-cn
),視管道的執行位置而定。同樣,ARN 中的region
佔位符可以是任何可用 SageMaker 管道的有效區域。
ARN 範本中的星號代表萬用字元,並涵蓋名為mypipeline
的管道的所有管道執行。如果您想要允許帳戶中所有管道的AssumeRole
許可,123456789012
而不是一個特定管道,則aws:SourceArn
會為arn:aws:sagemaker:*:123456789012:pipeline/*
。
SageMaker 處理工作
下列範例顯示如何使用
請注意,由於帳號位於 ARN 中,因此您不需要指定aws:SourceArn
全域條件索引鍵來防止跨服務混淆副問題,因為 SageMaker 處理帳戶編號 12345678
9012 在 us-West 2 區域中建立的工作。aws:SourceAccount
值。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:
us-west-2
:123456789012
:processing-job/*
" } } } ] }
您可以使用一個特定處理任務的完整 ARN 來取代此範本中的aws:SourceArn
,以進一步限制許可。
SageMaker 工作室
下列範例會示範如何使用
請注意,由於帳號是aws:SourceArn
全域條件索引鍵,以防止跨服務混淆副問題,由帳戶編號 12345678
9012 在 US-西部 -2 區域中建立的 SageMaker Studio。aws:SourceArn
值的一部分,因此您不需要指定aws:SourceAccount
值。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:
us-west-2
:123456789012
:*" } } } ] }
請勿以特定 Studio 應用程式、使用者設定檔或網域的完整 ARN 取代此範本中的aws:SourceArn
。ARN 必須採用上範例中提供的格式。ARN 範本中的星號不代表萬用字元,因此不應變更。
SageMaker 培訓工作
下列範例顯示如何使用
請注意,由於帳號位於 ARN 中,因此您不需要指定aws:SourceArn
全域條件金鑰來防止在 us-West -2 區域中帳戶編號 12345678
9012 建立的 SageMaker 訓練工作發生跨服務混淆副問題。aws:SourceAccount
值。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:
us-west-2
:123456789012
:training-job/*
" } } } ] }
您可以使用某個特定訓練工作的完整 ARN 來取代此範本中的aws:SourceArn
,以進一步限制許可。
接下來
如需有關管理執行角色的詳細資訊,請參閱SageMaker 角色。