SSH beheren voor beveiligde toegang tot AKS-knooppunten (Azure Kubernetes Service)
In dit artikel wordt beschreven hoe u de SSH-sleutels (preview) configureert op uw AKS-clusters of -knooppuntgroepen, tijdens de eerste implementatie of op een later tijdstip.
AKS ondersteunt de volgende configuratieopties voor het beheren van SSH-sleutels op clusterknooppunten:
- Een cluster maken met SSH-sleutels
- De SSH-sleutels op een bestaand AKS-cluster bijwerken
- De SSH-service uitschakelen en inschakelen
Belangrijk
AKS preview-functies zijn beschikbaar op selfservice, opt-in basis. Previews worden geleverd 'zoals is' en 'als beschikbaar' en ze worden uitgesloten van de serviceovereenkomsten en beperkte garantie. AKS-previews worden gedeeltelijk gedekt door klantondersteuning op basis van best effort. Daarom zijn deze functies niet bedoeld voor productiegebruik. Zie de volgende ondersteuningsartikelen voor meer informatie:
Voordat u begint
- U hebt versie 0.5.116 of hoger nodig
aks-preview
om Update te kunnen gebruiken. - U hebt versie 1.0.0b6 of hoger nodig
aks-preview
om Uitschakelen te gebruiken. - De functie SSH maken en bijwerken ondersteunt Linux-, Windows- en Azure Linux-knooppuntgroepen op bestaande clusters.
- De functie SSH uitschakelen wordt niet ondersteund in deze preview-versie op knooppuntgroepen met het Windows Server-besturingssysteem.
aks-preview
De Azure CLI-extensie installeren
Installeer de aks-preview-extensie met behulp van de
az extension add
opdracht.az extension add --name aks-preview
Werk bij naar de nieuwste versie van de extensie met behulp van de
az extension update
opdracht.az extension update --name aks-preview
DisableSSHPreview
De functievlag registreren
Als u de functie SSH uitschakelen wilt gebruiken, moet u de volgende stappen uitvoeren om deze te registreren en in te schakelen in uw abonnement.
Registreer de
DisableSSHPreview
functievlag met behulp van deaz feature register
opdracht.az feature register --namespace "Microsoft.ContainerService" --name "DisableSSHPreview"
Het duurt enkele minuten voordat de status Geregistreerd wordt weergegeven.
Controleer de registratiestatus met behulp van de
az feature show
opdracht.az feature show --namespace "Microsoft.ContainerService" --name "DisableSSHPreview"
Wanneer de status Geregistreerd weergeeft, vernieuwt u de registratie van de Microsoft.ContainerService-resourceprovider met behulp van de
az provider register
opdracht.az provider register --namespace Microsoft.ContainerService
Een AKS-cluster maken met SSH-sleutels
Gebruik de opdracht az aks create om een AKS-cluster te implementeren met een openbare SSH-sleutel. U kunt de sleutel of een sleutelbestand opgeven met behulp van het --ssh-key-value
argument.
SSH-parameter | Beschrijving | Default value |
---|---|---|
--generate-ssh-key |
Als u geen eigen SSH-sleutels hebt, geeft u op --generate-ssh-key . De Azure CLI genereert automatisch een set SSH-sleutels en slaat deze op in de standaardmap ~/.ssh/ . |
|
--ssh-key-value | Openbare-sleutelpad of sleutelinhoud die moet worden geïnstalleerd op knooppunt-VM's voor SSH-toegang. Bijvoorbeeld: ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm . |
~/.ssh/id_rsa.pub |
--no-ssh-key |
Als u geen SSH-sleutels nodig hebt, geeft u dit argument op. AKS genereert echter automatisch een set SSH-sleutels omdat de resourceafhankelijkheid van de virtuele Azure-machine geen leeg SSH-sleutelsbestand ondersteunt. Als gevolg hiervan worden de sleutels niet geretourneerd en kunnen ze niet worden gebruikt voor SSH in de knooppunt-VM's. De persoonlijke sleutel wordt verwijderd en niet opgeslagen. |
Notitie
Als er geen parameters zijn opgegeven, verwijst de Azure CLI standaard naar de SSH-sleutels die zijn opgeslagen in het ~/.ssh/id_rsa.pub
bestand. Als de sleutels niet worden gevonden, retourneert de opdracht het bericht An RSA key file or key value must be supplied to SSH Key Value
.
Hier volgen enkele voorbeelden van deze opdracht:
Een cluster maken en de standaard gegenereerde SSH-sleutels gebruiken:
az aks create --name myAKSCluster --resource-group MyResourceGroup --generate-ssh-key
Als u een openbaar SSH-sleutelbestand wilt opgeven, neemt u het
--ssh-key-value
argument op:az aks create --name myAKSCluster --resource-group MyResourceGroup --ssh-key-value ~/.ssh/id_rsa.pub
Openbare SSH-sleutel bijwerken in een bestaand AKS-cluster
Gebruik de az aks update
opdracht om de openbare SSH-sleutel (preview) in uw cluster bij te werken. Met deze bewerking wordt de sleutel in alle knooppuntgroepen bijgewerkt. U kunt een sleutel of een sleutelbestand opgeven met behulp van het --ssh-key-value
argument.
Notitie
Het bijwerken van de SSH-sleutels wordt ondersteund in virtuele-machineschaalsets van Azure met AKS-clusters.
Hier volgen enkele voorbeelden van deze opdracht:
Als u een nieuwe openbare SSH-sleutelwaarde wilt opgeven, neemt u het
--ssh-key-value
argument op:az aks update --name myAKSCluster --resource-group MyResourceGroup --ssh-key-value 'ssh-rsa AAAAB3Nza-xxx'
Als u een openbaar SSH-sleutelbestand wilt opgeven, geeft u het op met het
--ssh-key-value
argument:az aks update --name myAKSCluster --resource-group MyResourceGroup --ssh-key-value ~/.ssh/id_rsa.pub
Belangrijk
Nadat u de SSH-sleutel hebt bijgewerkt, werkt AKS uw knooppuntgroep niet automatisch bij. U kunt er op elk gewenst moment voor kiezen om een updatebewerking voor nodepools uit te voeren. De bewerking SSH-sleutels bijwerken wordt van kracht nadat de update van een knooppuntinstallatiekopieën is voltooid.
SSH-overzicht uitschakelen
Om de beveiliging te verbeteren en uw bedrijfsbeveiligingsvereisten of -strategie te ondersteunen, ondersteunt AKS het uitschakelen van SSH (preview) zowel in het cluster als op knooppuntgroepniveau. SSH uitschakelen introduceert een vereenvoudigde benadering vergeleken met de enige ondersteunde oplossing. Hiervoor moeten regels voor netwerkbeveiligingsgroepen worden geconfigureerd op de AKS-subnet-/knooppuntnetwerkinterfacekaart (NIC). SSH uitschakelen ondersteunt alleen knooppuntgroepen voor virtuele-machineschaalsets.
Wanneer u SSH uitschakelt tijdens het maken van het cluster, wordt deze van kracht nadat het cluster is gemaakt. Wanneer u SSH echter uitschakelt op een bestaand cluster of knooppuntgroep, schakelt AKS SSH niet automatisch uit. U kunt er op elk gewenst moment voor kiezen om een upgradebewerking voor nodepools uit te voeren. De bewerking SSH-sleutels uitschakelen/inschakelen wordt van kracht nadat de update van de knooppuntinstallatiekopieën is voltooid.
Notitie
Wanneer u SSH uitschakelt op clusterniveau, is dit van toepassing op alle bestaande knooppuntgroepen. Voor knooppuntgroepen die na deze bewerking zijn gemaakt, is SSH standaard ingeschakeld en moet u deze opdrachten opnieuw uitvoeren om deze uit te schakelen.
SSH-parameter | Beschrijving |
---|---|
disabled |
De SSH-service is uitgeschakeld. |
localuser |
De SSH-service is ingeschakeld en gebruikers met SSH-sleutels hebben veilig toegang tot het knooppunt. |
Notitie
Kubectl-foutopsporingsknooppunt blijft werken nadat u SSH hebt uitgeschakeld, omdat dit niet afhankelijk is van de SSH-service.
SSH uitschakelen voor een nieuwe clusterimplementatie
De SSH-service op AKS-clusterknooppunten is standaard geopend voor alle gebruikers en pods die op het cluster worden uitgevoerd. U kunt directe SSH-toegang van elk netwerk naar clusterknooppunten voorkomen om de aanvalsvector te beperken als een container in een pod wordt aangetast.
Gebruik de az aks create
opdracht om een nieuw cluster te maken en neem het --ssh-access disabled
argument op om SSH (preview) uit te schakelen voor alle knooppuntgroepen tijdens het maken van het cluster.
Belangrijk
Nadat u de SSH-service hebt uitgeschakeld, kunt u geen SSH in het cluster uitvoeren om beheertaken uit te voeren of om problemen op te lossen.
Notitie
In een nieuw gemaakt cluster configureert ssh alleen de eerste systeemknooppuntpool. Alle andere knooppuntpools moeten worden geconfigureerd op knooppuntpoolniveau.
az aks create --resource-group myResourceGroup --name myManagedCluster --ssh-access disabled
Na enkele minuten is de opdracht voltooid en retourneert deze informatie over het cluster in JSON-indeling. Het volgende voorbeeld lijkt op de uitvoer en de resultaten met betrekking tot het uitschakelen van SSH:
"securityProfile": {
"sshAccess": "Disabled"
},
SSH uitschakelen voor een nieuwe knooppuntgroep
Gebruik de az aks nodepool add
opdracht om een knooppuntgroep toe te voegen en het --ssh-access disabled
argument op te nemen om SSH uit te schakelen tijdens het maken van een knooppuntgroep.
az aks nodepool add --cluster-name myManagedCluster --name mynodepool --resource-group myResourceGroup --ssh-access disabled
Na enkele minuten is de opdracht voltooid en retourneert JSON-opgemaakte informatie over het cluster dat aangeeft dat mynodepool is gemaakt. Het volgende voorbeeld lijkt op de uitvoer en de resultaten met betrekking tot het uitschakelen van SSH:
"securityProfile": {
"sshAccess": "Disabled"
},
SSH uitschakelen voor een bestaande knooppuntgroep
Gebruik het argument [az aks nodepool update][az-aks-nodepool-update] command with the
--ssh-access disabled" om SSH (preview) uit te schakelen voor een bestaande knooppuntgroep.
az aks nodepool update --cluster-name myManagedCluster --name mynodepool --resource-group myResourceGroup --ssh-access disabled
Na enkele minuten is de opdracht voltooid en retourneert JSON-opgemaakte informatie over het cluster dat aangeeft dat mynodepool is gemaakt. Het volgende voorbeeld lijkt op de uitvoer en de resultaten met betrekking tot het uitschakelen van SSH:
"securityProfile": {
"sshAccess": "Disabled"
},
Als de wijziging van kracht wordt, moet u de knooppuntgroep opnieuw instellen met behulp van de az aks nodepool upgrade
opdracht.
az aks nodepool upgrade --cluster-name myManagedCluster --name mynodepool --resource-group myResourceGroup --node-image-only
Belangrijk
Als u SSH op een bestaand cluster wilt uitschakelen, moet u SSH uitschakelen voor elke knooppuntgroep in dit cluster.
SSH opnieuw inschakelen op een bestaand cluster
Gebruik de az aks update
opdracht om een bestaand cluster bij te werken en het --ssh-access localuser
argument op te nemen om SSH (preview) opnieuw in te schakelen voor alle knooppuntgroepen in het cluster.
az aks update --resource-group myResourceGroup --name myManagedCluster --ssh-access localuser
Het volgende bericht wordt geretourneerd terwijl het proces wordt uitgevoerd:
Only after all the nodes are reimaged, does the disable/enable SSH Access operation take effect."
Na het opnieuw inschakelen van SSH worden de knooppunten niet automatisch opnieuw ingesteld. U kunt er op elk gewenst moment voor kiezen om een reimage-bewerking uit te voeren.
Belangrijk
Tijdens deze bewerking worden alle exemplaren van de virtuele-machineschaalset bijgewerkt en opnieuw ingesteld om de nieuwe openbare SSH-sleutel te gebruiken.
SSH opnieuw inschakelen voor een specifieke knooppuntgroep
Gebruik de az aks update
opdracht om een specifieke knooppuntgroep bij te werken en het --ssh-access localuser
argument op te nemen om SSH (preview) opnieuw in te schakelen voor die knooppuntgroep in het cluster. In het volgende voorbeeld is nodepool1 de doelknooppuntgroep.
az aks nodepool update --cluster-name myManagedCluster --name nodepool1 --resource-group myResourceGroup --ssh-access localuser
Het volgende bericht wordt geretourneerd wanneer het proces wordt uitgevoerd:
Only after all the nodes are reimaged, does the disable/enable SSH Access operation take effect.
Belangrijk
Tijdens deze bewerking worden alle exemplaren van de virtuele-machineschaalset bijgewerkt en opnieuw ingesteld om de nieuwe openbare SSH-sleutel te gebruiken.
SSH-servicestatus
Voer de volgende stappen uit om node-shell te gebruiken op één knooppunt en de SSH-servicestatus te inspecteren met behulp van systemctl
.
Haal de standaard bash-shell op door de opdrachtopdracht
kubectl node-shell <node>
uit te voeren.kubectl node-shell aks-nodepool1-20785627-vmss000001
Voer de
systemctl
opdracht uit om de status van de SSH-service te controleren.systemctl status ssh
Als SSH is uitgeschakeld, worden in de volgende voorbeelduitvoer de resultaten weergegeven:
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
Als SSH is ingeschakeld, worden in de volgende voorbeelduitvoer de resultaten weergegeven:
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
Volgende stappen
Als u problemen met SSH-connectiviteit met uw clusterknooppunten wilt oplossen, kunt u de kubelet-logboeken bekijken of de Kubernetes-hoofdknooppuntlogboeken weergeven.
Azure Kubernetes Service