Berechtigungen einrichten - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Berechtigungen einrichten

Erforderliche Rollen für das Add-on und seine Abhängigkeiten

Für SageMaker Spaces on sind IAM-Rollen erforderlich SageMaker HyperPod

Bei der Aktivierung von SageMaker Spaces-Funktionen (auch bekannt als SageMaker IDE/Notebooks) auf einem SageMaker HyperPod (EKS) -Cluster müssen mehrere IAM-Rollen erstellt und zugewiesen werden. Diese Rollen unterstützen sicheren Zugriff, Routing, Remote-IDE-Sitzungen und EBS-Speicherbereitstellung. In der folgenden Tabelle werden die vier Rollen zusammengefasst und angegeben, wann sie benötigt werden.

Tabelle mit der Zusammenfassung der Rollen

IAM Role (IAM-Rolle) Erforderlich? Zweck Wer benutzt sie? Ist eine Anpassung über die SageMaker Konsole zulässig?

Ausführungsrolle des Spaces-Add-ons

Immer erforderlich

Ermöglicht dem Spaces-Controller, Spaces zu verwalten, vorsignierte SSM-Sitzungen zu generieren URLs und zu verwalten

Zusätzlicher Controller-Pod (privilegiert)

✔ Ja

Rolle des Routers im Cluster

Für den WebUI-Zugriff erforderlich

Ermöglicht dem Router-Pod die Ausführung von KMS-Vorgängen für die JWT-Signatur WebUI WebUI-Authentifizierung)

Router-Pod im Cluster (privilegiert)

✔ Ja

Rolle „Verwaltete SSM-Instanz“

Für den IDE-Remote-Zugriff erforderlich

Wird vom SSM-Agent-Sidecar für SSH-over-SSM Remote-IDE-Sitzungen verwendet

SSM-Agent in Space IDE-Pods (kein Add-On-Pod)

✔ Ja

IAM-Rolle für das EBS CSI-Treiber-Add-on

Immer erforderlich

Ermöglicht es dem EBS CSI-Treiber, create/attach/modify Volumes für Spaces-Workloads zu verwenden

EBS CSI-Treiber-Add-on

Automatisch erstellt

IAM-Rolle für externes DNS-Add-on

Für den WebUI-Zugriff erforderlich

Es stellt sicher, dass Space-Endpunkten und Cluster-Komponenten in den von Route 53 gehosteten Zonen des Kunden automatisch DNS-Namen zugewiesen werden können.

Externes DNS-Addon

Automatisch erstellt

1. Ausführungsrolle für das Spaces-Add-on (erforderlich)

Die Spaces-Add-On-Ausführungsrolle ist immer erforderlich, da sie vom SageMaker Spaces-Add-on-Controller-Pod verwendet wird, einer Verwaltungskomponente, die über das EKS-Add-on installiert wird. Diese Rolle ermöglicht es dem Controller, Spaces zu verwalten, Ressourcen bereitzustellen, mit SSM zu interagieren und vordefinierte Generierungen sowohl URLs für den Remote-IDE- als auch für den WebUI-Zugriff zu generieren. Es unterstützt auch den KMS-Zugriff, der für das Signieren von Anfragen zur Authentifizierung der WebUI-HTTPS-Anfragen verwendet wird. Diese Rolle kann automatisch erstellt werden, wenn das SageMaker Spaces-Add-on über die Konsole installiert wird. SageMaker AWSStellt die AmazonSageMakerSpacesControllerPolicy verwaltete Richtlinie für die manuelle Erstellung bereit.

Referenz-Vertrauensrichtlinie

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "pods.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ], "Condition": { "StringEquals": { "aws:SourceAccount": "{{accountId}}", "aws:SourceArn": "arn:aws:eks:{{region}}:{{accountId}}:cluster/{{eksClusterName}}" } } } ] }

2. Router-Rolle im Cluster (für die WebUI-Authentifizierung erforderlich)

Die In-Cluster-Router-Rolle wird vom Router-Pod verwendet, einer privilegierten Komponente, die Spaces-WebUI-Sitzungen authentifiziert. Der Router verwendet einen KMS-Schlüssel, um JWT-Token zu erstellen und zu signieren, die den Benutzerzugriff auf bestimmte Spaces autorisieren. Diese Rolle ermöglicht es dem Router-Pod, Datenschlüssel zu generieren und diese zu entschlüsseln. Ähnlich wie bei der Controller-Rolle setzt sie die Sicherheit mithilfe von tag- und clusterbasierten Bereichsbeschränkungen durch. Diese Rolle kann automatisch generiert werden, wenn das Spaces-Add-on über die AWS SageMaker Konsole installiert wird. Kunden können sie jedoch auch manuell erstellen.

Verweise auf die Vertrauensrichtlinie

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "pods.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ], "Condition": { "StringEquals": { "aws:SourceAccount": "{{accountId}}", "aws:SourceArn": "arn:aws:eks:{{region}}:{{accountId}}:cluster/{{eksClusterName}}" } } } ] }

Referenzrichtlinie für Genehmigungen

{ "Version": "2012-10-17", "Statement": [ { "Sid": "KMSDescribeKey", "Effect": "Allow", "Action": [ "kms:DescribeKey" ], "Resource": "arn:aws:kms:{{region}}:{{accountId}}:key/{{kmsKeyId}}" }, { "Sid": "KMSKeyOperations", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:{{region}}:{{accountId}}:key/{{kmsKeyId}}", "Condition": { "StringEquals": { "kms:EncryptionContext:sagemaker:component": "amazon-sagemaker-spaces", "kms:EncryptionContext:sagemaker:eks-cluster-arn": "${aws:PrincipalTag/eks-cluster-arn}" } } } ] }

3. Rolle „Verwaltete SSM-Instanz“ (für IDE-Remotezugriff erforderlich)

Die Rolle der verwalteten SSM-Instanz wird bei der Registrierung der verwalteten SSM-Instanz zur Aktivierung des IDE-Remotezugriffs übergeben. Diese Rolle ermöglicht es dem SSM-Agenten, den Pod als verwaltete SSM-Instanz zu registrieren und die SSM Session Manager-Kanäle für die Remote-IDE-Konnektivität (SSH-over-SSM) zu verwenden. Sie kann automatisch erstellt werden, wenn Sie die Konsole verwenden. AWS SageMaker Für manuelle Bereitstellungen müssen Kunden diese Rolle erstellen und sie dem Spaces-Add-on zur Verfügung stellen. Der Controller-Pod selbst übernimmt diese Rolle nicht; er stellt sie nur bei Aufrufen ssm:CreateActivation bereit.

Verweise auf die Vertrauensrichtlinie

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "{{account}}" }, "ArnEquals": { "aws:SourceArn": "arn:aws:ssm:{{region}}:{{account}}:*" } } } ] }

Referenzrichtlinie für Genehmigungen

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:DescribeAssociation" ], "Resource": [ "arn:aws:ssm:{{region}}:{{account}}:association/*", "arn:aws:ssm:{{region}}:{{account}}:document/*", "arn:aws:ec2:{{region}}:{{account}}:instance/*", "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*" ] }, { "Effect": "Allow", "Action": [ "ssm:GetDocument", "ssm:DescribeDocument" ], "Resource": "arn:aws:ssm:{{region}}:{{account}}:document/*" }, { "Effect": "Allow", "Action": [ "ssm:GetParameter", "ssm:GetParameters" ], "Resource": "arn:aws:ssm:{{region}}:{{account}}:parameter/*" }, { "Effect": "Allow", "Action": [ "ssm:ListInstanceAssociations" ], "Resource": [ "arn:aws:ec2:{{region}}:{{account}}:instance/*", "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*" ] }, { "Effect": "Allow", "Action": [ "ssm:PutComplianceItems" ], "Resource": [ "arn:aws:ec2:{{region}}:{{account}}:instance/*", "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*" ] }, { "Effect": "Allow", "Action": [ "ssm:UpdateAssociationStatus" ], "Resource": [ "arn:aws:ssm:{{region}}:{{account}}:document/*", "arn:aws:ec2:{{region}}:{{account}}:instance/*", "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*" ] }, { "Effect": "Allow", "Action": [ "ssm:UpdateInstanceAssociationStatus" ], "Resource": [ "arn:aws:ssm:{{region}}:{{account}}:association/*", "arn:aws:ec2:{{region}}:{{account}}:instance/*", "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*" ] }, { "Effect": "Allow", "Action": [ "ssm:UpdateInstanceInformation" ], "Resource": [ "arn:aws:ec2:{{region}}:{{account}}:instance/*", "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*" ] }, { "Effect": "Allow", "Action": [ "ssm:GetDeployablePatchSnapshotForInstance", "ssm:GetManifest", "ssm:ListAssociations", "ssm:PutInventory", "ssm:PutConfigurePackageResult" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2messages:AcknowledgeMessage", "ec2messages:DeleteMessage", "ec2messages:FailMessage", "ec2messages:GetEndpoint" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2messages:GetMessages", "ec2messages:SendReply" ], "Resource": "*", "Condition": { "ArnLike": { "ssm:SourceInstanceARN": "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*" } } } ] }

4. IAM-Rolle für das EBS CSI-Treiber-Add-on

Die IAM-Rolle für den EBS-CSI-Treiber ist erforderlich, da der EBS CSI-Treiber persistente Volumes für Spaces-Workloads bereitstellt. Während die AWS -managed EBSCSIDriverAmazon-Richtlinie grundlegende Berechtigungen vorsieht, benötigen SageMaker HyperPod Cluster zusätzliche Funktionen wie die Erstellung schneller Snapshot-Wiederherstellungen, das Taggen clustereigener Volumes und attaching/detaching Volumes für -verwaltete Knoten. HyperPod Zu diesen Berechtigungen gehören auch spezifische Berechtigungen wie. SageMaker APIs sagemaker:AttachClusterNodeVolume Wenn der EBS CSI-Treiber nicht installiert ist, wird diese Rolle jetzt bei der Installation des Spaces-Add-ons automatisch von der SageMaker Konsole erstellt, sodass kein Eingreifen des Kunden erforderlich ist.

5. IAM-Rolle für das externe DNS-Add-on

Das externe DNS-Add-on verwaltet DNS-Einträge für Dienste und Eingangsressourcen auf dem HyperPod Cluster. Es stellt sicher, dass Space-Endpunkten und Cluster-Komponenten in den von Route 53 gehosteten Zonen des Kunden automatisch DNS-Namen zugewiesen werden können. Heutzutage installieren Kunden External DNS häufig manuell über eine 1-Klick-Option in der EKS-Konsole. Im Rahmen der Verbesserung der SageMaker Spaces-Erfahrung wird diese Rolle nun bei der Installation des Spaces-Add-ons automatisch von der SageMaker Konsole erstellt, sodass kein Eingreifen des Kunden erforderlich ist.

Einrichtung der Berechtigungen für den Zugriff auf SageMaker Spaces für das AWS Toolkit

Damit der Seitenbereich des Ressourcen-Explorers von AWS VS Code Toolkit Spaces erkennen und eine Verbindung zu SageMaker Spaces herstellen kann, sind die folgenden IAM-Berechtigungen erforderlich. Diese Berechtigungen ermöglichen es dem Toolkit, verfügbare SageMaker HyperPod Cluster aufzulisten, Cluster-Details abzurufen und ein Verbindungstoken für den zugehörigen Amazon EKS-Cluster abzurufen.

Erforderliche IAM-Richtlinie

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SageMakerListClusters", "Effect": "Allow", "Action": "sagemaker:ListClusters", "Resource": "*" }, { "Sid": "SageMakerDescribeCluster", "Effect": "Allow", "Action": "sagemaker:DescribeCluster", "Resource": "arn:aws:sagemaker:{{region}}:{{account}}:cluster/cluster-name" }, { "Sid": "EksDescribeCluster", "Effect": "Allow", "Action": "eks:DescribeCluster", "Resource": "arn:aws:eks:{{region}}:{{account}}:cluster/cluster-name" }, { "Sid": "EksGetToken", "Effect": "Allow", "Action": "eks:GetToken", "Resource": "*" } ] }

Empfehlungen zur Festlegung des Geltungsbereichs

  • Ersetzen Sie den Clusternamen durch die spezifischen SageMaker HyperPod Cluster, auf die Ihre Benutzer zugreifen müssen.

  • Die GetToken Aktion eks: unterstützt derzeit keine Einschränkungen auf Ressourcenebene und muss Resource: „*“ verwenden. Dies ist eine AWS Dienstbeschränkung. Die clientseitige Authentifizierung erfolgt über EKS-Zugriffseinträge.