

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

# Le migliori pratiche di sicurezza per Ray Endpoint HyperPod Operator
<a name="sagemaker-hyperpod-ray-endpoint-operator-security"></a>

Le seguenti best practice consentono di proteggere l'implementazione di Ray Endpoint Operator HyperPod . Per le istruzioni di installazione, consulta [Installazione di HyperPod Ray Endpoint Operator](sagemaker-hyperpod-ray-endpoint-operator.md).

## Configura la firma KMS
<a name="sagemaker-hyperpod-ray-endpoint-operator-security-kms"></a>

Si consiglia di installare HyperPod Ray Endpoint Operator con una AWS KMS chiave in modo che le chiavi di firma JWT vengano generate da AWS KMS anziché localmente. Ciò fornisce un meccanismo di revoca fuori banda: è possibile disabilitare la AWS KMS chiave per invalidare tutte le sessioni senza richiedere l'accesso al cluster. CloudTrail registra inoltre ogni evento di generazione delle chiavi, fornendo una pista di controllo per la firma delle rotazioni delle chiavi. Per le istruzioni di configurazione, vedere[Configura la firma KMS (scelta consigliata)](sagemaker-hyperpod-ray-endpoint-operator.md#sagemaker-hyperpod-ray-endpoint-operator-kms-setup).

## Non condividere URL prefirmati
<a name="sagemaker-hyperpod-ray-endpoint-operator-security-presigned-urls"></a>

Un URL prefirmato garantisce l'accesso autenticato alla dashboard di un cluster Ray, che include registri di lavoro, script, metriche e variabili di ambiente. Chiunque disponga dell'URL può accedere alla dashboard fino alla scadenza del token. Il token incorporato nell'URL è valido per 15 minuti. Se si accede all'URL all'interno di quella finestra, la sessione risultante rimane valida per un massimo di 6 ore a meno che non revochi tutte le sessioni.

Sia il token che il cookie di sessione hanno come ambito l'endpoint pubblico di un singolo cluster e non possono essere utilizzati per accedere ad altri cluster tramite il percorso autenticato di HyperPod Ray Endpoint Operator.

## Non memorizzate i segreti nelle variabili di ambiente di lavoro di Ray
<a name="sagemaker-hyperpod-ray-endpoint-operator-security-secrets"></a>

Le variabili di ambiente e gli script entrypoint sono visibili tramite la dashboard di Ray. Usa invece Kubernetes Secrets o Secrets Manager. Per ulteriori informazioni, vedi [ Che cos'è? AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)nella Guida *AWS Secrets Manager per l'utente*.

## Usa sagemaker\_ray://per l'invio programmatico dei lavori
<a name="sagemaker-hyperpod-ray-endpoint-operator-security-sagemaker-ray"></a>

Lo schema di `sagemaker_ray://` indirizzi gestisce l'autenticazione senza esporre un URL nell'output o nei log del terminale. La libreria Python [ toolkit-for-ray-on-sagemaker-ai sul sito web ](https://pypi.org/project/toolkit-for-ray-on-sagemaker-ai/) PyPI registra questo schema, quindi la CLI Jobs standard di Ray e l'SDK Python si autenticano tramite l'endpoint protetto del cluster. La libreria è preinstallata SageMaker nelle immagini di AI Distribution. Per ulteriori informazioni, consulta [Invio di lavori in remoto con la libreria del toolkit](sagemaker-hyperpod-ray-remote-job-submission.md).

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

## Limita l'accesso all'interno del cluster alle dashboard Ray
<a name="sagemaker-hyperpod-ray-endpoint-operator-security-in-cluster"></a>

Il HyperPod Ray Endpoint Operator autentica l'accesso tramite l'endpoint pubblico, ma la porta Ray dashboard (8265) sul servizio principale è accessibile dall'interno della rete del cluster senza autenticazione. Per limitare l'accesso al dashboard da carichi di lavoro non Ray, abilita la modalità di autenticazione Kubernetes RBAC di Ray (e sul contenitore principale). `RAY_AUTH_MODE=token` `RAY_ENABLE_K8S_TOKEN_AUTH=true` Ciò richiede Ray 2.55 o successivo e 1.6 o successivo. KubeRay Quando è abilitato, Ray head rifiuta le richieste che non contengono un token ServiceAccount Kubernetes valido con autorizzazione. `ray:write` Per ulteriori informazioni, consultate la configurazione [ KubeRay RBAC nella documentazione di Ray. ](https://docs.ray.io/en/latest/cluster/kubernetes/user-guides/helm-chart-rbac.html)

Per un maggiore isolamento tra gli utenti che condividono un cluster, esegui il deployment RayClusters in namespace separati e applica NetworkPolicies questa limitazione dell'ingresso sulla porta 8265 ai soli pod Traefik nello spazio dei nomi degli operatori (). `hyperpod-ray` Ciò richiede un plug-in CNI che lo applichi, ad esempio Amazon VPC CNI with. NetworkPolicies `ENABLE_NETWORK_POLICY=true` Per ulteriori informazioni, consulta le politiche [ di rete ](https://docs.aws.amazon.com/eks/latest/userguide/cni-network-policy.html) Kubernetes nella Amazon EKS User Guide. * *

Inoltre, riduci l'ambito delle autorizzazioni RBAC per gli utenti finali. Nega quanto segue:
+ `pods/portforward`su Ray Head Pods
+ `pods/exec`su pod operator o Traefik
+ `create``roles`su o `rolebindings`
+ `get` - `secrets`
+ `impersonate`sugli account di servizio

Per ulteriori informazioni su Kubernetes RBAC, consulta Gestione delle [ identità e degli accessi ](https://docs.aws.amazon.com/eks/latest/userguide/security-iam.html) nella Amazon EKS User Guide. * *

## Usa nomi di sessione univoci per i ruoli di esecuzione condivisi
<a name="sagemaker-hyperpod-ray-endpoint-operator-security-session-names"></a>

Il HyperPod Ray Endpoint Operator identifica gli utenti in base al loro ARN principale IAM completo, che include il nome della sessione del ruolo (ad esempio,). `arn:aws:sts::123456789012:assumed-role/DataScientist/alice` Se più utenti assumono lo stesso ruolo IAM con lo stesso nome di sessione, l'operatore non può distinguerli e li tratta come la stessa identità.

Per abilitare il controllo dell'accesso per utente quando gli utenti condividono un ruolo di esecuzione, configura nomi di sessione univoci per ogni utente. Per ulteriori informazioni, consulta [ sts: RoleSessionName ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_rolesessionname) nella * IAM User Guide. *

## Revoca delle sessioni
<a name="sagemaker-hyperpod-ray-endpoint-operator-security-revoke"></a>

Per revocare tutte le sessioni (richiede l'accesso al cluster), esegui i seguenti comandi. Ciò invalida le sessioni per tutti gli utenti su tutti i cluster Ray del cluster Amazon EKS.

```
kubectl patch secret hyperpod-ray-endpoint-operator-extensionapi-jwt-secret \
  -n hyperpod-ray --type merge -p '{"data":null}'

kubectl create job --from=cronjob/hyperpod-ray-endpoint-operator-jwt-rotator \
  manual-rotate -n hyperpod-ray
```

Per revocare tutte le sessioni tramite AWS KMS (non è richiesto l'accesso al cluster), disabilita la AWS KMS chiave in o utilizzando il Console di gestione AWS . AWS CLI Per ulteriori informazioni, consulta [ Abilitazione e disabilitazione delle chiavi ](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html) nella Guida per gli *AWS KMS sviluppatori. *

```
aws kms disable-key --key-id {{key-id}}
```

Le chiavi di firma esistenti scadono entro 30 minuti. Le sessioni attive stabilite con le chiavi di firma precedenti rimangono valide fino a quando tali chiavi non vengono invalidate dalla rotazione. Dopo che il rotatore ha generato nuove chiavi, le sessioni firmate con le vecchie chiavi non possono più essere verificate e vengono effettivamente revocate.

## Accesso al pannello di controllo
<a name="sagemaker-hyperpod-ray-endpoint-operator-security-audit"></a>

Ti consigliamo di installare il componente aggiuntivo Amazon CloudWatch Observability Amazon EKS per la raccolta e la conservazione dei log. Per ulteriori informazioni, consulta [ Installare il componente aggiuntivo CloudWatch Observability EKS ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Observability-EKS-addon.html) nella Amazon User Guide. * CloudWatch *

L'operatore HyperPod Ray Endpoint scrive i log di accesso `/aws/containerinsights/{{eks-cluster-name}}/application` dal contenitore. `authmiddleware` Cerca:
+ `"Session established"`— registrato quando un token JWT viene scambiato con successo con un cookie di sessione.
+ `"cluster accessed"`— connesso a ogni richiesta successiva che utilizza il cookie di sessione.

## Mantieni aggiornato il grafico di Helm
<a name="sagemaker-hyperpod-ray-endpoint-operator-security-helm-updates"></a>

**Importante**  
Il grafico distribuito non riceve automaticamente gli aggiornamenti di sicurezza. È necessario eseguire l'aggiornamento manuale a un grafico più recente quando sarà disponibile.

Ti consigliamo di eseguire regolarmente l'aggiornamento alla versione più recente del grafico HyperPod Ray Endpoint Operator Helm per assicurarti di disporre delle correzioni e dei miglioramenti di sicurezza più recenti. Durante l'aggiornamento, passate al comando Helm: `install` `upgrade`

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