

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Benutzerdefinierte Zertifikate und Route 53 53-DNS-Management für HyperPod Inference
<a name="sagemaker-hyperpod-model-deployment-custom-certs"></a>

Die folgenden Schritte zeigen Ihnen, wie Sie Ihre eigenen ACM-Zertifikate für HyperPod Inferenzendpunkte verwenden und optional den Operator so konfigurieren, dass er Route 53 53-DNS-Einträge für Ihre benutzerdefinierte Domain verwaltet.

Bei benutzerdefinierten Zertifikaten stellen Sie einen ARN für ein ACM-Zertifikat bereit, den der Betreiber an den Application Load Balancer (ALB) anhängt, dessen Integrität überwacht und die automatische Verlängerungserkennung unterstützt. Der Betreiber unterstützt öffentlich vertrauenswürdige ACM-Zertifikate, AWS private CA-Zertifikate und Zertifikate, die von externen Zertifizierungsstellen importiert wurden.

Benutzerdefinierte Zertifikate können eigenständig oder in Kombination mit der Route 53 53-DNS-Verwaltung verwendet werden. Die DNS-Verwaltung für Route 53 erfordert ein benutzerdefiniertes Zertifikat und verwendet den Domainnamen aus Ihrer Zertifikatskonfiguration, um DNS-Einträge zu erstellen und zu verwalten.

## Voraussetzungen
<a name="sagemaker-hyperpod-model-deployment-custom-certs-prereqs"></a>

Bevor Sie beginnen, stellen Sie sicher, dass Sie:
+ Richten Sie Inferenzfunktionen auf Ihren SageMaker HyperPod Amazon-Clustern ein. Weitere Informationen finden Sie unter [Einrichtung Ihrer HyperPod Cluster für die Modellbereitstellung](sagemaker-hyperpod-model-deployment-setup.md).
+ [Kubectl wurde](https://kubernetes.io/docs/reference/kubectl/) in Ihrem Terminal installiert.
+ Ein TLS-Zertifikat wurde in ACM in derselben AWS Region wie Ihr Cluster bereitgestellt oder importiert. HyperPod Das Zertifikat muss den Status **Ausgestellt** haben und eine Zertifikatskette (Zwischen- und Stammzertifizierungsstelle) enthalten. Self-signed In ACM importierte Zertifikate werden nicht als benutzerdefinierte Zertifikate unterstützt, da ihnen eine Zertifikatskette fehlt.
+ (Für die DNS-Verwaltung von Route 53) Es wurde eine von Route 53 gehostete Zone für Ihre Domain erstellt. Öffentlich gehostete Zonen werden empfohlen. Private gehostete Zonen funktionieren für die Erstellung von Datensätzen, aber der Betreiber überprüft die DNS-Auflösung mithilfe des DNS-Resolvers des Pods, der auf dem VPC-DNS-Resolver basiert. Für privat gehostete Zonen müssen für die VPC DNS-Auflösung und DNS-Hostnamen aktiviert sein, und die private gehostete Zone muss mit der VPC des Clusters verknüpft sein.

## Konfigurieren Sie die IAM-Berechtigungen.
<a name="sagemaker-hyperpod-model-deployment-custom-certs-iam"></a>

Die Ausführungsrolle des Inferenzoperators erfordert zusätzliche Berechtigungen für benutzerdefinierte Zertifikate und die Route 53 53-DNS-Verwaltung. Fügen Sie Ihrer HyperPod Inference-Ausführungsrolle die folgenden Richtlinien hinzu.

### ACM- und Amazon S3 S3-Berechtigungen für benutzerdefinierte Zertifikate
<a name="sagemaker-hyperpod-model-deployment-custom-certs-iam-acm"></a>

```
{
    "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"
                }
            }
        }
    ]
}
```

**Anmerkung**  
Wenn Ihr Amazon S3 S3-Bucket-Name mit beginnt`hyperpod-tls`, sind die Amazon S3 S3-Berechtigungen bereits in der `AmazonSageMakerHyperPodInferenceAccess` verwalteten Richtlinie enthalten und Sie müssen nur die ACM-Anweisung hinzufügen.

### Route 53 53-Berechtigungen für die DNS-Verwaltung
<a name="sagemaker-hyperpod-model-deployment-custom-certs-iam-r53"></a>

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

Ersetzen Sie `<region>``<account-id>`,`<tls-certificate-bucket>`, und `<hosted-zone-id>` durch Ihre tatsächlichen Werte. Sie können den ARN der ACM-Ressource auf bestimmte Zertifikate beschränken, um die Sicherheit zu erhöhen.

## Konfigurieren Sie ein benutzerdefiniertes Zertifikat
<a name="sagemaker-hyperpod-model-deployment-custom-certs-configure"></a>

Um ein benutzerdefiniertes Zertifikat zu verwenden, fügen Sie den `customCertificateConfig` Abschnitt `tlsConfig` zu Ihrer `JumpStartModel` Spezifikation hinzu. `InferenceEndpointConfig` Die `dnsConfig` Felder `tlsConfig` und sind in beiden CRDs identisch.

Die folgenden Felder sind in `customCertificateConfig` und `tlsConfig` verfügbar:

`tlsConfig.customCertificateConfig.acmArn`(Erforderlich, Zeichenfolge)  
Der ARN Ihres ACM-Zertifikats. Muss sich im Status „**Ausgestellt**“ befinden.

`tlsConfig.customCertificateConfig.domainName`(Erforderlich, Zeichenfolge)  
Der Domainname, der aus dem Zertifikat verwendet werden soll.  
+ Muss eine bestimmte Domain sein, kein Platzhalter. Geben Sie für Platzhalterzertifikate (z. B.`*.example.com`) die spezifische Subdomain an (z. B.). `api.example.com`
+ Muss in Kleinbuchstaben geschrieben werden.
+ Muss mit einem der im Zertifikat aufgeführten Domainnamen übereinstimmen.

`tlsConfig.tlsCertificateOutputS3Uri`(Bedingt, Zeichenfolge)  
Amazon S3 S3-URI, wo der Betreiber das öffentliche Zertifikat hochlädt. Erforderlich, es sei denn, der Operator wurde mit konfigurierter `TLS_CERTIFICATE_OUTPUT_S3URI` Umgebungsvariable installiert. Wenn Sie sich nicht sicher sind, ob dies festgelegt wurde, geben Sie es explizit an.

Im Folgenden finden Sie ein Beispiel für eine YAML-Datei zum Erstellen eines Endpunkts mit einem benutzerdefinierten Zertifikat.

```
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"
```

Sie können `customCertificateConfig` zu einer Bereitstellung, die bereits läuft, etwas hinzufügen. Der Operator erkennt die Änderung beim nächsten Abgleich, validiert das Zertifikat, hängt es an die ALB an und lädt das öffentliche Zertifikat auf Amazon S3 hoch. Es sind keine Ausfallzeiten oder eine erneute Bereitstellung erforderlich.

**Wichtig**  
Wenn Sie den `customCertificateConfig` Abschnitt aus einer laufenden Bereitstellung entfernen, generiert der Operator erneut ein neues selbstsigniertes Zertifikat. Dies ersetzt Ihr CA-signed Zertifikat auf dem ALB.

## Konfigurieren Sie Route 53 53-DNS-Verwaltung
<a name="sagemaker-hyperpod-model-deployment-custom-certs-dns"></a>

Für die DNS-Verwaltung von Route 53 muss ein benutzerdefiniertes Zertifikat konfiguriert werden, und es wird der Domainname von verwendet`tlsConfig.customCertificateConfig.domainName`. Wenn Sie kein benutzerdefiniertes Zertifikat konfiguriert haben, finden Sie [Konfigurieren Sie ein benutzerdefiniertes Zertifikat](#sagemaker-hyperpod-model-deployment-custom-certs-configure) zuerst weitere Informationen.

Um die Route 53 53-DNS-Verwaltung zu aktivieren, fügen Sie den `dnsConfig` Abschnitt zu Ihrer Spezifikation hinzu:

```
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
```

Der `dnsConfig` Abschnitt kann gleichzeitig mit einer vorhandenen Bereitstellung oder zu einem späteren Zeitpunkt hinzugefügt werden. `customCertificateConfig` Der Operator erstellt die DNS-Einträge beim nächsten Abgleich, ohne Ihre Pods neu zu starten.

Bei der Bereitstellung mit `dnsConfig` hat der Operator:

1. Überprüft, ob die Hosting-Zone existiert und ob Ihre Domain zur Hosting-Zone gehört (`api.example.com`erfordert beispielsweise eine Hosting-Zone für`example.com`).

1. Prüft, ob in der Zieldomäne A-Einträge vorhanden sind, um versehentliche Überschreibungen zu verhindern.

1. Erstellt **einen A-Eintrag** (Alias), der Ihre Domain auf die ALB verweist, und einen **TXT-Eintrag** mit einer Besitzmarkierung (`hyperpod-inference/owner=<namespace>/<name>`), um Konflikte zwischen Endpunkten zu vermeiden. Ändern oder löschen Sie den TXT-Eintrag nicht manuell.

1. Ruft die DNS-Auflösung alle 30 Sekunden ab, bis die Domain aufgelöst ist, und markiert dann den Status als. `Active` Wenn der Datensatz nicht innerhalb von 10 Minuten aufgelöst wird, wechselt der Status zu. `Error`

**Anmerkung**  
Die DNS-Verwaltung von Route 53 ist nicht blockierend. Fehler bei der Erstellung oder Weitergabe von DNS-Einträgen verhindern nicht, dass Ihr Inferenzendpunkt den `Ready` Status erreicht. Auf den Endpunkt kann weiterhin über den Standard-Hostnamen der ALB zugegriffen werden. Überprüfen Sie den `dnsStatus` Abschnitt im Ressourcenstatus auf Fehler. DNS-specific 

## Verwenden Sie ein benutzerdefiniertes Zertifikat ohne Route 53 53-DNS-Verwaltung
<a name="sagemaker-hyperpod-model-deployment-custom-certs-no-dns"></a>

Die DNS-Verwaltung von Route 53 ist optional. Wenn Sie Ihre eigenen DNS-Einträge verwalten möchten, lassen Sie den `dnsConfig` Abschnitt weg und konfigurieren Sie Ihre Domain manuell.

Um den ALB-Hostnamen für Ihre Bereitstellung zu ermitteln, hängt der Eingangsname davon ab, ob intelligentes Routing aktiviert ist.

**Ohne intelligentes Routing:** Der Ingress wird in Ihrem Namespace benannt`alb-<deployment-name>`.

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

**Mit intelligentem Routing:** Der Ingress wird `alb-<deployment-name>-<namespace>` im Namespace benannt. `hyperpod-inference-system`

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

Erstellen Sie in Ihrem DNS-Anbieter einen DNS-Eintrag, der Ihre Domain auf diesen ALB-Hostnamen verweist:
+ **Route 53** — Erstellen Sie **einen A-Datensatz** mit aktiviertem **Alias**, der auf den ALB verweist.
+ **Andere DNS-Anbieter** — Erstellen Sie einen **CNAME-Eintrag, der Ihre Domain auf den ALB-DNS-Namen** verweist. CNAME-Einträge können nicht in der Stammdomain verwendet werden (z. B.`example.com`); verwenden Sie eine Subdomain wie. `api.example.com`

**Anmerkung**  
Wenn der ALB neu erstellt wird (z. B. nach dem Löschen und erneuten Bereitstellen des Endpunkts), ändert sich der ALB-Hostname. Sie müssen Ihren DNS-Eintrag manuell aktualisieren. Die DNS-Verwaltung von Route 53 erledigt dies automatisch.

## Überprüfen des Status Ihrer Bereitstellung
<a name="sagemaker-hyperpod-model-deployment-custom-certs-verify"></a>

### Überprüfen Sie den Status des benutzerdefinierten Zertifikats
<a name="sagemaker-hyperpod-model-deployment-custom-certs-verify-cert"></a>

```
kubectl describe InferenceEndpointConfig my-model -n my-namespace
```

Suchen Sie im Status nach dem `tlsCertificate` Abschnitt:

```
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
```

Gesundheitswerte des Zertifikats:
+ **Gültig** — Das Zertifikat läuft nach mehr als 60 Tagen ab.
+ **Läuft** ab — Das Zertifikat läuft innerhalb von 60 Tagen ab. Ein Kubernetes-Warnereignis (`CertificateExpiring`) wird ausgelöst.
+ **Abgelaufen** — Das Zertifikat ist abgelaufen. Ein Kubernetes-Warnereignis (`CertificateExpired`) wird ausgegeben.

Der Betreiber überprüft den Ablauf des Zertifikats alle 24 Stunden. Wenn es feststellt, dass ein Zertifikat in ACM erneuert wurde (das `NotAfter` Datum ändert sich), lädt es das öffentliche Zertifikat automatisch erneut auf Amazon S3 hoch und gibt ein Ereignis aus. `CertificateRenewed`

### Überprüfen Sie den DNS-Status
<a name="sagemaker-hyperpod-model-deployment-custom-certs-verify-dns"></a>

Suchen Sie nach dem `dnsStatus` Abschnitt:

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

DNS-Integritätswerte:
+ **Aktiv** — Der DNS-Eintrag wurde erfolgreich aufgelöst. Ihre benutzerdefinierte Domain ist einsatzbereit.
+ **Ausstehend** — DNS-Einträge wurden in Route 53 erstellt, aber noch nicht weitergegeben. Der Operator überprüft alle 30 Sekunden erneut.
+ **Fehler** — Die Erstellung oder Weitergabe von DNS-Einträgen ist fehlgeschlagen. Überprüfen Sie das `Message` Feld auf Einzelheiten.

### Testen Sie den bereitgestellten Endpunkt
<a name="sagemaker-hyperpod-model-deployment-custom-certs-verify-test"></a>

Wenn Sie die Route 53 53-DNS-Verwaltung konfiguriert haben, rufen Sie Ihren Endpunkt mit Ihrer benutzerdefinierten Domain auf, nachdem der DNS-Status angezeigt wird`Active`. Wenn Sie nur ein benutzerdefiniertes Zertifikat ohne DNS-Verwaltung konfiguriert haben, verwenden Sie den ALB-Hostnamen aus dem Ingress (siehe). [Verwenden Sie ein benutzerdefiniertes Zertifikat ohne Route 53 53-DNS-Verwaltung](#sagemaker-hyperpod-model-deployment-custom-certs-no-dns)

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

**Anmerkung**  
Um über den SageMaker KI-Endpunkt aufzurufen, legen Sie dies `endpointName` in Ihrer `InferenceEndpointConfig` oder `sageMakerEndpoint.name` in Ihrer Spezifikation fest. `JumpStartModel` Wenn nicht festgelegt, `endpointName` wird kein SageMaker KI-Endpunkt erstellt und es ist nur ein direkter ALB-Aufruf verfügbar.

```
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
```

## Verwalte deine benutzerdefinierten Zertifikate und DNS-Einträge
<a name="sagemaker-hyperpod-model-deployment-custom-certs-manage"></a>

**Änderung der Domain oder Hosting-Zone**

Sie können `domainName` (in`customCertificateConfig`) oder `hostedZoneId` (in`dnsConfig`) in einer laufenden Bereitstellung aktualisieren. Eine Änderung des Domainnamens löst sowohl eine erneute Überprüfung des Zertifikats als auch eine DNS-Umstellung aus. Die neue Domain muss in Ihrem ACM-Zertifikat gültig sein (als SAN- oder Wildcard-Match).

Der Betreiber führt eine sichere Umstellung durch:

1. Erstellt neue DNS-Einträge in der neuen Zone oder für die neue Domain.

1. Überprüft die Auflösung der neuen Einträge.

1. Löscht die alten DNS-Einträge erst, nachdem bestätigt wurde, dass die neuen Einträge aktiv sind.

Während des Übergangs werden sowohl alte als auch neue Domänen im ALB aufgelöst. Der TXT-Besitzeintrag hat eine TTL von 300 Sekunden (5 Minuten), sodass DNS-Clients den alten Datensatz nach der Bereinigung für bis zu 5 Minuten zwischenspeichern können.

**Bereinigen**

Wenn Sie den `dnsConfig` Abschnitt löschen `InferenceEndpointConfig` oder entfernen, löscht der Operator automatisch die von ihm erstellten Route 53A- und TXT-Datensätze. Der Operator löscht nur Datensätze, deren Eigentümer er ist (was anhand des TXT-Datensatzes für Eigentümer bestätigt wird).

## Fehlerbehebung
<a name="sagemaker-hyperpod-model-deployment-custom-certs-troubleshooting"></a>

Verwenden Sie diese Debugging-Schritte, wenn Ihre benutzerdefinierte Zertifikat- oder DNS-Konfiguration nicht wie erwartet funktioniert.
+ **Die Bereitstellung schlägt mit einem Amazon S3 S3-Zugriffsfehler fehl.** Stellen Sie sicher, dass der in angegebene Amazon S3 S3-Bucket `tlsCertificateOutputS3Uri` existiert und sich in derselben Region befindet. Stellen Sie sicher, dass der Operator über die Ausführungsrolle `s3:PutObject` und die `s3:PutObjectTagging` Berechtigungen für den Bucket verfügt. Der Betreiber validiert den Amazon S3 S3-Schreibzugriff, indem er bei der ersten Bereitstellung ein Null-Byte-Testobjekt hochlädt.
+ **Die Validierung des Zertifikats schlägt fehl.** Stellen Sie sicher, dass sich das ACM-Zertifikat im `ISSUED` Status befindet:`aws acm describe-certificate --certificate-arn <arn> --region <region>`. Stellen Sie sicher, dass das Zertifikat mit einer Domäne oder einem SAN `domainName` übereinstimmt. Verwenden Sie für Wildcard-Zertifikate (`*.example.com`) eine bestimmte Subdomain wie. `api.example.com`
+ **Die Erstellung von DNS-Einträgen schlägt fehl.** Stellen Sie sicher, dass die Hosting-Zonen-ID korrekt ist und die Ausführungsrolle des Operators über Route 53 53-Berechtigungen verfügt. Stellen Sie sicher, dass die Domain zur Hosting-Zone gehört (`api.example.com`erfordert z. B. eine Hosting-Zone für`example.com`). Wenn Sie einen NS-Delegierungskonflikt sehen, verwenden Sie stattdessen die Hosting-Zonen-ID der delegierten Zone. Wenn Sie einen Datensatzkonflikt sehen, besitzt ein anderer Endpunkt oder ein externer Prozess den A-Eintrag in dieser Domäne.
+ **Im DNS-Eintrag wird für längere Zeit ausstehend angezeigt.** Stellen Sie sicher, dass die NS-Einträge der Hosting-Zone ordnungsgemäß vom übergeordneten Domain-Registrar delegiert wurden. Der Betreiber verwendet den DNS-Resolver des Pods (normalerweise CoreDNS), der Ergebnisse zwischenspeichern kann. Nach 10 Minuten ohne Auflösung wechselt der Status zu. `Error`
+ **Warnungen vor Ablauf des Zertifikats.** Erneuern oder ersetzen Sie das Zertifikat in ACM. Bei ACM-issued Zertifikaten übernimmt ACM die Verlängerung automatisch. Importieren Sie für importierte Zertifikate ein neues Zertifikat. Der Betreiber erkennt die Verlängerung automatisch und lädt das öffentliche Zertifikat erneut auf Amazon S3 hoch.