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.
Meilleures pratiques de sécurité pour le HyperPod Ray Endpoint Operator
Les bonnes pratiques suivantes vous aident à sécuriser votre déploiement de HyperPod Ray Endpoint Operator. Pour obtenir des instructions d’installation, consultez Installation du HyperPod Ray Endpoint Operator.
Configuration de la signature KMS
Nous vous recommandons d'installer HyperPod Ray Endpoint Operator avec une AWS KMS clé afin que les clés de signature JWT soient générées depuis et AWS KMS non localement. Cela fournit un mécanisme de révocation hors bande : vous pouvez désactiver la AWS KMS clé pour invalider toutes les sessions sans avoir besoin d'accéder au cluster. CloudTrail enregistre également chaque événement de génération de clés, ce qui vous donne une piste d'audit pour signer les rotations de clés. Pour les instructions de configuration, consultezConfigurer la signature KMS (recommandé).
Ne partagez pas d'URL présignées
Une URL présignée accorde un accès authentifié au tableau de bord d'un cluster Ray, qui comprend les journaux des tâches, les scripts, les mesures et les variables d'environnement. Toute personne disposant de l'URL peut accéder au tableau de bord jusqu'à l'expiration du jeton. Le jeton intégré à l'URL est valide pendant 15 minutes. Si l'URL est accessible dans cette fenêtre, la session qui en résulte reste valide jusqu'à 6 heures, sauf si vous révoquez toutes les sessions.
Le jeton et le cookie de session sont limités au point de terminaison public d'un seul cluster et ne peuvent pas être utilisés pour accéder à d'autres clusters via le chemin authentifié du HyperPod Ray Endpoint Operator.
Ne stockez pas de secrets dans les variables d'environnement de travail Ray
Les variables d'environnement et les scripts de point d'entrée sont visibles via le tableau de bord Ray. Utilisez plutôt Kubernetes Secrets ou Secrets Manager. Pour plus d'informations, voir Qu'est-ce que c'est AWS Secrets Manager ? dans le Guide de AWS Secrets Manager l'utilisateur.
Utilisez sagemaker_ray ://pour la soumission de tâches programmatiques
Le schéma d'sagemaker_ray://adresses gère l'authentification sans exposer d'URL dans la sortie du terminal ou dans les journaux. La bibliothèque Python
ray job submit --address "sagemaker_ray://cluster-name/namespace" -- python train.py
Restreindre l'accès aux tableaux de bord Ray au sein du cluster
Le HyperPod Ray Endpoint Operator authentifie l'accès via le point de terminaison public, mais le port du tableau de bord Ray (8265) du service principal est accessible depuis le réseau du cluster sans authentification. Pour limiter l'accès au tableau de bord à partir de charges de travail autres que Ray, activez le mode d'authentification Kubernetes RBAC de Ray (RAY_AUTH_MODE=tokenet RAY_ENABLE_K8S_TOKEN_AUTH=true sur le conteneur principal). Cela nécessite Ray 2.55 ou version ultérieure et KubeRay 1.6 ou version ultérieure. Lorsqu'elle est activée, la tête Ray rejette les demandes qui ne contiennent pas de ServiceAccount jeton Kubernetes valide avec autorisation. ray:write Pour plus d'informations, consultez la section Configuration KubeRay RBAC
Pour renforcer l'isolation entre les utilisateurs qui partagent un cluster, déployez RayClusters dans des espaces de noms distincts et appliquez NetworkPolicies cette restriction d'entrée sur le port 8265 aux seuls pods Traefik de l'espace de noms de l'opérateur (). hyperpod-ray Cela nécessite un plug-in CNI qui s'applique NetworkPolicies, tel que le Amazon VPC CNI avec. ENABLE_NETWORK_POLICY=true Pour plus d'informations, consultez les politiques réseau de Kubernetes dans le guide de l'utilisateur Amazon EKS.
En outre, limitez les autorisations RBAC pour les utilisateurs finaux. Refusez ce qui suit :
-
pods/portforwardsur les capsules Ray Head -
pods/execsur les pods Traefik -
createsurrolesourolebindings -
getsursecrets -
impersonatesur les comptes de service
Pour plus d'informations sur Kubernetes RBAC, consultez la section Gestion des identités et des accès dans le guide de l'utilisateur Amazon EKS.
Utiliser des noms de session uniques pour les rôles d'exécution partagés
Le HyperPod Ray Endpoint Operator identifie les utilisateurs par leur ARN principal IAM complet, qui inclut le nom de la session de rôle (par exemple,arn:aws:sts::123456789012:assumed-role/DataScientist/alice). Si plusieurs utilisateurs assument le même rôle IAM avec le même nom de session, l'opérateur ne peut pas les distinguer et les traite comme ayant la même identité.
Pour activer le contrôle d'accès par utilisateur lorsque les utilisateurs partagent un rôle d'exécution, configurez des noms de session uniques pour chaque utilisateur. Pour plus d'informations, consultez sts : RoleSessionName dans le Guide de l'utilisateur IAM.
Révocation de sessions
Pour révoquer toutes les sessions (nécessite un accès au cluster), exécutez les commandes suivantes. Cela invalide les sessions pour tous les utilisateurs sur tous les clusters Ray du 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
Pour révoquer toutes les sessions via AWS KMS (aucun accès au cluster n'est requis), désactivez la AWS KMS touche dans le Console de gestion AWS ou à l'aide du AWS CLI. Pour plus d'informations, consultez la section Activation et désactivation des touches dans le Guide du AWS KMS développeur.
aws kms disable-key --key-idkey-id
Les clés de signature existantes expirent dans les 30 minutes. Les sessions actives qui ont été établies avec les clés de signature précédentes restent valides jusqu'à ce que ces clés soient invalidées par la rotation. Une fois que le rotateur a généré de nouvelles clés, les sessions signées par les anciennes clés ne peuvent plus être vérifiées et sont effectivement révoquées.
Accès au tableau de bord d'audit
Nous vous recommandons d'installer le module complémentaire Amazon CloudWatch Observability Amazon EKS pour la collecte et la conservation des journaux. Pour plus d'informations, consultez Installer le module complémentaire CloudWatch Observability EKS dans le guide de l' CloudWatchutilisateur Amazon.
Le HyperPod Ray Endpoint Operator écrit les journaux d'accès /aws/containerinsights/ depuis le eks-cluster-name/applicationauthmiddleware conteneur. Rechercher :
-
"Session established"— enregistré lorsqu'un jeton JWT est échangé avec succès contre un cookie de session. -
"cluster accessed"— connecté à chaque demande ultérieure utilisant le cookie de session.
Maintenez le tableau Helm à jour
Important
La carte déployée ne reçoit pas automatiquement les mises à jour de sécurité. Vous devez passer manuellement à un graphique plus récent lorsqu'il sera disponible.
Nous vous recommandons de mettre régulièrement à jour la dernière version de la charte HyperPod Ray Endpoint Operator Helm afin de vous assurer que vous disposez des derniers correctifs et améliorations de sécurité. Lors de la mise à niveau, passez install à upgrade dans la commande Helm :
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"