Isolieren von Domainressourcen - Amazon SageMaker AI

Isolieren von Domainressourcen

Wichtig

Benutzerdefinierte IAM-Richtlinien, die es Amazon SageMaker Studio oder Amazon SageMaker Studio Classic ermöglichen, Amazon-SageMaker-Ressourcen zu erstellen, müssen auch Berechtigungen zum Hinzufügen von Tags zu diesen Ressourcen gewähren. Die Berechtigung zum Hinzufügen von Tags zu Ressourcen ist erforderlich, da Studio und Studio Classic automatisch alle von ihnen erstellten Ressourcen taggen. Wenn eine IAM-Richtlinie Studio und Studio Classic das Erstellen von Ressourcen, aber kein Tagging erlaubt, können bei dem Versuch, Ressourcen zu erstellen, „AccessDenied“-Fehler auftreten. Weitere Informationen finden Sie unter Bereitstellen von Berechtigungen für das Markieren von SageMaker-AI-Ressourcen.

Verwaltete AWS-Richtlinien für Amazon SageMaker AI, die Berechtigungen zum Erstellen von SageMaker-Ressourcen gewähren, enthalten bereits Berechtigungen zum Hinzufügen von Tags während der Erstellung dieser Ressourcen.

Mithilfe einer AWS Identity and Access Management-Richtlinie (IAM) können Sie Ressourcen zwischen den einzelnen Domains in Ihrem Konto und Ihrer AWS-Region isolieren. Auf die isolierten Ressourcen wird nicht mehr von anderen Domains aus zugegriffen. In diesem Thema werden wir die Voraussetzungen für die IAM-Richtlinie und deren Anwendung besprechen.

Die Ressourcen, die durch diese Richtlinie isoliert werden können, sind die Ressourcentypen, deren Bedingungsschlüssel aws:ResourceTag/${TagKey} oder sagemaker:ResourceTag/${TagKey} enthalten. Informationen zu den SageMaker-AI-Ressourcen und den zugehörigen Bedingungsschlüsseln finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon SageMaker AI.

Warnung

Die Ressourcentypen, die die oben genannten Bedingungsschlüssel nicht enthalten (und somit die Aktionen, die die Ressourcentypen verwenden), sind von dieser Richtlinie zur Ressourcenisolierung nicht betroffen. Beispielsweise enthält der Ressourcentyp pipeline-execution die oben genannten Bedingungsschlüssel nicht und ist von dieser Richtlinie nicht betroffen. Daher werden die folgenden Aktionen mit dem Ressourcentyp „pipeline-execution“ für die Ressourcenisolierung nicht unterstützt:

  • DescribePipelineExecution

  • StopPipelineExecution

  • UpdatePipelineExecution

  • RetryPipelineExecution

  • DescribePipelineDefinitionForExecution

  • ListPipelineExecutionSteps

  • SendPipelineExecutionStepSuccess

  • SendPipelineExecutionStepFailure

Das folgende Thema zeigt, wie Sie eine neue IAM-Richtlinie erstellen, die den Zugriff auf Ressourcen in der Domain auf Benutzerprofile mit dem Domain-Tag beschränkt, und wie Sie diese Richtlinie der IAM-Ausführungsrolle der Domain zuordnen. Sie müssen diesen Vorgang für jede Domain in Ihrem Konto wiederholen. Weitere Informationen zu Domain-Tags und zum Auffüllen dieser Tags finden Sie unter Übersicht über mehrere Domains

Konsole

Der folgende Abschnitt zeigt, wie Sie eine neue IAM-Richtlinie erstellen, die den Zugriff auf Ressourcen in der Domain auf Benutzerprofile mit dem Domain-Tag beschränkt, und wie Sie diese Richtlinie über die Konsole von Amazon SageMaker AI an die IAM-Ausführungsrolle der Domain anhängen.

Anmerkung

Diese Richtlinie funktioniert nur in Domains, die Amazon SageMaker Studio Classic als Standardkonfiguration verwenden.

  1. Erstellen Sie eine IAM-Richtlinie StudioDomainResourceIsolationPolicy-domain-id mit dem Namen des folgenden JSON-Richtliniendokuments, indem Sie die Schritte unter Erstellen der IAM-Richtlinien (Konsole) ausführen.

    JSON
    { "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. Ordnen Sie die StudioDomainResourceIsolationPolicy-domain-id-Richtlinie der Ausführungsrolle der Domain zu, indem Sie die Schritte unter Ändern einer Rolle (Konsole) ausführen.

AWS CLI

Im folgenden Abschnitt wird gezeigt, wie Sie eine neue IAM-Richtlinie erstellen, die den Zugriff auf Ressourcen in der Domain auf Benutzerprofile mit dem Domain-Tag beschränkt, und wie Sie diese Richtlinie der Ausführungsrolle der Domain zuordnen, und zwar über den AWS CLI.

Anmerkung

Diese Richtlinie funktioniert nur in Domains, die Amazon SageMaker Studio Classic als Standardkonfiguration verwenden.

  1. Erstellen Sie eine lokale Datei mit dem Namen StudioDomainResourceIsolationPolicy-domain-id und den folgenden Inhalten:

    JSON
    { "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. So erstellen Sie eine IAM-Richtlinie mithilfe der StudioDomainResourceIsolationPolicy-domain-id.

    aws iam create-policy --policy-name StudioDomainResourceIsolationPolicy-domain-id --policy-document file://StudioDomainResourceIsolationPolicy-domain-id
  3. Ordnen Sie die neu erstellte Richtlinie einer neuen oder vorhandenen Rolle zu, die als Ausführungsrolle der Domain verwendet wird.

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