SSH kezelése az Azure Kubernetes Service (AKS) csomópontjaihoz való biztonságos hozzáférés érdekében

Ez a cikk azt ismerteti, hogyan konfigurálhatja az SSH-kulcsokat (előzetes verzió) az AKS-fürtökön vagy csomópontkészleteken a kezdeti üzembe helyezés során vagy egy későbbi időpontban.

Az AKS a következő konfigurációs beállításokat támogatja az SSH-kulcsok fürtcsomópontokon való kezeléséhez:

  • Fürt létrehozása SSH-kulcsokkal
  • Meglévő AKS-fürt SSH-kulcsainak frissítése
  • Az SSH szolgáltatás letiltása és engedélyezése

Fontos

Az AKS előzetes verziójú funkciói önkiszolgáló, opt-in alapon érhetők el. Az előzetes verziókat "ahogy van" és "rendelkezésre állóként" biztosítjuk, és a szolgáltatási szerződésekből és a korlátozott jótállásból kizárjuk őket. Az AKS előzetes verzióit részben az ügyfélszolgálat fedezi a legjobb munkamennyiség alapján. Ezért ezek a funkciók nem éles használatra vannak szánva. További információkért tekintse meg az alábbi támogatási cikkeket:

Mielőtt elkezdené

  • Az Update használatához a 0.5.116-os vagy újabb verzióra van szükségeaks-preview.
  • A Letiltás használatához az 1.0.0b6-os vagy újabb verzióra van szükségeaks-preview.
  • Az SSH létrehozása és frissítése funkció támogatja a Linux, Windows és Azure Linux csomópontkészleteket a meglévő fürtökön.
  • Az SSH letiltása funkció ebben az előzetes kiadásban nem támogatott a Windows Server operációs rendszert futtató csomópontkészleteken.

Az aks-preview Azure CLI-bővítmény telepítése

  1. Telepítse az aks-preview bővítményt a az extension add paranccsal.

    az extension add --name aks-preview
    
  2. Frissítsen a bővítmény legújabb verziójára a az extension update paranccsal.

    az extension update --name aks-preview
    

A funkciójelző regisztrálása DisableSSHPreview

Az SSH letiltása funkció használatához hajtsa végre az alábbi lépéseket a regisztrációhoz és az előfizetésben való engedélyezéséhez.

  1. Regisztrálja a DisableSSHPreview funkciójelzőt a az feature register paranccsal.

    az feature register --namespace "Microsoft.ContainerService" --name "DisableSSHPreview"
    

    Néhány percig tart, amíg az állapot megjelenik a Regisztrált állapotban.

  2. Ellenőrizze a regisztrációs állapotot a az feature show paranccsal.

    az feature show --namespace "Microsoft.ContainerService" --name "DisableSSHPreview"
    
  3. Ha az állapot a Regisztrált állapotot tükrözi, frissítse a Microsoft.ContainerService erőforrás-szolgáltató regisztrációját a az provider register paranccsal.

    az provider register --namespace Microsoft.ContainerService
    

AKS-fürt létrehozása SSH-kulcsokkal

Az az aks create paranccsal helyezzen üzembe egy AKS-fürtöt egy nyilvános SSH-kulccsal. Az argumentum használatával megadhatja a kulcsot vagy a kulcsfájlt --ssh-key-value .

SSH-paraméter Leírás Alapértelmezett érték
--generate-ssh-key Ha nem rendelkezik saját SSH-kulcsokkal, adja meg --generate-ssh-key. Az Azure CLI automatikusan létrehoz egy SSH-kulcsot, és menti őket az alapértelmezett könyvtárba ~/.ssh/.
--ssh-key-value Az SSH-hozzáféréshez szükséges csomóponti virtuális gépekre telepíteni kívánt nyilvános kulcs elérési útja vagy kulcstartalma. Például: ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm. ~/.ssh/id_rsa.pub
--no-ssh-key Ha nincs szüksége SSH-kulcsra, adja meg ezt az argumentumot. Az AKS azonban automatikusan létrehoz egy SSH-kulcskészletet, mert az Azure Virtual Machine erőforrásfüggősége nem támogatja az üres SSH-kulcsfájlokat. Ennek eredményeképpen a kulcsok nem lesznek visszaadva, és nem használhatók SSH-ra a csomópont virtuális gépeibe. A titkos kulcs elvetése és mentése nem történik meg.

Feljegyzés

Ha nincsenek megadva paraméterek, az Azure CLI alapértelmezés szerint hivatkozik a fájlban ~/.ssh/id_rsa.pub tárolt SSH-kulcsokra. Ha a kulcsok nem találhatók, a parancs visszaadja az üzenetet An RSA key file or key value must be supplied to SSH Key Value.

A következő példák erre a parancsra mutatnak be:

  • Fürt létrehozása és az alapértelmezett SSH-kulcsok használata:

    az aks create --name myAKSCluster --resource-group MyResourceGroup --generate-ssh-key
    
  • Nyilvános SSH-kulcsfájl megadásához adja meg az argumentumot --ssh-key-value :

    az aks create --name myAKSCluster --resource-group MyResourceGroup --ssh-key-value ~/.ssh/id_rsa.pub
    

Nyilvános SSH-kulcs frissítése meglévő AKS-fürtön

az aks update A paranccsal frissítse az SSH nyilvános kulcsát (előzetes verzió) a fürtön. Ez a művelet frissíti a kulcsot az összes csomópontkészleten. Az argumentum használatával megadhat egy kulcsot vagy egy kulcsfájlt --ssh-key-value .

Feljegyzés

Az SSH-kulcsok frissítése az Azure-beli virtuálisgép-méretezési csoportokban AKS-fürtökkel támogatott.

A következő példák erre a parancsra mutatnak be:

  • Új nyilvános SSH-kulcsérték megadásához adja meg az argumentumot --ssh-key-value :

    az aks update --name myAKSCluster --resource-group MyResourceGroup --ssh-key-value 'ssh-rsa AAAAB3Nza-xxx'
    
  • Nyilvános SSH-kulcsfájl megadásához adja meg az --ssh-key-value argumentumot:

    az aks update --name myAKSCluster --resource-group MyResourceGroup --ssh-key-value ~/.ssh/id_rsa.pub
    

Fontos

Az SSH-kulcs frissítése után az AKS nem frissíti automatikusan a csomópontkészletet. Bármikor dönthet úgy, hogy csomópontkészlet-frissítési műveletet hajt végre. Az SSH-kulcsok frissítési művelete a csomópont lemezképének frissítése után lép érvénybe.

Az SSH letiltása – áttekintés

A biztonság javítása és a vállalati biztonsági követelmények vagy stratégia támogatása érdekében az AKS támogatja az SSH (előzetes verzió) letiltását mind a fürt, mind a csomópontkészlet szintjén. Az SSH letiltása az egyetlen támogatott megoldáshoz képest egyszerűsített megközelítést vezet be, amelyhez hálózati biztonsági csoportszabályokat kell konfigurálni az AKS-alhálózaton/csomópont hálózati adapteren (NIC).

Amikor letiltja az SSH-t a fürt létrehozásakor, az a fürt létrehozása után lép érvénybe. Ha azonban egy meglévő fürtön vagy csomópontkészleten letiltja az SSH-t, az AKS nem tiltja le automatikusan az SSH-t. Bármikor dönthet úgy, hogy csomópontkészlet-frissítési műveletet hajt végre. Az SSH-kulcsok letiltása/engedélyezése művelet a csomópont lemezképének frissítése után lép érvénybe.

SSH-paraméter Leírás
disabled Az SSH szolgáltatás le van tiltva.
localuser Az SSH szolgáltatás engedélyezve van, és az SSH-kulcsokkal rendelkező felhasználók biztonságosan hozzáférhetnek a csomóponthoz.

Feljegyzés

A kubectl hibakeresési csomópont az SSH letiltása után is működik, mert az nem függ az SSH szolgáltatástól.

SSH letiltása új fürttelepítésen

Alapértelmezés szerint az AKS-fürtcsomópontokon futó SSH-szolgáltatás nyitva van a fürtön futó összes felhasználó és pod számára. Megakadályozhatja, hogy bármely hálózatról a fürtcsomópontokhoz közvetlen SSH-hozzáféréssel korlátozza a támadási vektort, ha egy pod tárolója megsérül. az aks create A parancs használatával hozzon létre egy új fürtöt, és adja meg az argumentumot az --ssh-access disabled SSH (előzetes verzió) letiltásához az összes csomópontkészleten a fürt létrehozása során.

Fontos

Az SSH szolgáltatás letiltása után nem tud SSH-t létrehozni a fürtbe felügyeleti feladatok elvégzéséhez vagy hibaelhárításhoz.

az aks create -g myResourceGroup -n myManagedCluster --ssh-access disabled

Néhány perc elteltével a parancs befejeződik, és JSON formátumú információkat ad vissza a fürtről. Az alábbi példa az SSH letiltásával kapcsolatos kimenetre és eredményekre hasonlít:

"securityProfile": {
"sshAccess": "Disabled"
},

SSH letiltása meglévő fürtön

az aks update A parancs használatával frissítse a meglévő fürtöt, és adja meg az argumentumot az --ssh-access disabled SSH (előzetes verzió) letiltásához a fürt összes csomópontkészletén.

az aks update -g myResourceGroup -n myManagedCluster --ssh-access disabled

Néhány perc elteltével a parancs befejeződik, és JSON formátumú információkat ad vissza a fürtről. Az alábbi példa az SSH letiltásával kapcsolatos kimenetre és eredményekre hasonlít:

"securityProfile": {
"sshAccess": "Disabled"
},

A módosítás érvénybe lépéséhez újra kell létrehoznia az összes csomópontkészletet a az aks nodepool upgrade parancs használatával.

az aks nodepool upgrade --cluster-name myManagedCluster --name mynodepool --resource-group myResourceGroup --node-image-only

Fontos

A művelet során a virtuálisgép-méretezési csoport összes példánya frissül és újraépül az új SSH-konfiguráció használatához.

Új csomópontkészlet SSH-jának letiltása

az aks nodepool add A parancs használatával adjon hozzá egy csomópontkészletet, és adja meg az argumentumot az --ssh-access disabled SSH letiltásához a csomópontkészlet létrehozása során.

az aks nodepool add --cluster-name myManagedCluster --name mynodepool --resource-group myResourceGroup --ssh-access disabled  

Néhány perc elteltével a parancs befejezi és JSON-formátumú információkat ad vissza a fürtről, amely jelzi, hogy a mynodepool sikeresen létrejött. Az alábbi példa az SSH letiltásával kapcsolatos kimenetre és eredményekre hasonlít:

"securityProfile": {
"sshAccess": "Disabled"
},

Meglévő csomópontkészlet SSH-jának letiltása

Az [az aks nodepool update][az-aks-nodepool-update] command with the --ssh-access disabled" argumentum használatával tiltsa le az SSH-t (előzetes verzió) egy meglévő csomópontkészleten.

az aks nodepool update --cluster-name myManagedCluster --name mynodepool --resource-group myResourceGroup --ssh-access disabled

Néhány perc elteltével a parancs befejezi és JSON-formátumú információkat ad vissza a fürtről, amely jelzi, hogy a mynodepool sikeresen létrejött. Az alábbi példa az SSH letiltásával kapcsolatos kimenetre és eredményekre hasonlít:

"securityProfile": {
"sshAccess": "Disabled"
},

A módosítás érvénybe lépéséhez újra kell létrehoznia a csomópontkészletet a az aks nodepool upgrade parancs használatával.

az aks nodepool upgrade --cluster-name myManagedCluster --name mynodepool --resource-group myResourceGroup --node-image-only

SSH újbóli engedélyezése meglévő fürtön

az aks update A parancs használatával frissítsen egy meglévő fürtöt, és adja meg az argumentumot az --ssh-access localuser SSH (előzetes verzió) újbóli engedélyezéséhez a fürt összes csomópontkészletén.

az aks update -g myResourceGroup -n myManagedCluster --ssh-access localuser

A folyamat végrehajtása közben a következő üzenet lesz visszaadva:

Only after all the nodes are reimaged, does the disable/enable SSH Access operation take effect."

Az SSH újbóli engedélyezése után a csomópontok nem lesznek automatikusan újraépítve. Bármikor dönthet úgy, hogy újraimálási műveletet hajt végre.

Fontos

A művelet során a virtuálisgép-méretezési csoport összes példánya frissül, és újra megújul az új SSH nyilvános kulcs használatára.

SSH újbóli engedélyezése adott csomópontkészlethez

az aks update A parancs használatával frissítsen egy adott csomópontkészletet, és adja meg az argumentumot az --ssh-access localuser SSH (előzetes verzió) újbóli engedélyezéséhez a fürt adott csomópontkészletén. Az alábbi példában a nodepool1 a célcsomópontkészlet.

az aks nodepool update --cluster-name myManagedCluster --name nodepool1 --resource-group myResourceGroup --ssh-access localuser 

A folyamat végrehajtásakor a következő üzenet lesz visszaadva:

Only after all the nodes are reimaged, does the disable/enable SSH Access operation take effect.

Fontos

A művelet során a virtuálisgép-méretezési csoport összes példánya frissül, és újra megújul az új SSH nyilvános kulcs használatára.

SSH-szolgáltatás állapota

A node-shell egy csomóponton való használatához és az SSH-szolgáltatás állapotának vizsgálatához systemctlhajtsa végre a következő lépéseket.

  1. A parancs kubectl node-shell <node> futtatásával kérje le a standard bash-rendszerhéjat.

    kubectl node-shell aks-nodepool1-20785627-vmss000001
    
  2. Futtassa a systemctl parancsot az SSH szolgáltatás állapotának ellenőrzéséhez.

    systemctl status ssh
    

Ha az SSH le van tiltva, az alábbi mintakimenet az eredményeket jeleníti meg:

ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; disabled; vendor preset: enabled)
     Active: inactive (dead) since Wed 2024-01-03 15:36:57 UTC; 20min ago

Ha az SSH engedélyezve van, az alábbi mintakimenet az eredményeket jeleníti meg:

ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2024-01-03 15:40:20 UTC; 19min ago

Következő lépések

A fürtcsomópontokhoz való SSH-kapcsolattal kapcsolatos problémák elhárításához megtekintheti a Kubelet-naplókat, vagy megtekintheti a Kubernetes főcsomópontnaplóit.