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ége
aks-preview
. - A Letiltás használatához az 1.0.0b6-os vagy újabb verzióra van szüksége
aks-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
Telepítse az aks-preview bővítményt a
az extension add
paranccsal.az extension add --name aks-preview
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.
Regisztrálja a
DisableSSHPreview
funkciójelzőt aaz 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.
Ellenőrizze a regisztrációs állapotot a
az feature show
paranccsal.az feature show --namespace "Microsoft.ContainerService" --name "DisableSSHPreview"
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). Az SSH letiltása csak a virtuálisgép-méretezési csoportok csomópontkészleteit támogatja.
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.
Feljegyzés
Ha a fürt szintjén letiltja az SSH-t, az az összes meglévő csomópontkészletre vonatkozik. A művelet után létrehozott csomópontkészletek alapértelmezés szerint engedélyezve lesznek az SSH-ban, és a letiltáshoz újra le kell futtatnia ezeket a parancsokat.
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.
Feljegyzés
Egy újonnan létrehozott fürtön az ssh letiltása csak az 1. rendszercsomópontkészletet konfigurálja. Minden más csomópontkészletet a csomópontkészlet szintjén kell konfigurálni.
az aks create --resource-group myResourceGroup --name 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"
},
Ú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
Fontos
Ha egy meglévő fürtön szeretné letiltani az SSH-t, le kell tiltania az SSH-t a fürt minden csomópontkészletéhez.
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 --resource-group myResourceGroup --name 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 systemctl
hajtsa végre a következő lépéseket.
A parancs
kubectl node-shell <node>
futtatásával kérje le a standard bash-rendszerhéjat.kubectl node-shell aks-nodepool1-20785627-vmss000001
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.
Azure Kubernetes Service