預防跨服務混淆代理人
混淆代理人問題屬於安全性議題,其中沒有執行動作許可的實體可以強制具有更多許可的實體執行該動作。在 AWS 中,跨服務模擬可能會引起混淆代理人問題。當一個服務 (呼叫服務) 調用另一個服務 (被呼叫服務),並利用被呼叫服務的提升許可對呼叫服務無權存取的資源採取行動時,可能會發生跨服務模擬。為了防止透過混淆代理人進行未經授權存取問題,AWS 會提供工具來協助跨服務保護您的資料。這些工具可協助您控制授予服務主體的許可,限制其僅能存取您帳戶中所需的資源。透過仔細管理服務主體的存取權限,您可以協助緩解服務不當存取其不應擁有許可的資料或資源的風險。
請繼續閱讀以取得一般指引,或導覽至特定 SageMaker AI 特徵的範例:
主題
使用全域條件金鑰限制許可
若要限制 Amazon SageMaker AI 提供另一項服務的資源許可,我們建議在資源政策中使用 aws:SourceArn 和 aws:SourceAccount 全域條件金鑰。如果同時使用這兩個全域條件金鑰,且 aws:SourceArn 值包含帳戶 ID,則在相同政策陳述式中使用 aws:SourceAccount 值和 aws:SourceArn 值中的帳戶時,必須使用相同的帳戶 ID。如果您想要僅允許一個資源與跨服務存取相關聯,則請使用 aws:SourceArn。如果您想要允許該帳戶中的任何資源與跨服務使用相關聯,請使用 aws:SourceAccount。
防範混淆代理人問題的最有效方法是使用 aws:SourceArn 全域條件金鑰,以及資源的完整 ARN。如果不知道資源的完整 ARN,或者如果您指定了多個資源,請使用 aws:SourceArn 全域條件金鑰,同時使用萬用字元 (*) 表示 ARN 的未知部分。例如 arn:aws:sagemaker:*:。123456789012:*
下列範例展示如何使用 SageMaker AI 中的 aws:SourceArn 和 aws:SourceAccount 全域條件金鑰,來防止混淆代理人問題。
{ "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全域條件金鑰來防止由 us-west-2 區域帳號 123456789012 建立的 SageMaker Edge Manager 發生跨服務混淆代理人問題。
您可以使用一個特定封裝工作的完整 ARN 來取代此範本中的 aws:SourceArn,以進一步限制許可。
SageMaker 影像
下列範例示範如何使用 aws:SourceArn 全域條件金鑰,來預防跨服務混淆 SageMaker 影像的代理人問題。將此範本與Image或ImageVersion搭配使用。這個範例會使用帳號為 123456789012 的ImageVersion記錄 ARN。請注意,由於帳號是 aws:SourceArn 值的一部分,因此您不需要指定 aws:SourceAccount 值。
請勿以特定影像或影像版本的完整 ARN 取代此範本中的aws:SourceArn。ARN 必須採用以上提供的格式,並指定image或image-version。partition 預留位置應該指定 AWS 商業分割區 (aws) 或在中國分割區 AWS (aws-cn),視影像檔或影像版本的執行位置而定。同樣地,ARN 中的region預留位置可以是任何可用 SageMaker 影像的有效區域。
SageMaker AI 推論
下列範例展示如何使用 aws:SourceArn 全域條件金鑰,來防止 SageMaker AI 即時、無伺服器和非同步推論發生跨服務混淆代理人問題。請注意,由於帳號是 aws:SourceArn 值的一部分,因此您不需要指定 aws:SourceAccount 值。
請勿以特定模型或端點的完整 ARN 取代此範本中的aws:SourceArn。ARN 必須採用上面提供的格式。ARN 範本中的星號不代表萬用字元,因此不應變更。
SageMaker AI 批次轉換任務
下列範例展示如何使用 aws:SourceArn 全域條件金鑰,來防止 us-west-2 區域中帳號 123456789012 建立的 SageMaker AI 批次轉換任務發生跨服務混淆代理人問題。請注意,由於帳號位於 ARN 中,因此您不需要指定aws:SourceAccount值。
您可以使用一個特定批次轉換工作的完整 ARN 來取代此範本中的 aws:SourceArn,以進一步限制許可。
SageMaker AI Marketplace
下列範例展示如何使用 aws:SourceArn 全域條件金鑰,來防止 us-west-2 區域中帳號 123456789012 建立的 Sagemaker AI Marketplace 資源發生跨服務混淆代理人問題。請注意,由於帳號位於 ARN 中,因此您不需要指定aws:SourceAccount值。
請勿以特定演算法或模型套件的完整 ARN 取代此範本中的aws:SourceArn。ARN 必須採用上面提供的格式。ARN 範本中的星號代表萬用字元,並涵蓋了驗證步驟中的所有訓練任務、模型和批次轉換任務,以及發佈至 SageMaker AI Marketplace 的演算法和模型套件。
新 SageMaker
下列範例顯示如何使用aws:SourceArn全域條件金鑰來防止針對 us-west-2 區域帳號 123456789012 建立的 Sagemaker 新編譯任務發生跨服務混淆代理人問題。請注意,由於帳號位於 ARN 中,因此您不需要指定aws:SourceAccount值。
您可以使用一個特定編譯任務的完整 ARN 來取代此範本中的 aws:SourceArn,以進一步限制許可。
SageMaker 管道
下列範例示範如何使用一或多個管道的管道執行記錄,以 aws:SourceArn 全域條件金鑰避免 SageMaker Pipelines 的跨服務混淆代理人問題。請注意,由於帳號位於 ARN 中,因此您不需要指定aws:SourceAccount值。
請勿以特定管道執行的完整 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 處理任務
下列範例展示如何使用 aws:SourceArn 全域條件金鑰,來防止 us-west-2 區域中帳號 123456789012 建立的 Sagemaker Processing 任務發生跨服務混淆代理人問題。請注意,由於帳號位於 ARN 中,因此您不需要指定aws:SourceAccount值。
您可以使用一個特定處理任務的完整 ARN 來取代此範本中的 aws:SourceArn,以進一步限制許可。
SageMaker Studio
下列範例顯示如何使用aws:SourceArn全域條件金鑰來防止針對 us-west-2 區域帳號 123456789012 建立的 SageMaker Studio 發生跨服務混淆代理人問題。請注意,由於帳號是 aws:SourceArn 值的一部分,因此您不需要指定 aws:SourceAccount 值。
請勿以特定 Studio 應用程式、使用者設定檔或網域的完整 ARN 取代此範本中的aws:SourceArn。ARN 必須採用上範例中提供的格式。ARN 範本中的星號不代表萬用字元,因此不應變更。
SageMaker 訓練工作
下列範例顯示如何使用aws:SourceArn全域條件金鑰來防止針對 us-west-2 區域帳號 123456789012 建立的 SageMaker 訓練工作發生跨服務混淆代理人問題。請注意,由於帳號位於 ARN 中,因此您不需要指定aws:SourceAccount值。
您可以使用某個特定訓練工作的完整 ARN 來取代此範本中的 aws:SourceArn,以進一步限制許可。
接下來
如需管理執行角色的詳細資訊,請參閱 SageMaker AI 角色。