Azure Kubernetes Service (AKS) düğümlerine güvenli erişim için SSH'yi yönetme
Bu makalede, ilk dağıtım sırasında veya daha sonra AKS kümelerinizde veya düğüm havuzlarınızda SSH anahtarlarının (önizleme) nasıl yapılandırıldığı açıklanır.
AKS, küme düğümlerinde SSH anahtarlarını yönetmek için aşağıdaki yapılandırma seçeneklerini destekler:
- SSH anahtarlarıyla küme oluşturma
- Mevcut aks kümesinde SSH anahtarlarını güncelleştirme
- SSH hizmetini devre dışı bırakma ve etkinleştirme
Önemli
AKS önizleme özellikleri self servis ve kabul temelinde kullanılabilir. Önizlemeler "olduğu gibi" ve "kullanılabilir" olarak sağlanır ve hizmet düzeyi sözleşmelerinin ve sınırlı garantinin dışında tutulur. AKS önizlemeleri, müşteri desteği tarafından kısmen en iyi çaba temelinde ele alınmaktadır. Bu nedenle, bu özellikler üretim kullanımı için tasarlanmamıştır. Daha fazla bilgi için aşağıdaki destek makalelerine bakın:
Başlamadan önce
- Update'i kullanmak için 0.5.116 veya sonraki bir sürümü kullanmanız gerekir
aks-preview
. - Devre Dışı Bırak'ı kullanmak için sürüm 1.0.0b6 veya üzeri gerekir
aks-preview
. - SSH Oluşturma ve Güncelleştirme özelliği, mevcut kümelerdeki Linux, Windows ve Azure Linux düğüm havuzlarını destekler.
- SSH'yi Devre Dışı Bırak özelliği, Windows Server işletim sistemini çalıştıran düğüm havuzlarında bu önizleme sürümünde desteklenmez.
Azure CLI uzantısını aks-preview
yükleme
komutunu kullanarak aks-preview uzantısını
az extension add
yükleyin.az extension add --name aks-preview
komutunu kullanarak uzantının en son sürümüne güncelleştirin
az extension update
.az extension update --name aks-preview
Özellik bayrağını DisableSSHPreview
kaydetme
SSH'yi Devre Dışı Bırak özelliğini kullanmak için aşağıdaki adımları gerçekleştirerek aboneliğinize kaydedin ve etkinleştirin.
DisableSSHPreview
komutunu kullanarak özellik bayrağınıaz feature register
kaydedin.az feature register --namespace "Microsoft.ContainerService" --name "DisableSSHPreview"
Durumun Kayıtlı olarak gösterilmesi birkaç dakika sürer.
komutunu kullanarak
az feature show
kayıt durumunu doğrulayın.az feature show --namespace "Microsoft.ContainerService" --name "DisableSSHPreview"
Durum Kayıtlı olarak yansıtıldığında, komutunu kullanarak Microsoft.ContainerService kaynak sağlayıcısının kaydını yenileyin
az provider register
.az provider register --namespace Microsoft.ContainerService
SSH anahtarlarıyla AKS kümesi oluşturma
Aks kümesini SSH ortak anahtarıyla dağıtmak için az aks create komutunu kullanın. Bağımsız değişkenini kullanarak --ssh-key-value
anahtarı veya anahtar dosyasını belirtebilirsiniz.
SSH parametresi | Açıklama | Default value |
---|---|---|
--generate-ssh-key |
Kendi SSH anahtarlarınız yoksa belirtin --generate-ssh-key . Azure CLI otomatik olarak bir dizi SSH anahtarı oluşturur ve bunları varsayılan dizinine ~/.ssh/ kaydeder. |
|
--ssh-key-value | SSH erişimi için düğüm VM'lerine yüklenecek ortak anahtar yolu veya anahtar içeriği. Örneğin, ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm . |
~/.ssh/id_rsa.pub |
--no-ssh-key |
SSH anahtarları gerekmiyorsa bu bağımsız değişkeni belirtin. Ancak Azure Sanal Makine kaynak bağımlılığı boş bir SSH anahtarları dosyasını desteklemediğinden AKS otomatik olarak bir SSH anahtarları kümesi oluşturur. Sonuç olarak anahtarlar döndürülür ve düğüm VM'lerinde SSH için kullanılamaz. Özel anahtar atılır ve kaydedilmez. |
Not
Parametre belirtilmezse, Azure CLI varsayılan olarak dosyada depolanan SSH anahtarlarına başvurur ~/.ssh/id_rsa.pub
. Anahtarlar bulunamazsa, komut iletisini An RSA key file or key value must be supplied to SSH Key Value
döndürür.
Bu komutun örnekleri aşağıda verilmiştir:
Küme oluşturmak ve varsayılan olarak oluşturulan SSH anahtarlarını kullanmak için:
az aks create --name myAKSCluster --resource-group MyResourceGroup --generate-ssh-key
SSH ortak anahtar dosyası belirtmek için bağımsız değişkenini
--ssh-key-value
ekleyin:az aks create --name myAKSCluster --resource-group MyResourceGroup --ssh-key-value ~/.ssh/id_rsa.pub
Mevcut AKS kümesinde SSH ortak anahtarını güncelleştirme
az aks update
Kümenizdeki SSH ortak anahtarını (önizleme) güncelleştirmek için komutunu kullanın. Bu işlem anahtarı tüm düğüm havuzlarında güncelleştirir. Bağımsız değişkenini --ssh-key-value
kullanarak bir anahtar veya anahtar dosyası belirtebilirsiniz.
Not
AKS kümeleri ile Azure sanal makine ölçek kümelerinde SSH anahtarlarının güncelleştirilmesi desteklenir.
Bu komutun örnekleri aşağıda verilmiştir:
Yeni bir SSH ortak anahtar değeri belirtmek için bağımsız değişkenini
--ssh-key-value
ekleyin:az aks update --name myAKSCluster --resource-group MyResourceGroup --ssh-key-value 'ssh-rsa AAAAB3Nza-xxx'
Bir SSH ortak anahtar dosyası belirtmek için bunu bağımsız değişkeniyle
--ssh-key-value
belirtin:az aks update --name myAKSCluster --resource-group MyResourceGroup --ssh-key-value ~/.ssh/id_rsa.pub
Önemli
SSH anahtarını güncelleştirdikten sonra AKS düğüm havuzunuzu otomatik olarak güncelleştirmez. İstediğiniz zaman bir nodepool güncelleştirme işlemi gerçekleştirmeyi seçebilirsiniz. Bir düğüm görüntüsü güncelleştirmesi tamamlandıktan sonra güncelleştirme SSH anahtarları işlemi etkinleşir.
SSH'yi devre dışı bırakma genel bakışı
Güvenliği geliştirmek ve kurumsal güvenlik gereksinimlerinizi veya stratejinizi desteklemek için AKS, hem kümede hem de düğüm havuzu düzeyinde SSH'yi (önizleme) devre dışı bırakmayı destekler. SSH'yi devre dışı bırakma, AKS alt ağı/düğüm ağ arabirimi kartında (NIC) ağ güvenlik grubu kurallarının yapılandırılmasını gerektiren desteklenen tek çözümle karşılaştırıldığında basitleştirilmiş bir yaklaşım sunar. SSH'yi devre dışı bırakma yalnızca Sanal Makine Ölçek Kümeleri düğüm havuzlarını destekler.
Küme oluşturma zamanında SSH'yi devre dışı bırakırsanız, küme oluşturulduktan sonra geçerli olur. Ancak mevcut bir kümede veya düğüm havuzunda SSH'yi devre dışı bırakırsanız AKS, SSH'yi otomatik olarak devre dışı bırakmaz. İstediğiniz zaman bir düğüm havuzu yükseltme işlemi gerçekleştirmeyi seçebilirsiniz. Düğüm görüntüsü güncelleştirmesi tamamlandıktan sonra SSH anahtarlarını devre dışı bırakma/etkinleştirme işlemi etkinleşir.
Not
SSH'yi küme düzeyinde devre dışı bırakırsanız, tüm mevcut düğüm havuzları için geçerlidir. Bu işlemden sonra oluşturulan tüm düğüm havuzlarında varsayılan olarak SSH etkinleştirilir ve devre dışı bırakmak için bu komutları yeniden çalıştırmanız gerekir.
SSH parametresi | Açıklama |
---|---|
disabled |
SSH hizmeti devre dışı bırakıldı. |
localuser |
SSH hizmeti etkinleştirilir ve SSH anahtarları olan kullanıcılar düğüme güvenli bir şekilde erişebilir. |
Not
kubectl hata ayıklama düğümü , SSH hizmetine bağlı olmadığından SSH'yi devre dışı bırakdıktan sonra çalışmaya devam eder.
Yeni küme dağıtımında SSH'yi devre dışı bırakma
Varsayılan olarak, AKS kümesi düğümlerindeki SSH hizmeti kümede çalışan tüm kullanıcılara ve podlara açıktır. Poddaki bir kapsayıcının güvenliği aşılırsa saldırı vektörü sınırlamaya yardımcı olmak için herhangi bir ağdan küme düğümlerine doğrudan SSH erişimini engelleyebilirsiniz.
az aks create
Komutunu kullanarak yeni bir küme oluşturun ve küme oluşturma sırasında tüm düğüm havuzlarında SSH'yi (önizleme) devre dışı bırakmak için bağımsız değişkenini ekleyin--ssh-access disabled
.
Önemli
SSH hizmetini devre dışı bırakdıktan sonra, yönetim görevlerini gerçekleştirmek veya sorun gidermek için kümede SSH yapamazsınız.
Not
Yeni oluşturulan bir kümede, ssh'yi devre dışı bırakmak yalnızca birinci sistem düğüm havuzunu yapılandıracaktır. Diğer tüm düğüm havuzlarının düğüm havuzu düzeyinde yapılandırılması gerekir.
az aks create --resource-group myResourceGroup --name myManagedCluster --ssh-access disabled
Birkaç dakika sonra komut tamamlanıp kümeyle ilgili JSON biçimli bilgileri döndürür. Aşağıdaki örnek, çıktıya ve SSH'yi devre dışı bırakmayla ilgili sonuçlara benzer:
"securityProfile": {
"sshAccess": "Disabled"
},
Yeni düğüm havuzu için SSH'yi devre dışı bırakma
az aks nodepool add
Komutunu kullanarak düğüm havuzu ekleyin ve düğüm havuzu oluşturma sırasında SSH'yi devre dışı bırakmak için bağımsız değişkenini ekleyin--ssh-access disabled
.
az aks nodepool add --cluster-name myManagedCluster --name mynodepool --resource-group myResourceGroup --ssh-access disabled
Birkaç dakika sonra komut tamamlanıp küme hakkında mynodepool'un başarıyla oluşturulduğunu belirten JSON biçimli bilgileri döndürür. Aşağıdaki örnek, çıktıya ve SSH'yi devre dışı bırakmayla ilgili sonuçlara benzer:
"securityProfile": {
"sshAccess": "Disabled"
},
Mevcut düğüm havuzu için SSH'yi devre dışı bırakma
Mevcut düğüm havuzunda SSH'yi (önizleme) devre dışı bırakmak için [az aks nodepool update][az-aks-nodepool-update] command with the
--ssh-access disabled' bağımsız değişkenini kullanın.
az aks nodepool update --cluster-name myManagedCluster --name mynodepool --resource-group myResourceGroup --ssh-access disabled
Birkaç dakika sonra komut tamamlanıp küme hakkında mynodepool'un başarıyla oluşturulduğunu belirten JSON biçimli bilgileri döndürür. Aşağıdaki örnek, çıktıya ve SSH'yi devre dışı bırakmayla ilgili sonuçlara benzer:
"securityProfile": {
"sshAccess": "Disabled"
},
Değişikliğin etkili olması için komutunu kullanarak az aks nodepool upgrade
düğüm havuzunu yeniden oluşturmanız gerekir.
az aks nodepool upgrade --cluster-name myManagedCluster --name mynodepool --resource-group myResourceGroup --node-image-only
Önemli
Mevcut bir kümede SSH'yi devre dışı bırakmak için, bu kümedeki her düğüm havuzu için SSH'yi devre dışı bırakmanız gerekir.
Mevcut bir kümede SSH'yi yeniden etkinleştirme
az aks update
Komutunu kullanarak mevcut kümeyi güncelleştirin ve kümedeki --ssh-access localuser
tüm düğüm havuzlarında SSH'yi (önizleme) yeniden etkinleştirmek için bağımsız değişkenini ekleyin.
az aks update --resource-group myResourceGroup --name myManagedCluster --ssh-access localuser
İşlem gerçekleştirilirken aşağıdaki ileti döndürülür:
Only after all the nodes are reimaged, does the disable/enable SSH Access operation take effect."
SSH yeniden etkinleştirildikten sonra düğümler otomatik olarak yeniden etkinleştirilmez. İstediğiniz zaman yeniden oluşturma işlemi gerçekleştirmeyi seçebilirsiniz.
Önemli
Bu işlem sırasında tüm Sanal Makine Ölçek Kümesi örnekleri yükseltilir ve yeni SSH ortak anahtarını kullanacak şekilde yeniden oluşturulur.
Belirli bir düğüm havuzu için SSH'yi yeniden etkinleştirme
az aks update
Komutunu kullanarak belirli bir düğüm havuzunu güncelleştirin ve kümedeki --ssh-access localuser
düğüm havuzunda SSH'yi (önizleme) yeniden etkinleştirmek için bağımsız değişkenini ekleyin. Aşağıdaki örnekte nodepool1 hedef düğüm havuzudur.
az aks nodepool update --cluster-name myManagedCluster --name nodepool1 --resource-group myResourceGroup --ssh-access localuser
İşlem gerçekleştirildiğinde aşağıdaki ileti döndürülür:
Only after all the nodes are reimaged, does the disable/enable SSH Access operation take effect.
Önemli
Bu işlem sırasında tüm Sanal Makine Ölçek Kümesi örnekleri yükseltilir ve yeni SSH ortak anahtarını kullanacak şekilde yeniden oluşturulur.
SSH hizmeti durumu
Bir düğümde node-shell kullanmak ve kullanarak systemctl
SSH hizmeti durumunu incelemek için aşağıdaki adımları gerçekleştirin.
komut
kubectl node-shell <node>
komutunu çalıştırarak standart bash kabuğunu alın.kubectl node-shell aks-nodepool1-20785627-vmss000001
systemctl
SSH hizmetinin durumunu denetlemek için komutunu çalıştırın.systemctl status ssh
SSH devre dışı bırakılırsa, aşağıdaki örnek çıktı sonuçları gösterir:
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
SSH etkinse, aşağıdaki örnek çıktı sonuçları gösterir:
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
Sonraki adımlar
Küme düğümlerinize SSH bağlantısıyla ilgili sorunları gidermeye yardımcı olmak için kubelet günlüklerini görüntüleyebilir veya Kubernetes ana düğüm günlüklerini görüntüleyebilirsiniz.
Azure Kubernetes Service