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
Les rôles requis pour Add-on et leurs dépendances
Rôles IAM requis pour les SageMaker espaces sur SageMaker HyperPod
Lors de l'activation SageMaker des fonctionnalités Spaces (SageMaker également appelées 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 à quel moment 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' Add-on exécution des espaces |
Toujours obligatoire |
Permet au contrôleur Spaces de gérer les espaces, de générer des URL présignées et de gérer les sessions SSM |
Add-on module de commande (privilégié) |
✔ Oui |
|
In-Cluster Rôle du routeur |
Requis pour accéder à WebUI |
Permet au module routeur d'effectuer des opérations KMS pour la signature JWT (authentification WebUI) |
In-cluster pod du routeur (privilégié) |
✔ Oui |
|
Rôle d'instance gérée SSM |
Requis pour l'accès à distance à l'IDE |
Utilisé par le sidecar de l'agent SSM pour SSH-over-SSM les sessions IDE distantes |
SSM Agent in Space IDE Pods (il ne s'agit pas d'un module complémentaire) |
✔ Oui |
|
Rôle IAM pour EBS CSI Driver Add-on |
Toujours obligatoire |
Permet au pilote EBS CSI de create/attach /modifier les volumes pour les charges de travail Spaces |
Pilote EBS CSI Add-on |
Créé automatiquement |
|
Rôle IAM pour le DNS externe Add-on |
Requis pour accéder à WebUI |
Il 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. |
DNS externe Add-on |
Créé automatiquement |
1. Rôle Add-on d'exécution des espaces (obligatoire)
Le rôle Add-on d'exécution de Spaces est toujours requis car il est utilisé par le module 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 provisionner des ressources, d'interagir avec SSM et de générer des URL présignées pour l'accès à l'IDE distant et à l'interface utilisateur Web. Il prend également en charge l'accès KMS utilisé pour la signature des demandes afin d'authentifier les requêtes https 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 en matière 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. In-Cluster Rôle du routeur (obligatoire pour l'authentification WebUI)
Le rôle de In-Cluster routeur est utilisé par le pod routeur, un composant privilégié qui authentifie les sessions Spaces WebUI. 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 du routeur de générer des clés de données et de les déchiffrer. Semblable au rôle de contrôleur, il assure 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 en matière 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ée 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 à distance à l'IDE. Ce rôle permet à l'agent SSM d'enregistrer le pod en tant qu'instance gérée SSM et d'utiliser les canaux SSM Session Manager pour la connectivité Remote IDE ()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 pod du contrôleur lui-même n'assume pas ce rôle ; il le fournit uniquement lors d'un appelssm:CreateActivation.
Politique de confiance en matière 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 EBS CSI Driver Add-on
Le rôle IAM du pilote EBS CSI est obligatoire car le pilote EBS CSI provisionne des volumes persistants pour les charges de travail Spaces. Alors que le AWS-managed AmazonEBSCSIDriverPolicy fournit des autorisations de base, les SageMaker HyperPod clusters nécessitent des fonctionnalités supplémentaires telles que la création de restaurations rapides de snapshots, le balisage des volumes appartenant au cluster et des volumes pour les nœuds. attaching/detaching HyperPod-managed Ces autorisations incluent également des SageMaker-specific API 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 aucune action du client.
5. Rôle IAM pour le DNS externe Add-on
Le module complémentaire DNS externe gère les enregistrements DNS pour les ressources de services et d'entrée sur le HyperPod cluster. Il 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 aucune action du client.
Prérequis pour le protocole SSH direct
Le SSH direct nécessite les prérequis d'infrastructure suivants. Si l'accès au navigateur Web est déjà activé sur votre cluster, ces prérequis sont déjà en place. Pour plus d'informations sur l'accès au navigateur Web, consultezAccès au navigateur Web.
-
ExternalDNS : déployé via des modules complémentaires EKS, avec un rôle IAM doté d'autorisations Route 53. Configurez ExternalDNS avec
--policy=sync(et non la valeur par défautupsert-only) afin qu'ExternalDNS supprime les enregistrements DNS lorsque vous supprimez un espace de travail. -
Zone hébergée privée Amazon Route 53 : domaine ou sous-domaine que vous possédez, enregistré dans Route 53 et associé au cluster VPC.
-
Connectivité VPC depuis les machines clientes : VPN ou connexion AWS directe des machines clientes au VPC du cluster. Étant donné que Direct SSH expose le port sur l'adresse IP privée du pod dans le VPC, vous ne pouvez vous connecter que si votre machine cliente dispose d'une connectivité réseau à ce VPC, via le même VPC, le peering VPC, un VPN ou Direct Connect.
-
AWS Load Balancer Controller : obligatoire si vous utilisez également l'accès par navigateur Web (entrée ALB). Pour les remarques HyperPod-specific relatives à l'installation, voirAWS Contrôleur d'équilibrage de charge : exigence HyperPod vPCID.
Pour obtenir des instructions détaillées de configuration et de vérification, consultez(Facultatif) Configuration des prérequis.
Configuration des autorisations pour AWS Boîte à outils pour accéder aux SageMaker espaces
Pour permettre au panneau latéral de l'explorateur de ressources du AWS VS Code Toolkit de découvrir SageMaker Spaces et de s'y connecter, les autorisations IAM suivantes sont requises. Ces autorisations permettent au Toolkit de répertorier les SageMaker HyperPod clusters disponibles, de récupérer les détails des clusters 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 relatives à la portée
-
Remplacez le nom du cluster 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 de service. L'authentification côté client est effectuée via les entrées d'accès EKS.