View a markdown version of this page

Certificats personnalisés et gestion du DNS Route 53 pour HyperPod Inference - Amazon SageMaker AI

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.

Certificats personnalisés et gestion du DNS Route 53 pour HyperPod Inference

Les étapes suivantes vous montrent comment utiliser vos propres certificats ACM pour les points de terminaison d' HyperPodinférence et éventuellement configurer l'opérateur pour gérer les enregistrements DNS Route 53 pour votre domaine personnalisé.

Avec les certificats personnalisés, vous fournissez un ARN de certificat ACM et l'opérateur l'attache à l'Application Load Balancer (ALB), surveille son état de santé et prend en charge la détection automatique des renouvellements. L'opérateur prend en charge les certificats ACM approuvés par le public, les certificats CA AWS privés et les certificats importés depuis des autorités de certification externes.

Les certificats personnalisés peuvent être utilisés seuls ou combinés à la gestion DNS de Route 53. La gestion du DNS Route 53 nécessite un certificat personnalisé et utilise le nom de domaine indiqué dans la configuration de votre certificat pour créer et gérer les enregistrements DNS.

Conditions préalables

Avant de commencer, vérifiez les points suivants :

  • Configurez des fonctionnalités d'inférence sur vos SageMaker HyperPod clusters Amazon. Pour de plus amples informations, veuillez consulter Configuration de vos HyperPod clusters pour le déploiement de modèles.

  • Kubectl installé dans votre terminal.

  • Vous avez fourni ou importé un certificat TLS dans ACM dans la même AWS région que votre cluster. HyperPod Le certificat doit être à l'état Émis et doit inclure une chaîne de certificats (autorité de certification intermédiaire et autorité de certification racine). Self-signed les certificats importés dans ACM ne sont pas pris en charge en tant que certificats personnalisés car ils ne disposent pas d'une chaîne de certificats.

  • (Pour la gestion du DNS Route 53) Vous avez créé une zone hébergée Route 53 pour votre domaine. Les zones hébergées par le public sont recommandées. Les zones hébergées privées fonctionnent pour la création d'enregistrements, mais l'opérateur vérifie la résolution DNS à l'aide du résolveur DNS du pod, qui repose sur le résolveur DNS VPC. Pour les zones hébergées privées, la résolution DNS et les noms d'hôte DNS doivent être activés sur le VPC, et la zone hébergée privée doit être associée au VPC du cluster.

Configuration des autorisations IAM

Le rôle d'exécution de l'opérateur d'inférence nécessite des autorisations supplémentaires pour les certificats personnalisés et la gestion du DNS Route 53. Ajoutez les politiques suivantes à votre rôle d'exécution d' HyperPod inférence.

Autorisations ACM et Amazon S3 pour les certificats personnalisés

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ACMCustomCertificateAccess", "Effect": "Allow", "Action": [ "acm:DescribeCertificate", "acm:GetCertificate" ], "Resource": "arn:aws:acm:<region>:<account-id>:certificate/*" }, { "Sid": "S3CertificateUpload", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectTagging" ], "Resource": "arn:aws:s3:::<tls-certificate-bucket>/*", "Condition": { "StringEquals": { "s3:RequestObjectTag/CreatedBy": "HyperPodInference" } } } ] }
Note

Si le nom de votre compartiment Amazon S3 commence parhyperpod-tls, les autorisations Amazon S3 sont déjà incluses dans la politique AmazonSageMakerHyperPodInferenceAccess gérée et il vous suffit d'ajouter l'instruction ACM.

Autorisations Route 53 pour la gestion du DNS

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Route53DNSManagement", "Effect": "Allow", "Action": [ "route53:GetHostedZone", "route53:ListResourceRecordSets", "route53:ChangeResourceRecordSets" ], "Resource": "arn:aws:route53:::hostedzone/<hosted-zone-id>" } ] }

Remplacez <region><account-id>,<tls-certificate-bucket>, et <hosted-zone-id> par vos valeurs réelles. Vous pouvez étendre l'ARN de la ressource ACM à des certificats spécifiques pour une sécurité renforcée.

Configuration d'un certificat personnalisé

Pour utiliser un certificat personnalisé, ajoutez la customCertificateConfig section à votre JumpStartModel spécification InferenceEndpointConfig ou tlsConfig à votre spécification. Les dnsConfig champs tlsConfig et sont identiques dans les deux CRD.

Les champs suivants sont disponibles dans customCertificateConfig et tlsConfig :

tlsConfig.customCertificateConfig.acmArn(Obligatoire, chaîne)

L'ARN de votre certificat ACM. Doit être dans l'état Émis.

tlsConfig.customCertificateConfig.domainName(Obligatoire, chaîne)

Le nom de domaine à utiliser à partir du certificat.

  • Il doit s'agir d'un domaine spécifique et non d'un caractère générique. Pour les certificats génériques (par exemple,*.example.com), spécifiez le sous-domaine spécifique (par exemple,api.example.com).

  • Doit être en minuscules.

  • Doit correspondre à l'un des noms de domaine répertoriés dans le certificat.

tlsConfig.tlsCertificateOutputS3Uri(Conditionnel, chaîne)

URI Amazon S3 où l'opérateur télécharge le certificat public. Obligatoire sauf si l'opérateur a été installé avec la variable d'TLS_CERTIFICATE_OUTPUT_S3URIenvironnement configurée. Si vous ne savez pas si cela a été défini, spécifiez-le explicitement.

Voici un exemple de fichier YAML permettant de créer un point de terminaison avec un certificat personnalisé.

apiVersion: inference.sagemaker.aws.amazon.com/v1 kind: InferenceEndpointConfig metadata: name: my-model namespace: my-namespace spec: modelName: my-llm instanceType: ml.g5.24xlarge invocationEndpoint: v1/chat/completions replicas: 2 modelSourceConfig: modelSourceType: s3 s3Storage: bucketName: my-model-bucket region: us-west-2 modelLocation: models/my-llm tlsConfig: customCertificateConfig: acmArn: arn:aws:acm:us-west-2:123456789012:certificate/abc12345-1234-1234-1234-abc123456789 domainName: api.example.com tlsCertificateOutputS3Uri: s3://my-tls-bucket worker: image: my-inference-image:latest modelInvocationPort: containerPort: 8000 name: http modelVolumeMount: name: model-weights mountPath: /opt/ml/model resources: limits: nvidia.com/gpu: "4" requests: cpu: "6" memory: 30Gi nvidia.com/gpu: "4"

Vous pouvez ajouter des customCertificateConfig éléments à un déploiement déjà en cours d'exécution. L'opérateur détecte le changement lors de la prochaine réconciliation, valide le certificat, l'attache à l'ALB et télécharge le certificat public sur Amazon S3. Aucune interruption de service ni aucun redéploiement ne sont nécessaires.

Important

Si vous supprimez la customCertificateConfig section d'un déploiement en cours, l'opérateur revient à générer un nouveau certificat auto-signé. Cela remplace votre CA-signed certificat sur l'ALB.

Configuration de la gestion DNS de Route 53

La gestion du DNS Route 53 nécessite la configuration d'un certificat personnalisé et utilise le nom de domaine detlsConfig.customCertificateConfig.domainName. Si vous n'avez pas configuré de certificat personnalisé, consultez Configuration d'un certificat personnalisé d'abord.

Pour activer la gestion DNS de Route 53, ajoutez la dnsConfig section suivante à vos spécifications :

spec: tlsConfig: customCertificateConfig: acmArn: arn:aws:acm:us-west-2:123456789012:certificate/abc12345-1234-1234-1234-abc123456789 domainName: api.example.com tlsCertificateOutputS3Uri: s3://my-tls-bucket dnsConfig: hostedZoneId: Z1234567890ABC

La dnsConfig section peut être ajoutée en même customCertificateConfig temps ou ultérieurement à un déploiement existant. L'opérateur crée les enregistrements DNS lors de la prochaine réconciliation sans redémarrer vos pods.

Lorsque vous déployez avecdnsConfig, l'opérateur :

  1. Valide que la zone hébergée existe et que votre domaine appartient à la zone hébergée (par exemple, api.example.com nécessite une zone hébergée pourexample.com).

  2. Vérifie les enregistrements A existants dans le domaine cible afin d'éviter les remplacements accidentels.

  3. Crée un enregistrement A (alias) pointant votre domaine vers l'ALB et un enregistrement TXT avec un marqueur de propriété (hyperpod-inference/owner=<namespace>/<name>) pour éviter les conflits entre les points de terminaison. Ne modifiez ni ne supprimez l'enregistrement TXT manuellement.

  4. Interroge la résolution DNS toutes les 30 secondes jusqu'à ce que le domaine soit résolu, puis marque le statut commeActive. Si l'enregistrement n'est pas résolu dans les 10 minutes, le statut passe àError.

Note

La gestion du DNS Route 53 n'est pas bloquante. Les erreurs lors de la création ou de la propagation des enregistrements DNS n'empêchent pas votre point de terminaison d'inférence d'atteindre l'Readyétat. Le point de terminaison reste accessible via le nom d'hôte par défaut de l'ALB. Vérifiez la présence d' DNS-specific erreurs dans la dnsStatus section relative à l'état de la ressource.

Utiliser un certificat personnalisé sans gestion DNS de Route 53

La gestion du DNS Route 53 est facultative. Si vous souhaitez gérer vos propres enregistrements DNS, omettez dnsConfig cette section et configurez votre domaine manuellement.

Pour trouver le nom d'hôte ALB pour votre déploiement, le nom d'entrée dépend de l'activation ou non du routage intelligent.

Sans routage intelligent : l'entrée est nommée alb-<deployment-name> dans votre espace de noms.

kubectl get ingress alb-<deployment-name> -n <namespace> \ -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'

Avec le routage intelligent : l'entrée est nommée alb-<deployment-name>-<namespace> dans l'espace de hyperpod-inference-system noms.

kubectl get ingress alb-<deployment-name>-<namespace> -n hyperpod-inference-system \ -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'

Créez un enregistrement DNS dans votre fournisseur DNS pointant votre domaine vers ce nom d'hôte ALB :

  • Route 53 — Créez un enregistrement A avec Alias activé, pointant vers l'ALB.

  • Autres fournisseurs DNS — Créez un enregistrement CNAME pointant votre domaine vers le nom DNS ALB. Les enregistrements CNAME ne peuvent pas être utilisés dans le domaine racine (par exemple,example.com) ; utilisez un sous-domaine tel que. api.example.com

Note

Si l'ALB est recréé (par exemple, après avoir supprimé et redéployé le point de terminaison), le nom d'hôte de l'ALB change. Vous devez mettre à jour votre enregistrement DNS manuellement. La gestion DNS de Route 53 gère cela automatiquement.

Vérification du statut de votre déploiement

Vérifiez le statut du certificat personnalisé

kubectl describe InferenceEndpointConfig my-model -n my-namespace

Recherchez la tlsCertificate section dans le statut :

Status: Tls Certificate: Certificate ARN: arn:aws:acm:us-west-2:123456789012:certificate/abc12345-... Certificate Health: Valid Certificate Domain Names: api.example.com Last Cert Expiry Time: 2027-04-23T00:00:00Z

Valeurs d'intégrité du certificat :

  • Valide — Le certificat est expiré dans plus de 60 jours.

  • Expiration — Le certificat expire dans les 60 jours. Un événement d'avertissement Kubernetes (CertificateExpiring) est émis.

  • Expiré — Le certificat a expiré. Un événement d'avertissement Kubernetes (CertificateExpired) est émis.

L'opérateur vérifie l'expiration du certificat toutes les 24 heures. Lorsqu'il détecte qu'un certificat a été renouvelé dans ACM (la NotAfter date change), il télécharge automatiquement le certificat public sur Amazon S3 et émet un événement. CertificateRenewed

Vérifiez l'état du DNS

Recherchez la dnsStatus section :

Status: Dns Status: Managed By Operator: true Record Name: api.example.com Hosted Zone Id: Z1234567890ABC Dns Health: Active Message: DNS record resolves successfully

Valeurs de santé du DNS :

  • Actif : l'enregistrement DNS est résolu avec succès. Votre domaine personnalisé est prêt à être utilisé.

  • En attente : des enregistrements DNS ont été créés dans Route 53 mais ne se sont pas encore propagés. L'opérateur revérifie toutes les 30 secondes.

  • Erreur : échec de la création ou de la propagation de l'enregistrement DNS. Consultez le Message champ pour plus de détails.

Testez le point de terminaison déployé

Si vous avez configuré la gestion DNS de Route 53, appelez votre point de terminaison à l'aide de votre domaine personnalisé une fois que l'état du DNS s'est affichéActive. Si vous n'avez configuré qu'un certificat personnalisé sans gestion DNS, utilisez le nom d'hôte ALB depuis l'entrée (voir). Utiliser un certificat personnalisé sans gestion DNS de Route 53

curl -X POST https://api.example.com/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model": "my-llm", "messages": [{"role": "user", "content": "Hello"}]}'
Note

Pour appeler via le point de terminaison SageMaker AI, endpointName définissez-le dans votre InferenceEndpointConfig ou sageMakerEndpoint.name dans votre JumpStartModel spécification. Si endpointName ce n'est pas le cas, aucun point de terminaison SageMaker AI n'est créé et seul l'appel direct d'ALB est disponible.

aws sagemaker-runtime invoke-endpoint \ --endpoint-name my-model \ --content-type "application/json" \ --body '{"model": "my-llm", "messages": [{"role": "user", "content": "Hello"}]}' \ --region us-west-2 \ --cli-binary-format raw-in-base64-out \ /dev/stdout

Gérez vos certificats personnalisés et vos enregistrements DNS

Modification du domaine ou de la zone hébergée

Vous pouvez mettre à jour le domainName (incustomCertificateConfig) ou hostedZoneId (indnsConfig) sur un déploiement en cours. La modification du nom de domaine déclenche à la fois la revalidation du certificat et le transfert DNS : le nouveau domaine doit être valide dans votre certificat ACM (en tant que SAN ou joker correspondant).

L'opérateur effectue une découpe en toute sécurité :

  1. Crée de nouveaux enregistrements DNS dans la nouvelle zone ou pour le nouveau domaine.

  2. Vérifie que les nouveaux enregistrements sont résolus.

  3. Supprime les anciens enregistrements DNS uniquement une fois que les nouveaux enregistrements ont été confirmés actifs.

Au cours de la transition, les anciens et les nouveaux domaines sont transférés vers l'ALB. L'enregistrement de propriété TXT a un TTL de 300 secondes (5 minutes), de sorte que les clients DNS peuvent mettre en cache l'ancien enregistrement jusqu'à 5 minutes après le nettoyage.

Nettoyage

Lorsque vous supprimez InferenceEndpointConfig ou supprimez la dnsConfig section, l'opérateur supprime automatiquement les enregistrements Route 53 A et TXT qu'il a créés. L'opérateur supprime uniquement les enregistrements dont il est propriétaire (vérifié par l'enregistrement TXT de propriété).

Résolution des problèmes

Utilisez ces étapes de débogage si votre certificat personnalisé ou votre configuration DNS ne fonctionne pas comme prévu.

  • Le déploiement échoue en raison d'une erreur d'accès Amazon S3. Vérifiez que le compartiment Amazon S3 spécifié dans tlsCertificateOutputS3Uri existe et se trouve dans la même région. Vérifiez que le rôle d'exécution de l'opérateur dispose s3:PutObject des s3:PutObjectTagging autorisations nécessaires sur le bucket. L'opérateur valide l'accès en écriture à Amazon S3 en chargeant un objet de test de zéro octet lors du déploiement initial.

  • La validation du certificat échoue. Vérifiez que le certificat ACM est dans l'ISSUEDétat :aws acm describe-certificate --certificate-arn <arn> --region <region>. Vérifiez que le certificat domainName correspond à un domaine ou à un SAN. Pour les certificats génériques (*.example.com), utilisez un sous-domaine spécifique tel que. api.example.com

  • La création d'un enregistrement DNS échoue. Vérifiez que l'ID de zone hébergée est correct et que le rôle d'exécution de l'opérateur dispose des autorisations Route 53. Vérifiez que le domaine appartient à la zone hébergée (par exemple, api.example.com nécessite une zone hébergée pourexample.com). Si vous constatez un conflit de délégation NS, utilisez plutôt l'ID de zone hébergée de la zone déléguée. Si vous constatez un conflit d'enregistrement, un autre point de terminaison ou un processus externe possède l'enregistrement A dans ce domaine.

  • L'enregistrement DNS indique En attente pendant une période prolongée. Vérifiez que les enregistrements NS de la zone hébergée sont correctement délégués par le bureau d'enregistrement de domaines parent. L'opérateur utilise le résolveur DNS du pod (généralement CoreDNS), qui peut mettre en cache les résultats. Après 10 minutes sans résolution, le statut passe àError.

  • Avertissements relatifs à l'expiration des certificats. Renouvelez ou remplacez le certificat dans ACM. Pour les ACM-issued certificats, ACM gère automatiquement le renouvellement. Pour les certificats importés, importez un nouveau certificat. L'opérateur détecte automatiquement le renouvellement et télécharge à nouveau le certificat public sur Amazon S3.