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 quando sono richiesti.
Tabella riassuntiva dei ruoli
| Ruolo IAM | Obbligatorio? | Scopo | Chi lo usa? | Personalizzazione consentita dalla SageMaker console? |
|---|---|---|---|---|
|
Ruolo di esecuzione del componente aggiuntivo Spaces |
Sempre richiesto |
Consente al controller Spaces di gestire Spaces, generare sessioni SSM predefinite URLs e gestire sessioni SSM |
Pod controller aggiuntivo (privilegiato) |
✔ Sì |
|
Ruolo del router all'interno del cluster |
Necessario per l'accesso WebUI |
Consente al pod del router di eseguire operazioni KMS per la firma JWT (autenticazione WebUI) |
Pod router interno al cluster (privilegiato) |
✔ Sì |
|
Ruolo dell'istanza gestita SSM |
Necessario per l'accesso remoto all'IDE |
Utilizzato da SSM Agent Sidecar per sessioni IDE SSH-over-SSM remote |
SSM Agent in Space IDE Pods (non un pod aggiuntivo) |
✔ Sì |
|
Componente aggiuntivo IAM Role for EBS CSI Driver |
Sempre richiesto |
Consente a EBS CSI Driver di eseguire create/attach/modify volumi per i carichi di lavoro Spaces |
Componente aggiuntivo EBS CSI Driver |
Creato automaticamente |
|
Componente aggiuntivo IAM Role for External DNS |
Necessario per l'accesso WebUI |
Garantisce che agli endpoint Space e ai componenti del cluster possano essere assegnati automaticamente nomi DNS nelle zone ospitate Route 53 del cliente. |
Componente aggiuntivo DNS esterno |
Creato automaticamente |
1. Ruolo di esecuzione del componente aggiuntivo Spaces (obbligatorio)
Il ruolo di esecuzione del componente aggiuntivo Spaces è sempre richiesto perché viene utilizzato dal pod controller del componente aggiuntivo SageMaker Spaces, un componente amministrativo installato tramite il componente aggiuntivo EKS. Questo ruolo consente al controller di gestire gli spazi, fornire risorse, interagire con SSM e generare predefiniti URLs per l'accesso remoto all'IDE e al WebUI. Supporta anche 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. Ruolo In-Cluster Router (richiesto per l'autenticazione WebUI)
Il ruolo In-Cluster 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 degli utenti a spazi specifici. Questo ruolo consente al router pod di generare chiavi dati e decrittografarle. Analogamente al ruolo del controller, impone 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 dell'istanza gestita SSM (richiesto per l'accesso IDE remoto)
Il ruolo dell'istanza gestita SSM viene passato al momento della registrazione dell'istanza gestita SSM per abilitare l'accesso IDE remoto. 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 di per sé non assume questo ruolo, ma lo fornisce solo durante la chiamata. 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. Componente aggiuntivo IAM Role for EBS CSI Driver
Il ruolo IAM per il driver CSI EBS è necessario perché il driver CSI EBS fornisce volumi persistenti per i carichi di lavoro di Spaces. Sebbene la Amazon EBSCSIDriver Policy AWS gestita fornisca autorizzazioni di base, SageMaker HyperPod i cluster richiedono funzionalità aggiuntive come la creazione di ripristini rapidi di snapshot, l'etichettatura dei volumi di proprietà del cluster e dei volumi per i nodi gestiti. attaching/detaching HyperPod Queste SageMaker APIs sagemaker:AttachClusterNodeVolume autorizzazioni includono anche autorizzazioni specifiche come. Se il driver EBS CSI 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. Componente aggiuntivo IAM Role for External DNS
Il componente aggiuntivo DNS esterno gestisce i record DNS per le risorse Services e Ingress sul cluster. HyperPod Garantisce che agli endpoint Space e ai componenti del cluster possano essere assegnati automaticamente nomi DNS nelle zone ospitate 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.
Configurazione delle autorizzazioni per AWS Toolkit to Access Spaces SageMaker
Per consentire al pannello laterale di esplorazione delle risorse di AWS VS Code Toolkit 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.
Policy 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 per l'ambito
-
Sostituisci il nome del cluster con i SageMaker HyperPod cluster specifici a cui gli 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.