

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à.

# Installazione di HyperPod Ray Endpoint Operator
<a name="sagemaker-hyperpod-ray-endpoint-operator"></a>

Il HyperPod Ray Endpoint Operator genera endpoint pubblici autenticati per i cluster Ray attivi. HyperPod Dopo l'installazione, è possibile accedere a Ray Dashboard in modo sicuro da qualsiasi luogo con accesso a Internet, inviare e monitorare i lavori e visualizzare i log e le metriche dei cluster senza configurarli. `kubectl port-forward`

**Importante**  
Prima dell'installazione, consulta [Le migliori pratiche di sicurezza per Ray Endpoint HyperPod Operator](sagemaker-hyperpod-ray-endpoint-operator-security.md) le linee guida su come proteggere la distribuzione.

## Prerequisiti
<a name="sagemaker-hyperpod-ray-endpoint-operator-prereqs"></a>
+ Il componente aggiuntivo SageMaker Spaces è ** attivo ** con l'accesso al browser web abilitato. Il HyperPod Ray Endpoint Operator dipende da questo. Per ulteriori informazioni, consulta [Configurazione del componente aggiuntivo Spaces](sagemaker-hyperpod-ray-spaces-addon-setup.md).
+ `kubectl`e `helm` installato, con `kubectl` configurazione per il tuo cluster.
+ Il componente aggiuntivo Amazon EKS Pod Identity Agent è installato sul cluster (richiesto per la firma KMS). Per ulteriori informazioni, consulta [ Configurare l'EKS Pod Identity Agent ](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-agent-setup.html) nella Guida per l'utente di * Amazon EKS. *

Per informazioni generali sull'installazione degli operatori su HyperPod, consulta [ Installazione degli operatori](https://docs.aws.amazon.com/sagemaker/latest/dg/operator-install.html).

## Come funziona l'autenticazione
<a name="sagemaker-hyperpod-ray-endpoint-operator-how-auth-works"></a>

Il HyperPod Ray Endpoint Operator utilizza JSON Web Tokens (JWT) di breve durata per autenticare l'accesso alle dashboard del cluster Ray. Quando richiedi l'URL di un dashboard, l'operatore verifica la tua identità tramite il server API Amazon EKS, conferma che hai creato il cluster Ray e restituisce un URL prefirmato. Quando apri questo URL, l'operatore scambia il token con un cookie di sessione.

Il token e il cookie di sessione sono entrambi associati all'endpoint pubblico di un singolo cluster Ray. Non possono essere utilizzati per accedere ad altri cluster tramite il percorso autenticato del HyperPod Ray Endpoint Operator.

I JWT sono firmati con chiavi che ruotano ogni 30 minuti. Quando una AWS KMS chiave è configurata, il rotatore la utilizza AWS KMS per generare il materiale relativo alla chiave per la firma. Quando non è configurata alcuna AWS KMS chiave, il rotatore genera le chiavi di firma localmente. Ti consigliamo di configurare una AWS KMS chiave, poiché fornisce un meccanismo di revoca fuori banda e un CloudTrail audit trail per gli eventi di generazione delle chiavi.

## Configura la firma KMS (scelta consigliata)
<a name="sagemaker-hyperpod-ray-endpoint-operator-kms-setup"></a>

Il HyperPod Ray Endpoint Operator ruota le chiavi di firma ogni 30 minuti. Quando una AWS KMS chiave è configurata, il rotatore la utilizza per generare nuovo materiale per la chiave di firma. Ciò fornisce due funzionalità aggiuntive che non sono disponibili con le chiavi generate localmente:
+ È possibile disabilitare la AWS KMS chiave per revocare tutte le sessioni senza richiedere l'accesso al cluster.
+ CloudTrail registra ogni evento di generazione delle chiavi per il controllo.

Per configurare la firma KMS, completa i passaggi seguenti.

1. Crea una AWS KMS chiave. Per ulteriori informazioni, consultare [Creazione di chiavi](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) nella *Guida per gli sviluppatori AWS KMS *.

   ```
   aws kms create-key \
     --key-spec SYMMETRIC_DEFAULT \
     --key-usage ENCRYPT_DECRYPT \
     --description "HyperPod Ray Endpoint Operator JWT signing"
   ```

1. Crea un ruolo IAM con la seguente politica di autorizzazioni minime. Per ulteriori informazioni, consulta [Creazione di ruoli IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) nella *Guida per l’utente IAM *.

   ```
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "kms:GenerateDataKey",
         "Resource": "arn:aws:kms:{{region}}:{{account-id}}:key/{{key-id}}"
       }
     ]
   }
   ```

1. Crea l'associazione Pod Identity. Per ulteriori informazioni, consulta [ Configurazione di un account di servizio Kubernetes per assumere un ruolo IAM con EKS Pod Identity ](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-association.html) nella * Amazon EKS User Guide. *

   ```
   aws eks create-pod-identity-association \
     --cluster-name {{eks-cluster-name}} \
     --namespace hyperpod-ray \
     --service-account hyperpod-ray-endpoint-operator-jwt-rotator \
     --role-arn arn:aws:iam::{{account-id}}:role/{{role-name}}
   ```

## Installa Ray Endpoint Operator HyperPod
<a name="sagemaker-hyperpod-ray-endpoint-operator-install"></a>

1. Clona il `sagemaker-hyperpod-cli` repository e controlla l'ultimo tag di rilascio.

   ```
   git clone https://github.com/aws/sagemaker-hyperpod-cli.git
   cd sagemaker-hyperpod-cli
   git checkout $(git tag --sort=-v:refname | head -n 1)
   ```

1. Installa con KMS-based firma (scelta consigliata).

   ```
   helm upgrade --install hyperpod-ray-endpoint-operator \
     ./helm_chart/HyperPodHelmChart/charts/hyperpod-ray-endpoint-operator \
     --namespace hyperpod-ray \
     --create-namespace \
     --set region={{region}} \
     --set domain={{your-route53-domain}} \
     --set manager.enableEndpointsByDefault={{true|false}} \
     --set kmsKeyArn="arn:aws:kms:{{region}}:{{account-id}}:key/{{key-id}}"
   ```

   Per l'installazione senza KMS (le chiavi di firma vengono generate localmente):

   ```
   helm upgrade --install hyperpod-ray-endpoint-operator \
     ./helm_chart/HyperPodHelmChart/charts/hyperpod-ray-endpoint-operator \
     --namespace hyperpod-ray \
     --create-namespace \
     --set region={{region}} \
     --set domain={{your-route53-domain}} \
     --set manager.enableEndpointsByDefault={{true|false}}
   ```

   Dove:
   + `domain`è il dominio Route 53 con cui è stato configurato il componente aggiuntivo SageMaker Spaces.
   + `manager.enableEndpointsByDefault`controlla se gli endpoint del dashboard autenticati vengono creati automaticamente per ogni risorsa Ray. Se impostata su`true`, tutte le risorse Ray (`RayCluster`,, `RayJob``RayService`,`RayCronJob`) ottengono automaticamente gli endpoint; le singole risorse possono disattivarle aggiungendole `access.sagemaker.amazonaws.com/enabled: "false"` alle proprie annotazioni sui metadati. Se impostato su`false`, non viene creato alcun endpoint a meno che una risorsa non lo accetti esplicitamente. `access.sagemaker.amazonaws.com/enabled: "true"`

1. Verificate che i pod operatori siano in esecuzione.

   ```
   kubectl get pods -n hyperpod-ray
   ```

## Genera un URL prefirmato
<a name="sagemaker-hyperpod-ray-endpoint-operator-presigned-url"></a>

Dopo aver installato HyperPod Ray Endpoint Operator, genera un URL prefirmato per una dashboard del cluster Ray utilizzando la CLI: HyperPod 

```
hyp create ray-dashboard-connection \
  --cluster-name {{ray-cluster-name}} \
  --namespace {{namespace}}
```

Questo comando esegue l'autenticazione tramite il contesto kubeconfig corrente, verifica che tu sia il proprietario del cluster e restituisce un URL prefirmato di breve durata. Apri l'URL in un browser per accedere alla dashboard di Ray.

**Nota**  
Per generare un URL prefirmato, il tuo account utente o servizio Kubernetes deve disporre dell'autorizzazione per `create` `RayDashboardConnection` le risorse del gruppo API. `connection.access.sagemaker.amazonaws.com`

Per l'invio programmatico dei lavori, utilizza la libreria Python [https://pypi.org/project/toolkit-for-ray-on-sagemaker-ai/](https://pypi.org/project/toolkit-for-ray-on-sagemaker-ai/) toolkit-for-ray-on-sagemaker-ai sul sito web PyPI con lo schema degli indirizzi invece di generare gli URL manualmente: `sagemaker_ray://`

```
ray job submit --address "sagemaker_ray://{{cluster-name}}/{{namespace}}" -- python train.py
```

`sagemaker_ray://`Lo schema di indirizzi gestisce l'autenticazione senza esporre un URL nell'output o nei log del terminale.

## Disinstallazione
<a name="sagemaker-hyperpod-ray-endpoint-operator-uninstall"></a>

```
helm uninstall hyperpod-ray-endpoint-operator -n hyperpod-ray
```

## Fasi successive
<a name="sagemaker-hyperpod-ray-endpoint-operator-next-steps"></a>

Dopo l'installazione, consulta le best practice [Le migliori pratiche di sicurezza per Ray Endpoint HyperPod Operator](sagemaker-hyperpod-ray-endpoint-operator-security.md) per la protezione dell'accesso all'interno del cluster, la gestione delle sessioni e il controllo dell'utilizzo del dashboard.