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

  1. Installeer de aks-preview-extensie met behulp van de az extension add opdracht.

    az extension add --name aks-preview
    
  2. 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.

  1. Registreer de DisableSSHPreview functievlag met behulp van de az feature register opdracht.

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

    Het duurt enkele minuten voordat de status Geregistreerd wordt weergegeven.

  2. Controleer de registratiestatus met behulp van de az feature show opdracht.

    az feature show --namespace "Microsoft.ContainerService" --name "DisableSSHPreview"
    
  3. 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).

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.

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.

az aks create -g myResourceGroup -n 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 op een bestaand cluster

Gebruik de az aks update opdracht om een bestaand cluster bij te werken en neem het --ssh-access disabled argument op om SSH (preview) uit te schakelen voor alle knooppuntgroepen in het cluster.

az aks update -g myResourceGroup -n 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"
},

Als de wijziging van kracht wordt, moet u de installatiekopie van alle knooppuntgroepen 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

Tijdens deze bewerking worden alle exemplaren van virtuele-machineschaalsets bijgewerkt en hersteld om de nieuwe SSH-configuratie te gebruiken.

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

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 -g myResourceGroup -n 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.

  1. Haal de standaard bash-shell op door de opdrachtopdracht kubectl node-shell <node> uit te voeren.

    kubectl node-shell aks-nodepool1-20785627-vmss000001
    
  2. 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.