隔離網域資源 - Amazon SageMaker

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

隔離網域資源

重要

允許 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 建立 Amazon SageMaker 資源的自訂IAM政策也必須授予許可,才能將標籤新增至這些資源。需要將標籤新增至資源的許可,因為 Studio 和 Studio Classic 會自動標記他們建立的任何資源。如果IAM政策允許 Studio 和 Studio Classic 建立資源,但不允許標記,則嘗試建立資源時可能會發生「AccessDenied」錯誤。如需詳細資訊,請參閱提供標記 SageMaker資源的許可

AWS Amazon 的受管政策 SageMaker 提供建立 SageMaker 資源的許可,已包含在建立這些資源時新增標籤的許可。

您可以使用 AWS Identity and Access Management (IAM) 政策,在帳戶中的每個網域與 AWS 區域 之間隔離資源。隔離的資源將不再從其他網域存取。在本主題中,我們將討論IAM政策所需的條件,以及如何套用這些條件。

此政策可以隔離的資源是具有條件索引鍵的資源類型,其中包含 aws:ResourceTag/${TagKey}sagemaker:ResourceTag/${TagKey}。如需 SageMaker 資源和相關條件索引鍵的參考,請參閱 Amazon 的動作、資源和條件索引鍵 SageMaker

警告

不包含上述條件索引鍵 (因此使用資源類型的動作) 的資源類型不受此資源隔離政策的影響。例如,管道執行資源類型不包含上述條件索引鍵,且不受此政策影響。因此,以下是具有管道執行資源類型的一些動作不支援資源隔離:

  • DescribePipelineExecution

  • StopPipelineExecution

  • UpdatePipelineExecution

  • RetryPipelineExecution

  • DescribePipelineDefinitionForExecution

  • ListPipelineExecutionSteps

  • SendPipelineExecutionStepSuccess

  • SendPipelineExecutionStepFailure

下列主題說明如何建立新的IAM政策,將網域中資源的存取限制為具有網域標籤的使用者設定檔,以及如何將此政策連接至網域的IAM執行角色。您必須對帳戶中的每個網域重複此程序。如需網域標籤和重新填充這些標籤的詳細資訊,請參閱 多個網域概觀

主控台

下一節說明如何建立新的IAM政策,將網域中資源的存取限制為具有網域標籤的使用者設定檔,以及如何從 Amazon SageMaker 主控台將此政策連接至網域的IAM執行角色。

注意

此政策僅適用於使用 Amazon SageMaker Studio Classic 作為預設體驗的網域。

  1. 完成建立IAM政策 (主控台) 中的步驟,以下列JSON政策文件建立名為StudioDomainResourceIsolationPolicy-domain-id 的政策。 IAM

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CreateAPIs", "Effect": "Allow", "Action": "sagemaker:Create*", "NotResource": [ "arn:aws:sagemaker:*:*:domain/*", "arn:aws:sagemaker:*:*:user-profile/*", "arn:aws:sagemaker:*:*:space/*" ] }, { "Sid": "ResourceAccessRequireDomainTag", "Effect": "Allow", "Action": [ "sagemaker:Update*", "sagemaker:Delete*", "sagemaker:Describe*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/sagemaker:domain-arn": "domain-arn" } } }, { "Sid": "AllowActionsThatDontSupportTagging", "Effect": "Allow", "Action": [ "sagemaker:DescribeImageVersion", "sagemaker:UpdateImageVersion", "sagemaker:DeleteImageVersion", "sagemaker:DescribeModelCardExportJob", "sagemaker:DescribeAction" ], "Resource": "*" }, { "Sid": "DeleteDefaultApp", "Effect": "Allow", "Action": "sagemaker:DeleteApp", "Resource": "arn:aws:sagemaker:*:*:app/domain-id/*/jupyterserver/default" } ] }
  2. 完成修改角色 (主控台) 中的步驟,將StudioDomainResourceIsolationPolicy-domain-id政策連接至網域的執行角色。https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-modify_permissions-policy

AWS CLI

下一節說明如何建立新的IAM政策,將網域中資源的存取限制為具有網域標籤的使用者設定檔,以及如何從 將此政策連接至網域的執行角色 AWS CLI。

注意

此政策僅適用於使用 Amazon SageMaker Studio Classic 作為預設體驗的網域。

  1. 從您的本機機器,藉由以下內容,建立一個檔案且檔名為 StudioDomainResourceIsolationPolicy-domain-id

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CreateAPIs", "Effect": "Allow", "Action": "sagemaker:Create*", "NotResource": [ "arn:aws:sagemaker:*:*:domain/*", "arn:aws:sagemaker:*:*:user-profile/*", "arn:aws:sagemaker:*:*:space/*" ] }, { "Sid": "ResourceAccessRequireDomainTag", "Effect": "Allow", "Action": [ "sagemaker:Update*", "sagemaker:Delete*", "sagemaker:Describe*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/sagemaker:domain-arn": "domain-arn" } } }, { "Sid": "AllowActionsThatDontSupportTagging", "Effect": "Allow", "Action": [ "sagemaker:DescribeImageVersion", "sagemaker:UpdateImageVersion", "sagemaker:DeleteImageVersion", "sagemaker:DescribeModelCardExportJob", "sagemaker:DescribeAction" ], "Resource": "*" }, { "Sid": "DeleteDefaultApp", "Effect": "Allow", "Action": "sagemaker:DeleteApp", "Resource": "arn:aws:sagemaker:*:*:app/domain-id/*/jupyterserver/default" } ] }
  2. 使用StudioDomainResourceIsolationPolicy-domain-id 檔案建立新的IAM政策。

    aws iam create-policy --policy-name StudioDomainResourceIsolationPolicy-domain-id --policy-document file://StudioDomainResourceIsolationPolicy-domain-id
  3. 將新建立的政策連接至用作網域執行角色的新角色或現有角色。

    aws iam attach-role-policy --policy-arn arn:aws:iam:account-id:policy/StudioDomainResourceIsolationPolicy-domain-id --role-name domain-execution-role