Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration d’autorisations
Rôles requis pour le module complémentaire et ses dépendances
Rôles IAM requis pour les SageMaker espaces sur SageMaker HyperPod
Lorsque vous activez SageMaker les fonctionnalités Spaces (alias SageMaker IDE/Notebooks) sur un cluster SageMaker HyperPod (EKS), plusieurs rôles IAM doivent être créés et attribués. Ces rôles prennent en charge l'accès sécurisé, le routage, les sessions IDE distantes et le provisionnement du stockage EBS. Le tableau suivant récapitule les quatre rôles et indique dans quels cas ils sont requis.
Tableau récapitulatif des rôles
| Rôle IAM | Obligatoire ? | Objectif | Qui l'utilise ? | Personnalisation autorisée par SageMaker la console ? |
|---|---|---|---|---|
|
Rôle d'exécution du module complémentaire Spaces |
Toujours nécessaire |
Permet au contrôleur Spaces de gérer les espaces, de générer des sessions présignées et de gérer URLs des sessions SSM |
Module de commande supplémentaire (privilégié) |
✔ Oui |
|
Rôle de routeur intégré au cluster |
Nécessaire pour accéder à WebUI |
Permet au module routeur d'effectuer des opérations KMS pour la signature JWT (authentification WebUI) |
Module de routeur intégré au cluster (privilégié) |
✔ Oui |
|
Rôle d'instance gérée SSM |
Nécessaire pour l'accès à distance à l'IDE |
Utilisé par l'agent SSM sidecar pour SSH-over-SSM les sessions IDE distantes |
Agent SSM dans les pods Space IDE (il ne s'agit pas d'un module complémentaire) |
✔ Oui |
|
Rôle IAM pour le module complémentaire EBS CSI Driver |
Toujours nécessaire |
Permet au pilote EBS CSI d'accéder à des create/attach/modify volumes pour les charges de travail Spaces |
Module complémentaire du pilote EBS CSI |
Créé automatiquement |
|
Rôle IAM pour le module complémentaire DNS externe |
Nécessaire pour l'accès à WebUI |
Cela garantit que les points de terminaison Space et les composants du cluster peuvent se voir attribuer automatiquement des noms DNS dans les zones hébergées Route 53 du client. |
Module complémentaire DNS externe |
Créé automatiquement |
1. Rôle d'exécution du module complémentaire Spaces (obligatoire)
Le rôle d'exécution du module complémentaire Spaces est toujours requis car il est utilisé par le module de contrôleur complémentaire SageMaker Spaces, un composant administratif installé via le module complémentaire EKS. Ce rôle permet au contrôleur de gérer les espaces, de fournir des ressources, d'interagir avec SSM et de générer des fichiers présignés URLs pour l'accès à distance à l'IDE et à WebUI. Il prend également en charge l'accès KMS utilisé pour la signature des demandes afin d'authentifier les requêtes https de WebUI. Ce rôle peut être créé automatiquement lorsque le module complémentaire SageMaker Spaces est installé via la SageMaker console. Pour la création manuelle, AWS fournit la politique AmazonSageMakerSpacesControllerPolicy gérée.
Politique de confiance de référence
{ "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. Rôle de routeur intégré au cluster (requis pour l'authentification WebUI)
Le rôle de routeur intégré au cluster est utilisé par le module routeur, un composant privilégié qui authentifie les sessions WebUI de Spaces. Le routeur utilise une clé KMS pour créer et signer des jetons JWT qui autorisent l'accès des utilisateurs à des espaces spécifiques. Ce rôle permet au module routeur de générer des clés de données et de les déchiffrer. À l'instar du rôle de contrôleur, il renforce la sécurité à l'aide de restrictions de portée basées sur des balises et des clusters. Ce rôle peut être généré automatiquement lorsque le module complémentaire Spaces est installé via la AWS SageMaker console, mais les clients peuvent le créer manuellement.
Politique de confiance de référence
{ "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}}" } } } ] }
Politique d'autorisation de référence
{ "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. Rôle d'instance géré par SSM (requis pour l'accès à distance à l'IDE)
Le rôle d'instance gérée SSM est transmis lors de l'enregistrement de l'instance gérée SSM pour activer l'accès IDE à distance. Ce rôle permet à l'agent SSM d'enregistrer le pod en tant qu'instance gérée par SSM et d'utiliser les canaux du gestionnaire de session SSM pour la connectivité IDE à distance (SSH-over-SSM). Il peut être créé automatiquement lors de l'utilisation de la AWS SageMaker console. Pour les déploiements manuels, les clients doivent créer ce rôle et le fournir au module complémentaire Spaces. Le module contrôleur lui-même n'assume pas ce rôle ; il le fournit uniquement lors d'un appelssm:CreateActivation.
Politique de confiance de référence
{ "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}}:*" } } } ] }
Politique d'autorisations de référence
{ "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. Rôle IAM pour le module complémentaire EBS CSI Driver
Le rôle IAM pour le pilote EBS CSI est requis car le pilote EBS CSI provisionne des volumes persistants pour les charges de travail de Spaces. Alors que la EBSCSIDriverpolitique Amazon AWS gérée fournit des autorisations de base, les SageMaker HyperPod clusters nécessitent des fonctionnalités supplémentaires telles que la création de restaurations instantanées rapides, le balisage des volumes appartenant aux clusters et attaching/detaching des volumes pour les nœuds gérés. HyperPod Ces autorisations incluent également des autorisations SageMaker spécifiques, APIs telles quesagemaker:AttachClusterNodeVolume. Si le pilote EBS CSI n'est pas installé, ce rôle sera désormais automatiquement créé par la SageMaker console lors de l'installation du module complémentaire Spaces, sans intervention du client.
5. Rôle IAM pour le module complémentaire DNS externe
Le module complémentaire DNS externe gère les enregistrements DNS pour les services et les ressources d'entrée sur le HyperPod cluster. Cela garantit que les points de terminaison Space et les composants du cluster peuvent se voir attribuer automatiquement des noms DNS dans les zones hébergées Route 53 du client. Aujourd'hui, les clients installent souvent le DNS externe manuellement via une option en un clic dans la console EKS. Dans le cadre de l'amélioration de l'expérience SageMaker Spaces, ce rôle sera désormais automatiquement créé par la SageMaker console lors de l'installation du module complémentaire Spaces, sans intervention du client.
Configuration des autorisations pour le AWS Toolkit pour accéder aux SageMaker espaces
Pour permettre au panneau latéral de l'explorateur de ressources AWS VS Code Toolkit de découvrir et de se connecter à SageMaker Spaces, les autorisations IAM suivantes sont requises. Ces autorisations permettent au kit d'outils de répertorier les SageMaker HyperPod clusters disponibles, de récupérer les détails du cluster et d'obtenir un jeton de connexion pour le cluster Amazon EKS associé.
Politique IAM requise
{ "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": "*" } ] }
Recommandations de cadrage
-
Remplacez cluster-name par le ou les SageMaker HyperPod clusters spécifiques auxquels vos utilisateurs doivent accéder.
-
L'GetToken action eks : ne prend actuellement pas en charge les restrictions au niveau des ressources et doit utiliser Resource : « * ». Il s'agit d'une limitation AWS du service. L'authentification côté client est effectuée par le biais des entrées d'accès EKS.