Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Impostazione delle autorizzazioni
Ruoli richiesti per Add-on e relative dipendenze
Ruoli IAM richiesti per SageMaker Spaces on SageMaker HyperPod
Quando si abilitano le funzionalità di SageMaker Spaces (alias SageMaker IDE/Notebooks) su un cluster SageMaker HyperPod (EKS), è necessario creare e assegnare diversi ruoli IAM. Questi ruoli supportano l'accesso sicuro, il routing, le sessioni IDE remote e il provisioning dello storage EBS. La tabella seguente riassume i quattro ruoli e i periodi in cui sono richiesti.
Tabella riassuntiva dei ruoli
| Ruolo IAM | Obbligatorio? | Scopo | Chi lo usa? | Personalizzazione consentita da SageMaker Console? |
|---|---|---|---|---|
|
Ruolo di Add-on esecuzione degli spazi |
Sempre obbligatorio |
Consente al controller Spaces di gestire Spaces, generare URL prefirmati, gestire sessioni SSM |
Add-on controller pod (privilegiato) |
✔ Sì |
|
In-Cluster Ruolo del router |
Necessario per l'accesso a WebUI |
Consente al router pod di eseguire operazioni KMS per la firma JWT (autenticazione WebUI) |
In-cluster router pod (privilegiato) |
✔ Sì |
|
Ruolo di istanza gestita da SSM |
Necessario per l'accesso remoto all'IDE |
Utilizzato dall'agente SSM Sidecar per sessioni IDE SSH-over-SSM remote |
SSM Agent in Space IDE Pods (non un pod aggiuntivo) |
✔ Sì |
|
Ruolo IAM per EBS CSI Driver Add-on |
È sempre richiesto |
Consente a EBS CSI Driver di create/attach /modificare i volumi per i carichi di lavoro di Spaces |
Driver EBS CSI Add-on |
Creato automaticamente |
|
Ruolo IAM per DNS esterno Add-on |
Necessario per l'accesso a WebUI |
Garantisce che agli endpoint Space e ai componenti del cluster possano essere assegnati automaticamente nomi DNS nelle zone ospitate su Route 53 del cliente. |
DNS esterno Add-on |
Creato automaticamente |
1. Ruolo Add-on di esecuzione degli spazi (obbligatorio)
Il ruolo di Add-on esecuzione di Spaces è sempre obbligatorio perché viene utilizzato dal pod del controller aggiuntivo SageMaker Spaces, un componente amministrativo installato tramite il componente aggiuntivo EKS. Questo ruolo consente al controller di gestire Spaces, fornire risorse, interagire con SSM e generare URL prefirmati per l'accesso remoto all'IDE e all'interfaccia WebUI. Supporta inoltre l'accesso KMS utilizzato per la firma delle richieste per l'autenticazione delle richieste https WebUI. Questo ruolo può essere creato automaticamente quando il componente aggiuntivo SageMaker Spaces viene installato tramite la Console. SageMaker Per la creazione manuale, AWS fornisce la policy AmazonSageMakerSpacesControllerPolicy gestita.
Politica di fiducia di riferimento
{ "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 Ruolo del router (richiesto per l'autenticazione WebUI)
Il ruolo In-Cluster del router viene utilizzato dal router pod, un componente privilegiato che autentica le sessioni WebUI di Spaces. Il router utilizza una chiave KMS per creare e firmare token JWT che autorizzano l'accesso dell'utente a Spaces specifici. Questo ruolo consente al router pod di generare chiavi di dati e decrittografarle. Analogamente al ruolo del controller, applica la sicurezza utilizzando restrizioni di ambito basate su tag e cluster. Questo ruolo può essere generato automaticamente quando il componente aggiuntivo Spaces viene installato tramite la AWS SageMaker Console, ma i clienti possono crearlo manualmente.
Politica di fiducia di riferimento
{ "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}}" } } } ] }
Politica di autorizzazione di riferimento
{ "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. Ruolo di istanza gestita SSM (richiesto per l'accesso remoto all'IDE)
Il ruolo di istanza gestita SSM viene passato quando si registra l'istanza gestita SSM per abilitare l'accesso remoto all'IDE. Questo ruolo consente all'agente SSM di registrare il pod come istanza gestita SSM e utilizzare i canali SSM Session Manager per la connettività IDE remota (). SSH-over-SSM Può essere creato automaticamente quando si utilizza la console. AWS
SageMaker Per le distribuzioni manuali, i clienti devono creare questo ruolo e fornirlo al componente aggiuntivo Spaces. Il controller pod stesso non assume questo ruolo, ma lo fornisce solo durante le chiamate. ssm:CreateActivation
Politica di fiducia di riferimento
{ "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}}:*" } } } ] }
Politica sulle autorizzazioni di riferimento
{ "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. Ruolo IAM per EBS CSI Driver Add-on
Il ruolo IAM per il driver EBS CSI è richiesto perché il driver EBS CSI esegue il provisioning di volumi persistenti per i carichi di lavoro di Spaces. Sebbene AWS-managed AmazonEBSCSIDriverPolicy fornisca le autorizzazioni di base, SageMaker HyperPod i cluster richiedono funzionalità aggiuntive come la creazione di ripristini rapidi delle istantanee, l'etichettatura dei volumi di proprietà del cluster e dei volumi per i nodi. attaching/detaching HyperPod-managed SageMaker-specific Queste autorizzazioni includono anche API come. sagemaker:AttachClusterNodeVolume Se EBS CSI Driver non è installato, questo ruolo verrà ora creato automaticamente dalla SageMaker Console durante l'installazione del componente aggiuntivo Spaces, senza richiedere alcuna azione da parte del cliente.
5. Ruolo IAM per DNS esterno Add-on
L'add-on DNS esterno gestisce i record DNS per le risorse Services e Ingress sul cluster. HyperPod Assicura che agli endpoint Space e ai componenti del cluster possano essere assegnati automaticamente nomi DNS nelle zone ospitate su Route 53 del cliente. Oggi, i clienti spesso installano il DNS esterno manualmente tramite un'opzione con 1 clic nella console EKS. Come parte del miglioramento dell'esperienza di SageMaker Spaces, questo ruolo verrà ora creato automaticamente dalla SageMaker Console durante l'installazione del componente aggiuntivo Spaces, senza richiedere alcuna azione da parte del cliente.
Prerequisiti per Direct SSH
Direct SSH richiede i seguenti prerequisiti di infrastruttura. Se l'accesso tramite browser Web è già abilitato sul cluster, questi prerequisiti sono già presenti. Per ulteriori informazioni sull'accesso tramite browser Web, vedereAccesso tramite browser Web.
-
ExternalDNS: distribuito tramite componenti aggiuntivi EKS, con un ruolo IAM con autorizzazioni Route 53. Configura ExternalDNS con
--policy=sync(non l'impostazione predefinitaupsert-only) in modo che ExternalDNS rimuova i record DNS quando elimini uno spazio di lavoro. -
Amazon Route 53 Private Hosted Zone: un dominio o sottodominio di tua proprietà, registrato in Route 53 e associato al cluster VPC.
-
Connettività VPC dai computer client: VPN o AWS Direct Connect dai computer client al cluster VPC. Poiché Direct SSH espone la porta sull'indirizzo IP privato del pod all'interno del VPC, puoi connetterti solo se la tua macchina client è connessa di rete a quel VPC, tramite lo stesso VPC, il peering VPC, una VPN o Direct Connect.
-
AWS Load Balancer Controller: necessario se si utilizza anche l'accesso tramite browser Web (ingresso ALB). Per le note HyperPod-specific sull'installazione, vedere. AWS Load Balancer Controller: HyperPod requisito VpCID
Per istruzioni dettagliate di configurazione e verifica, vedere(Facoltativo) Impostazione dei prerequisiti.
Configurazione delle autorizzazioni per AWS Toolkit per accedere agli spazi SageMaker
Per consentire al pannello laterale di AWS VS Code Toolkit Resource Explorer di rilevare e connettersi a SageMaker Spaces, sono necessarie le seguenti autorizzazioni IAM. Queste autorizzazioni consentono al Toolkit di elencare SageMaker HyperPod i cluster disponibili, recuperare i dettagli del cluster e ottenere un token di connessione per il cluster Amazon EKS associato.
Politica IAM richiesta
{ "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": "*" } ] }
Raccomandazioni relative all'ambito
-
Sostituisci il nome del cluster con i SageMaker HyperPod cluster specifici a cui i tuoi utenti devono accedere.
-
L'GetToken azione eks: attualmente non supporta le restrizioni a livello di risorsa e deve utilizzare Resource: «*». Questa è una limitazione del servizio. AWS L'autenticazione lato client viene eseguita tramite le voci di accesso EKS.