Megosztás a következőn keresztül:


Biztonságos online végpont konfigurálása TLS/SSL használatával

Ez a cikk bemutatja, hogyan védheti meg az Azure Machine Learningen keresztül létrehozott Kubernetes online végpontot.

HTTPS használatával korlátozhatja az online végpontokhoz való hozzáférést, és biztonságossá teheti az ügyfelek által beküldött adatokat. A HTTPS a Transport Layer Security (TLS) használatával titkosítja az ügyfelek és az online végpontok közötti kommunikációt. A TLS-t néha még mindig Secure Sockets Layernek (SSL) nevezik, amely a TLS elődje volt.

Tipp.

  • A Kubernetes online végpontjai támogatják az Azure Kubernetes Service (AKS) és az Azure Arc-kompatibilis Kubernetes TLS 1.2-es verzióját.
  • Az Azure Machine Learning Kubernetes-hez készült TLS 1.3-es verziója nem támogatott.

A TLS és az SSL egyaránt digitális tanúsítványokra támaszkodik, amelyek segítenek a titkosításban és az identitás-ellenőrzésben. A digitális tanúsítványok működésével kapcsolatos további információkért lásd a Wikipedia public_key_infrastructure című témakörét.

Figyelmeztetés

Ha nem használja a HTTPS-t az online végpontokhoz, a szolgáltatásba és a szolgáltatásból küldött adatok láthatóak lehetnek mások számára az interneten.

A HTTPS azt is lehetővé teszi, hogy az ügyfél ellenőrizze annak a kiszolgálónak a hitelességét, amelyhez csatlakozik. Ez a funkció védelmet nyújt az ügyfeleknek a középen belüli támadások ellen.

Egy online végpont biztonságossá tételének általános folyamata a következő:

  1. Tartománynév beszerzése.

  2. Digitális tanúsítvány beszerzése.

  3. TLS/SSL konfigurálása az Azure Machine Learning-bővítményben.

  4. A DNS frissítése egy teljes tartománynévvel (FQDN), hogy az online végpontra mutasson.

Fontos

Saját tanúsítványt kell vásárolnia egy tartománynév vagy TLS/SSL-tanúsítvány beszerzéséhez, majd konfigurálnia kell őket az Azure Machine Learning bővítményben. További információkért tekintse meg a cikk következő szakaszait.

Tartománynév beszerzése

Ha még nem rendelkezik tartománynévvel, vásároljon egyet egy tartománynév-regisztrálótól. A folyamat és az ár különbözik a regisztrálók között. A regisztráló eszközöket biztosít a tartománynév kezeléséhez. Ezekkel az eszközökkel rendelhet le egy teljes tartománynevet (például www.contoso.com) az online végpontot üzemeltető IP-címre.

Az online végpontok IP-címének lekéréséről a jelen cikk teljes tartománynévvel foglalkozó szakaszában talál további információt.

TLS/SSL-tanúsítvány lekérése

A TLS/SSL-tanúsítvány (digitális tanúsítvány) beszerzésének számos módja van. A leggyakoribb az, ha egy hitelesítésszolgáltatótól vásárol egyet. A tanúsítvány beszerzésének helyétől függetlenül a következő fájlokra van szüksége:

  • A teljes tanúsítványláncot tartalmazó, PEM-kódolt tanúsítvány
  • PEM kódolású kulcs

Feljegyzés

A jelszóvédelemmel ellátott PEM-fájlok SSL-kulcsa nem támogatott.

Tanúsítvány kérésekor meg kell adnia az online végponthoz használni kívánt cím teljes tartománynevét (például www.contoso.com). A tanúsítványba lepecsételt cím és az ügyfelek által használt cím összehasonlítása az online végpont identitásának ellenőrzéséhez. Ha ezek a címek nem egyeznek, az ügyfél hibaüzenetet kap.

Az IP-sávozás FQDN-sel való konfigurálásáról a jelen cikk egy teljes tartománynévvel foglalkozó szakaszában talál további információt.

Tipp.

Ha a hitelesítésszolgáltató nem tudja PEM kódolású fájlként megadni a tanúsítványt és a kulcsot, a formátum módosításához használhat egy olyan eszközt, mint az OpenSSL .

Figyelmeztetés

Csak fejlesztéshez használjon önaláírt tanúsítványokat. Ne használja őket éles környezetben. Az önaláírt tanúsítványok problémákat okozhatnak az ügyfélalkalmazásokban. További információkért tekintse meg az ügyfélalkalmazás által használt hálózati kódtárak dokumentációját.

TLS/SSL konfigurálása az Azure Machine Learning-bővítményben

Olyan Kubernetes online végpontok esetében, amelyek a biztonságos kapcsolatokhoz https-következtetést használnak, az Azure Machine Learning-bővítmény Kubernetes-fürtön való üzembe helyezésekor engedélyezheti a TLS-megszakítást az üzembe helyezési konfigurációs beállításokkal.

Az Azure Machine Learning bővítmény üzembe helyezésekor a allowInsecureConnections konfigurációs beállítás alapértelmezés szerint meg van False állítva. A bővítmény sikeres üzembe helyezésének biztosításához meg kell adnia a sslSecret konfigurációs beállítást vagy a sslKeyPemFile sslCertPemFile konfiguráció által védett beállítások kombinációját. Ellenkező esetben beállíthatja allowInsecureConnections=True , hogy támogassa a HTTP-t, és letiltsa a TLS-megszakítást.

Feljegyzés

A HTTPS online végpont allowInsecureConnections támogatásához be kell állítani a következőt False: .

A HTTPS-végpont valós idejű következtetéshez való engedélyezéséhez PEM-kódolású TLS-/SSL-tanúsítványt és kulcsot kell megadnia. Az Azure Machine Learning bővítmény üzembe helyezésekor kétféleképpen adhatja meg a tanúsítványt és a kulcsot:

  • Adja meg a sslSecret konfigurációs beállítást.
  • Adja meg a sslCertPemFile slKeyPemFile konfigurációval védett beállítások kombinációját.

SslSecret konfigurálása

Az ajánlott eljárás a tanúsítvány és a kulcs mentése egy Kubernetes-titkos kódban a azureml névtérben.

A konfiguráláshoz sslSecretmentenie kell egy Kubernetes-titkos kulcsot a Kubernetes-fürtben a névtérben a azureml cert.pem (PEM kódolású TLS/SSL-tanúsítvány) és a key.pem (PEM-kódolású TLS/SSL-kulcs) tárolásához.

A következő kód egy TLS/SSL-titkos kód yaML-mintadefiníciója:

apiVersion: v1
data:
  cert.pem: <PEM-encoded SSL certificate> 
  key.pem: <PEM-encoded SSL key>
kind: Secret
metadata:
  name: <secret name>
  namespace: azureml
type: Opaque

Miután mentette a titkos kulcsot a fürtben, az alábbi Azure CLI-paranccsal megadhatja sslSecret ennek a Kubernetes-titkos kódnak a nevét. (Ez a parancs csak akkor működik, ha AKS-t használ.)

   az k8s-extension create --name <extension-name> --extension-type Microsoft.AzureML.Kubernetes --config inferenceRouterServiceType=LoadBalancer sslSecret=<Kubernetes secret name> sslCname=<ssl cname> --cluster-type managedClusters --cluster-name <your-AKS-cluster-name> --resource-group <your-RG-name> --scope cluster

Az sslCertPemFile és az sslKeyPemFile konfigurálása

Megadhatja, hogy a sslCertPemFile konfigurációs beállítás legyen a PEM-kódolású TLS/SSL-tanúsítványfájl elérési útja, a sslKeyPemFile konfigurációs beállítás pedig a PEM-kódolású TLS/SSL-kulcsfájl elérési útja.

Az alábbi példa bemutatja, hogyan adhat meg PEM-fájlokat az Azure CLI-vel a megvásárolt TLS/SSL-tanúsítványt használó Azure Machine Learning-bővítményhez. A példa feltételezi, hogy AKS-t használ.

   az k8s-extension create --name <extension-name> --extension-type Microsoft.AzureML.Kubernetes --config enableInference=True inferenceRouterServiceType=LoadBalancer sslCname=<ssl cname> --config-protected sslCertPemFile=<file-path-to-cert-PEM> sslKeyPemFile=<file-path-to-cert-KEY> --cluster-type managedClusters --cluster-name <your-AKS-cluster-name> --resource-group <your-RG-name> --scope cluster

Feljegyzés

  • A jelszavas védelemmel ellátott PEM-fájlok nem támogatottak.
  • Mindkettőt sslCertPemFIle használja, és sslKeyPemFIle használjon konfigurációval védett paramétereket. Nem konfigurálják sslSecret és sslCertPemFile/sslKeyPemFile ugyanakkor.

A DNS frissítése teljes tartománynévvel

Egy modell Kubernetes online végponton, egyéni tanúsítvánnyal való üzembe helyezéséhez frissítenie kell a DNS-rekordot, hogy az online végpont IP-címére mutasson. Ezt az IP-címet az Azure Machine Learning következtetési útválasztó szolgáltatás (azureml-fe) biztosítja. További információ: azureml-feFelügyelt Azure Machine Learning-következtetési útválasztó.

Az egyéni tartománynév DNS-rekordjának frissítése:

  1. Kérje le az online végpont IP-címét a pontozó URI-ból, amely általában a következő formátumban http://104.214.29.152:80/api/v1/service/<service-name>/scorevan: . Ebben a példában az IP-cím 104.214.29.152.

    Miután konfigurálta az egyéni tartománynevet, az lecseréli az IP-címet a pontozó URI-ban. A következtetési útválasztó szolgáltatásként azureml-fe használt LoadBalancer Kubernetes-fürtök külsőleg, a felhőszolgáltató terheléselosztóján és TLS/SSL-végződésén keresztül lesznek közzétéve. A Kubernetes online végpontjának IP-címe a fürtben üzembe helyezett szolgáltatás külső IP-címe azureml-fe .

    Ha AKS-t használ, lekérheti az IP-címet az Azure Portalról. Nyissa meg az AKS-erőforrásoldalt, nyissa meg a Szolgáltatás és a bejövő forgalom lehetőséget, majd keresse meg az azureml-fe szolgáltatást az azuerml névtér alatt. Ezután megtalálhatja az IP-címet a Külső IP-oszlopban .

    Képernyőkép egy új bővítmény azure Arc-kompatibilis Kubernetes-fürthöz való hozzáadásáról az Azure Portalról.

    Emellett futtathatja a Kubernetes parancsot kubectl describe svc azureml-fe -n azureml a fürtben, hogy lekérje az IP-címet a LoadBalancer Ingress kimenetben lévő paraméterből.

    Feljegyzés

    Az olyan Kubernetes-fürtök esetében, amelyek vagy nodePort clusterIP a következtetési útválasztó szolgáltatást használják, saját terheléselosztási megoldást és TLS/SSL-végpontot azureml-fekell beállítania. A szolgáltatás IP-címét is be kell szereznie azureml-fe a fürt hatókörébe.

  2. A tartománynév-regisztráló eszközeivel frissítse a tartománynév DNS-rekordját. A rekord leképezi a teljes tartománynevet (például www.contoso.com) az IP-címre. A rekordnak az online végpont IP-címére kell mutatnia.

    Tipp.

    A Microsoft nem felelős az egyéni DNS-név vagy tanúsítvány DNS-ének frissítéséért. Frissítenie kell a tartománynév-regisztrálóval.

  3. A DNS-rekord frissítése után a parancs használatával ellenőrizheti a nslookup custom-domain-name DNS-feloldásokat. Ha a DNS-rekord megfelelően frissül, az egyéni tartománynév az online végpont IP-címére mutat.

    Az ügyfelek a tartománynév feloldása előtt akár percekig vagy órákig is elhúzódhatnak, a tartománynévhez konfigurált regisztrálótól és élettartamtól (TTL) függően.

Az Azure Machine Learning dns-feloldásáról további információt a munkaterület egyéni DNS-kiszolgálóval való használatáról szóló cikkben talál.

A TLS/SSL-tanúsítvány frissítése

A TLS/SSL-tanúsítvány lejár, és meg kell újítani. Ez általában minden évben előfordul. Az alábbi lépésekkel frissítheti és megújíthatja a tanúsítványt a Kubernetesben üzembe helyezett modellekhez (AKS és Azure Arc-kompatibilis Kubernetes):

  1. A tanúsítvány megújításához használja a hitelesítésszolgáltató dokumentációját. Ez a folyamat új tanúsítványfájlokat hoz létre.

  2. Frissítse az Azure Machine Learning-bővítményt, és adja meg az új tanúsítványfájlokat a az k8s-extension update parancs használatával.

    Ha korábban Kubernetes-titkos kulcsot használt a TLS/SSL konfigurálásához, először frissítenie kell a Kubernetes-titkos kulcsot a Kubernetes-fürt új cert.pem és key.pem konfigurációjával. Ezután futtassa a bővítményfrissítési parancsot a tanúsítvány frissítéséhez:

       az k8s-extension update --name <extension-name> --extension-type Microsoft.AzureML.Kubernetes --config inferenceRouterServiceType=LoadBalancer sslSecret=<Kubernetes secret name> sslCname=<ssl cname> --cluster-type managedClusters --cluster-name <your-AKS-cluster-name> --resource-group <your-RG-name> --scope cluster
    

    Ha korábban közvetlenül konfigurálta a PEM-fájlokat a bővítménytelepítési parancsban, futtatnia kell a bővítményfrissítési parancsot, és meg kell adnia az új PEM-fájl elérési útját:

       az k8s-extension update --name <extension-name> --extension-type Microsoft.AzureML.Kubernetes --config sslCname=<ssl cname> --config-protected sslCertPemFile=<file-path-to-cert-PEM> sslKeyPemFile=<file-path-to-cert-KEY> --cluster-type managedClusters --cluster-name <your-AKS-cluster-name> --resource-group <your-RG-name> --scope cluster
    

TLS letiltása

A Kubernetesben üzembe helyezett modell TLS-ének letiltása:

  1. Frissítse az Azure Machine Learning bővítményt a következő beállítással allowInsercureconnection True: .

  2. Távolítsa el a sslCname konfigurációs beállítást, valamint a sslSecret konfigurációs sslPem beállításokat.

  3. Futtassa a következő Azure CLI-parancsot a Kubernetes-fürtben, majd végezzen el egy frissítést. Ez a parancs feltételezi, hogy az AKS-t használja.

       az k8s-extension update --name <extension-name> --extension-type Microsoft.AzureML.Kubernetes --config enableInference=True inferenceRouterServiceType=LoadBalancer allowInsercureconnection=True --cluster-type managedClusters --cluster-name <your-AKS-cluster-name> --resource-group <your-RG-name> --scope cluster
    

Figyelmeztetés

Alapértelmezés szerint az Azure Machine Learning-bővítmény üzembe helyezése a HTTPS-támogatás konfigurációs beállításait várja. A HTTP-támogatást csak fejlesztési vagy tesztelési célokra javasoljuk. A allowInsecureConnections=True konfigurációs beállítás HTTP-támogatást nyújt.

Következő lépések

Az alábbiak végrehajtásának módját ismerheti meg: