預防跨服務混淆代理人 - Amazon SageMaker

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

預防跨服務混淆代理人

混淆代理人問題屬於安全性議題,其中沒有執行動作許可的實體可以強制具有更多許可的實體執行該動作。In (入) AWS,由於跨服務模擬,可能會出現混淆的副問題。當某個服務 (呼叫服務) 叫用另一個服務 (呼叫的服務),並利用呼叫服務的提升權限,對呼叫服務沒有存取授權的資源採取行動時,就可能會發生跨服務模擬。為了防止通過混淆的副問題未經授權的訪問, AWS 提供工具以協助保護跨服務的資料安全。這些工具可協助您控制授與服務主體的權限,並限制其僅存取您帳戶中所需的資源。藉由謹慎管理服務主體的存取權限,您可以協助降低服務不當存取其不應具有權限之資料或資源的風險。

請繼續閱讀以取得一般指引,或瀏覽至特定 SageMaker 功能的範例:

使用全域條件金鑰限制許可

我們建議在資源政策中使用aws:SourceArnaws: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:SourceArnaws: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全域條件金鑰來防止帳號建立之 SageMaker Edge Manager 的跨服務混淆副問題 123456789012us-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:*" } } } }

您可以使用完整ARN的一個特定封裝工作來取代此範本aws:SourceArn中的,以進一步限制權限。

SageMaker 圖片

下列範例顯示如何使用aws:SourceArn全域條件索引鍵來防止 I SageMaker mage 的跨服務混淆副問題。將此範本與ImageImageVersion搭配使用。此範例使用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" } } } }

請勿使用完整ARN的特定影像或映像版本來取代此範本aws:SourceArn中的。ARN必須採用以上提供的格式,並指定imageimage-versionpartition佔位符應指定 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:*" } } } }

請勿以完整ARN的特定模型或端點取代此範本aws:SourceArn中的。必ARN須採用上述格式。ARN範本中的星號不代表萬用字元,因此不應變更。

SageMaker Batch 轉換工作

下列範例顯示如何使用aws:SourceArn全域條件索引鍵來防止由帳號建立的 SageMaker 批次轉換工作發生跨服務混淆副問題 123456789012us-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/*" } } } ] }

您可以使用完整ARN的一個特定批次轉換工作來取代此範本aws:SourceArn中的,以進一步限制權限。

SageMaker Marketplace

下列範例顯示如何使用aws:SourceArn全域條件金鑰來防止帳號建立的 SageMaker Marketplace 資源發生跨服務混淆副問題 123456789012us-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:*" } } } ] }

請勿使用完整ARN的特定演算法或模型套件來取代此範本aws:SourceArn中的。必ARN須採用上述格式。ARN範本中的星號代表萬用字元,涵蓋驗證步驟的所有訓練工作、模型和批次轉換工作,以及發佈至 SageMaker Marketplace 的演算法和模型套件。

SageMaker 新

下列範例顯示如何使用aws:SourceArn全域條件索引鍵來防止由帳號建立的 SageMaker Neo 編譯工作發生跨服務混淆副問題 123456789012us-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/*" } } } ] }

您可以使用完整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),取決於管道運行的位置。同樣地,中的region預留位置ARN可以是任何可用 SageMaker 管線的有效區域

ARN範本中的星號代表萬用字元,並涵蓋名mypipeline為的管線的所有管線執行。如果您想要允許帳戶中所有管道的AssumeRole許可,123456789012而不是一個特定管道,則aws:SourceArn會為arn:aws:sagemaker:*:123456789012:pipeline/*

SageMaker 處理工作

下列範例顯示如何使用aws:SourceArn全域條件索引鍵來防止處理帳號建立之 SageMaker 工作時發生跨服務混淆副問題 123456789012us-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/*" } } } ] }

您可以使用完整ARN的一個特定處理工作來取代此範本aws:SourceArn中的,以進一步限制權限。

SageMaker 工作室

下面的例子顯示了如何使用aws:SourceArn全局條件鍵來防止由帳戶號創建的 SageMaker Studio 的跨服務混淆副問題 123456789012us-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:*" } } } ] }

請勿使用完整ARN的特定 Studio 應用程式、使用者設定檔或網域來取代此範本aws:SourceArn中的。ARN必須使用上一個範例中提供的格式。ARN範本中的星號不代表萬用字元,因此不應變更。

SageMaker 培訓工作

下列範例顯示如何使用aws:SourceArn全域條件金鑰來防止針對依帳戶編號建立的 SageMaker 訓練工作發生跨服務混淆副問題 123456789012us-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/*" } } } ] }

您可以使用完整ARN的一個特定訓練工作來取代此範本aws:SourceArn中的,以進一步限制權限。

接下來

如需有關管理執行角色的詳細資訊,請參閱SageMaker 角色