本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
預防跨服務混淆代理人
混淆代理人問題屬於安全性議題,其中沒有執行動作許可的實體可以強制具有更多許可的實體執行該動作。在 中 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 Edge Manager
下列範例示範如何使用aws:SourceArn
全域條件金鑰,以防止帳戶號碼所建立之 SageMaker Edge Manager 的跨服務混淆代理問題 123456789012
在 中 us-west-2
區域。
{ "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
:*" } } } }
您可以將此範本aws:SourceArn
中的 取代為完整ARN一個特定封裝任務,以進一步限制許可。
SageMaker 影像
下列範例示範如何使用aws:SourceArn
全域條件金鑰,以防止SageMaker 映像 的跨服務混淆代理問題。將此範本與Image
或ImageVersion
搭配使用。此範例使用ARN具有 帳戶號碼ImageVersion
的記錄 123456789012
。 請注意,由於帳戶號碼是 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
" } } } }
請勿將此範本aws:SourceArn
中的 取代ARN為完整特定映像或映像版本。ARN 必須是上述提供的格式,並指定 image
或 image-version
。partition
預留位置應指定 AWS 商業分割區 (aws
) 或中國分割區 AWS (aws-cn
),具體取決於映像或映像版本執行的位置。同樣地, 中的region
預留位置ARN可以是任何有可用 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
:*" } } } }
請勿將此範本aws:SourceArn
中的 取代為完整ARN特定模型或端點。ARN 必須是上述提供的格式。ARN 範本中的星號不代表萬用字元,不應變更。
SageMaker 批次轉換任務
下列範例示範如何使用aws:SourceArn
全域條件金鑰,以防止帳戶號碼所建立 SageMaker 批次轉換任務的跨服務混淆代理問題 123456789012
在 中 us-west-2
區域。請注意,由於帳戶號碼位於 中ARN,因此您不需要指定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/*" } } } ] }
您可以將此範本aws:SourceArn
中的 取代為完整ARN一個特定批次轉換任務,以進一步限制許可。
SageMaker 市場
下列範例示範如何使用aws:SourceArn
全域條件金鑰,以防止帳戶號碼所建立 SageMaker Marketplace 資源的跨服務混淆代理問題 123456789012
在 中 us-west-2
區域。請注意,由於帳戶號碼位於 中ARN,因此您不需要指定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
:*" } } } ] }
請勿將此範本aws:SourceArn
中的 取代ARN為完整特定演算法或模型套件。ARN 必須是上述提供的格式。ARN 範本中的星號表示萬用字元,並涵蓋從驗證步驟的所有訓練任務、模型和批次轉換任務,以及發佈至 SageMaker Marketplace 的演算法和模型套件。
SageMaker Neo
下列範例示範如何使用aws:SourceArn
全域條件金鑰,以防止帳戶號碼所建立之 SageMaker Neo 編譯任務的跨服務混淆代理問題 123456789012
在 中 us-west-2
區域。請注意,由於帳戶號碼位於 中ARN,因此您不需要指定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/*
" } } } ] }
您可以將此範本aws:SourceArn
中的 取代為完整ARN一個特定編譯任務,以進一步限制許可。
SageMaker 管道
下列範例示範如何使用aws:SourceArn
全域條件金鑰,以防止SageMaker 管道的跨服務混淆代理問題,使用一或多個管道的管道執行記錄。請注意,由於帳戶號碼位於 中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/*
" } } } ] }
請勿將此範本aws:SourceArn
中的 取代ARN為完整特定管道執行。ARN 必須是上述提供的格式。partition
預留位置應指定 AWS 商業分割區 (aws
) 或中國分割區 AWS (aws-cn
),視管道執行的位置而定。同樣地, 中的region
預留位置ARN可以是管道 SageMaker 可供使用的任何有效區域。
ARN 範本中的星號表示萬用字元,並涵蓋名為 之管道的所有管道執行mypipeline
。如果您想要允許帳戶中所有管道的AssumeRole
許可,123456789012
而不是一個特定管道,則aws:SourceArn
會為arn:aws:sagemaker:*:123456789012:pipeline/*
。
SageMaker 處理任務
下列範例示範如何使用aws:SourceArn
全域條件金鑰,以防止 SageMaker 處理帳號所建立之任務的跨服務混淆代理問題 123456789012
在 中 us-west-2
區域。請注意,由於帳戶號碼位於 中ARN,因此您不需要指定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/*
" } } } ] }
您可以將此範本aws:SourceArn
中的 取代為完整ARN一個特定處理任務,以進一步限制許可。
SageMaker Studio
下列範例示範如何使用aws:SourceArn
全域條件金鑰,以防止帳戶號碼所建立之 SageMaker Studio 的跨服務混淆代理問題 123456789012
在 中 us-west-2
區域。請注意,由於帳號是 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
:*" } } } ] }
請勿將此範本aws:SourceArn
中的 取代ARN為完整特定 Studio 應用程式、使用者設定檔或網域。ARN 必須是上一個範例中提供的格式。ARN 範本中的星號不代表萬用字元,不應變更。
SageMaker 訓練任務
下列範例示範如何使用aws:SourceArn
全域條件金鑰,以防止帳戶號碼所建立 SageMaker 之訓練任務的跨服務混淆代理問題 123456789012
在 中 us-west-2
區域。請注意,由於帳戶號碼位於 中ARN,因此您不需要指定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/*
" } } } ] }
您可以將此範本aws:SourceArn
中的 取代為完整ARN一個特定訓練任務,以進一步限制許可。
接下來
如需管理執行角色的詳細資訊,請參閱SageMaker 角色 。