Azure Kubernetes Service (AKS) düğüm havuzları için Federal Bilgi İşlem Standardı'nı (FIPS) etkinleştirme

Federal Bilgi İşleme Standardı (FIPS) 140-2, bilgi teknolojisi ürünleri ve sistemlerindeki şifreleme modülleri için minimum güvenlik gereksinimlerini tanımlayan bir ABD kamu standardıdır. Azure Kubernetes Service (AKS), FIPS 140-2 etkin linux ve Windows düğüm havuzları oluşturmanıza olanak tanır. FIPS özellikli düğüm havuzlarında çalışan dağıtımlar, daha fazla güvenlik sağlamak ve FedRAMP uyumluluğunun bir parçası olarak güvenlik denetimlerinin karşılanmasına yardımcı olmak için bu şifreleme modüllerini kullanabilir. FIPS 140-2 hakkında daha fazla bilgi için bkz . Federal Bilgi İşleme Standardı (FIPS) 140.

Önkoşullar

  • Azure CLI sürüm 2.32.0 veya üzeri yüklü ve yapılandırılmış. Sürümü bulmak için az --version komutunu çalıştırın. Azure CLI'yı yükleme veya yükseltme hakkında daha fazla bilgi için bkz . Azure CLI'yi yükleme.

Not

AKS İzleme Eklentisi, Aracı sürüm 3.1.17 (Linux) ve Win-3.1.17 (Windows) ile başlayan Ubuntu, Azure Linux ve Windows ile FIPS özellikli düğüm havuzlarını destekler.

Sınırlamalar

  • FIPS özellikli düğüm havuzları aşağıdaki sınırlamalara sahiptir:
    • FIPS özellikli düğüm havuzları Için Kubernetes sürüm 1.19 ve üzeri gerekir.
    • FIPS için kullanılan temel paketleri veya modülleri güncelleştirmek için Düğüm Görüntüsü Yükseltme'yi kullanmanız gerekir.
    • FIPS düğümleri üzerindeki kapsayıcı görüntüleri FIPS uyumluluğu için değerlendirilmedi.
    • FIPS bazı kimlik doğrulama modüllerini devre dışı bırakdığından CIFS paylaşımını bağlama işlemi başarısız oluyor. Bu sorunu geçici olarak çözmek için bkz . FIPS özellikli düğüm havuzuna dosya paylaşımı bağlanırken oluşan hatalar.

Önemli

FIPS özellikli Linux görüntüsü, Linux tabanlı düğüm havuzları için kullanılan varsayılan Linux görüntüsünden farklı bir görüntüdür.

FIPS özellikli düğüm görüntüleri, çekirdek sürümü gibi FIPS etkin olmayan görüntülerden farklı sürüm numaralarına sahip olabilir. FIPS özellikli düğüm havuzları ve düğüm görüntüleri için güncelleştirme döngüsü, FIPS etkin olmayan düğüm havuzlarından ve görüntülerden farklı olabilir.

Desteklenen İşletim Sistemi Sürümleri

Linux ve Windows gibi desteklenen tüm işletim sistemi türlerinde FIPS özellikli düğüm havuzları oluşturabilirsiniz. Ancak, tüm işletim sistemi sürümleri FIPS özellikli düğüm havuzlarını desteklemez. Yeni bir işletim sistemi sürümü yayımlandıktan sonra genellikle FIPS uyumlu olmadan önce bir bekleme süresi olur.

Aşağıdaki tabloda desteklenen işletim sistemi sürümleri yer almaktadır:

İşletim Sistemi Türü İşletim Sistemi SKU'su FIPS Uyumluluğu
Linux Ubuntu Desteklenir
Linux Azure Linux Desteklenir
Windows Windows Server 2019 Desteklenir
Windows Windows Server 2022 Desteklenir

FIPS etkin Ubuntu istenirken, varsayılan Ubuntu sürümü FIPS'yi desteklemiyorsa, AKS varsayılan olarak Ubuntu'nun en son FIPS tarafından desteklenen sürümüne sahip olur. Örneğin, Linux düğüm havuzları için Ubuntu 22.04 varsayılandır. 22.04 şu anda FIPS'yi desteklemediğinden AKS, Linux FIPS özellikli düğüm havuzları için varsayılan olarak Ubuntu 20.04 olarak ayarlanmıştır.

Not

Daha önce, belirli bir işletim sisteminin FIPS'yi destekleyip desteklemediğini belirlemek için GetOSOptions API'sini kullanabilirsiniz. GetOSOptions API'leri artık kullanım dışıdır ve artık 2024-05-01 sürümünden itibaren yeni AKS API sürümlerine dahil edilmeyecektir.

FIPS özellikli Linux düğüm havuzu oluşturma

  1. parametresiyle --enable-fips-image komutunu kullanarak az aks nodepool add FIPS özellikli bir Linux düğüm havuzu oluşturun.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name fipsnp \
        --enable-fips-image
    

    Not

    Varsayılan düğüm havuzunda FIPS'yi etkinleştirmek için küme oluştururken parametresini komutuyla az aks create da kullanabilirsiniz--enable-fips-image. Bu şekilde oluşturulan bir kümeye düğüm havuzları eklerken, FIPS özellikli bir düğüm havuzu oluşturmak için düğüm havuzları eklerken parametresini kullanmanız --enable-fips-image gerekir.

  2. agentPoolProfiles içindeki enableFIPS değerinin az aks show komutunu ve sorgusunu kullanarak düğüm havuzunuzun FIPS etkin olduğunu doğrulayın.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    Aşağıdaki örnek çıktı fipsnp düğüm havuzunun FIPS etkin olduğunu gösterir:

    Name       enableFips
    ---------  ------------
    fipsnp     True
    nodepool1  False  
    
  3. komutunu kullanarak düğümleri listeleyin kubectl get nodes .

    kubectl get nodes
    

    Aşağıdaki örnek çıktı, kümedeki düğümlerin listesini gösterir. ile aks-fipsnp başlayan düğümler, FIPS özellikli düğüm havuzunun bir parçasıdır.

    NAME                                STATUS   ROLES   AGE     VERSION
    aks-fipsnp-12345678-vmss000000      Ready    agent   6m4s    v1.19.9
    aks-fipsnp-12345678-vmss000001      Ready    agent   5m21s   v1.19.9
    aks-fipsnp-12345678-vmss000002      Ready    agent   6m8s    v1.19.9
    aks-nodepool1-12345678-vmss000000   Ready    agent   34m     v1.19.9
    
  4. komutunu kullanarak kubectl debug FIPS özellikli düğüm havuzundaki düğümlerden birinde etkileşimli bir oturumla bir dağıtım çalıştırın.

    kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
    
  5. Etkileşimli oturum çıkışından FIPS şifreleme kitaplıklarının etkinleştirildiğini doğrulayın. Çıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:

    root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled
    1
    

FIPS özellikli düğüm havuzları, dağıtımların bu düğüm havuzlarını hedeflemek için kullanabileceği bir kubernetes.azure.com/fips_enabled=true etiketine de sahiptir.

FIPS özellikli bir Windows düğüm havuzu oluşturma

  1. parametresiyle --enable-fips-image komutunu kullanarak az aks nodepool add FIPS özellikli bir Windows düğüm havuzu oluşturun. Linux tabanlı düğüm havuzlarının aksine, Windows düğüm havuzları aynı görüntü kümesini paylaşır.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name fipsnp \
        --enable-fips-image \
        --os-type Windows
    
  2. agentPoolProfiles içindeki enableFIPS değerinin az aks show komutunu ve sorgusunu kullanarak düğüm havuzunuzun FIPS etkin olduğunu doğrulayın.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    
  3. FiPS etkin düğüm havuzundaki bir Windows düğümüne RDP bağlantısı oluşturarak Windows düğüm havuzlarının FIPS şifreleme kitaplıklarına erişimi olduğunu doğrulayın ve kayıt defterini denetleyin. Çalıştır uygulamasında girinregedit.

  4. Kayıt defterinde arayın HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy .

  5. 1 olarak ayarlanırsa Enabled FIPS etkinleştirilir.

FiPS Algoritma İlkesi'ne kayıt defteri düzenleyicisinin ve etkinleştirildiğini gösteren ekran görüntüsü.

FIPS özellikli düğüm havuzları, dağıtımların bu düğüm havuzlarını hedeflemek için kullanabileceği bir kubernetes.azure.com/fips_enabled=true etiketine de sahiptir.

FIPS'yi etkinleştirmek veya devre dışı bırakmak için mevcut düğüm havuzunu güncelleştirme

Mevcut Linux düğüm havuzları FIPS'yi etkinleştirmek veya devre dışı bırakmak için güncelleştirilebilir. Düğüm havuzlarınızı FIPS olmayan bir ortamdan FIPS'ye geçirmeyi planlıyorsanız, üretim ortamına geçirmeden önce uygulamanızın bir test ortamında düzgün çalıştığını doğrulayın. Uygulamanızı bir test ortamında doğrulamak, FIPS çekirdeğinin FIPS uyumlu olmayan bir MD4 algoritması gibi bazı zayıf şifreleme veya şifreleme algoritmalarını engellemesinin neden olduğu sorunları önlemelidir.

Not

FIPS'yi etkinleştirmek veya devre dışı bırakmak için mevcut bir Linux düğüm havuzunu güncelleştirirken düğüm havuzu güncelleştirmesi fips ile fips olmayan görüntü arasında hareket eder. Bu düğüm havuzu güncelleştirmesi, güncelleştirmeyi tamamlamak için bir yeniden tahmin tetikler. Bu, düğüm havuzu güncelleştirmesinin tamamlanmasının birkaç dakika sürmesine neden olabilir.

Önkoşullar

  • Azure CLI sürüm 2.64.0 veya üzeri. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.

Mevcut düğüm havuzunda FIPS'yi etkinleştirme

FiPS'yi etkinleştirmek için mevcut Linux düğüm havuzları güncelleştirilebilir. Mevcut bir düğüm havuzunu güncelleştirdiğinizde, düğüm görüntüsü geçerli görüntüden aynı işletim sistemi SKU'sunun önerilen FIPS görüntüsüne dönüşür.

  1. [az aks nodepool update][az-aks-nodepool-update] komutunu parametresiyle kullanarak düğüm havuzunu güncelleştirin --enable-fips-image .

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name np \
        --enable-fips-image
    

Yukarıdaki komut, FIPS uyumlu İşletim Sistemini dağıtmak için düğüm havuzunun yeniden görüntüsünü hemen tetikler. Bu yeniden oluşturma, düğüm havuzu güncelleştirmesi sırasında gerçekleşir. Ek adım gerekmez.

  1. agentPoolProfiles içindeki enableFIPS değerinin az aks show komutunu ve sorgusunu kullanarak düğüm havuzunuzun FIPS etkin olduğunu doğrulayın.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    Aşağıdaki örnek çıktı, np düğüm havuzunun FIPS etkin olduğunu gösterir:

    Name       enableFips
    ---------  ------------
    np         True
    nodepool1  False  
    
  2. komutunu kullanarak düğümleri listeleyin kubectl get nodes .

    kubectl get nodes
    

    Aşağıdaki örnek çıktı, kümedeki düğümlerin listesini gösterir. ile aks-np başlayan düğümler, FIPS özellikli düğüm havuzunun bir parçasıdır.

    NAME                                STATUS   ROLES   AGE     VERSION
    aks-np-12345678-vmss000000          Ready    agent   6m4s    v1.19.9
    aks-np-12345678-vmss000001          Ready    agent   5m21s   v1.19.9
    aks-np-12345678-vmss000002          Ready    agent   6m8s    v1.19.9
    aks-nodepool1-12345678-vmss000000   Ready    agent   34m     v1.19.9
    
  3. komutunu kullanarak kubectl debug FIPS özellikli düğüm havuzundaki düğümlerden birinde etkileşimli bir oturumla bir dağıtım çalıştırın.

    kubectl debug node/aks-np-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
    
  4. Etkileşimli oturum çıkışından FIPS şifreleme kitaplıklarının etkinleştirildiğini doğrulayın. Çıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:

    root@aks-np-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled
    1
    

FIPS özellikli düğüm havuzları, dağıtımların bu düğüm havuzlarını hedeflemek için kullanabileceği bir kubernetes.azure.com/fips_enabled=true etiketine de sahiptir.

Mevcut düğüm havuzunda FIPS'yi devre dışı bırakma

Mevcut Linux düğüm havuzları FIPS'yi devre dışı bırakmak için güncelleştirilebilir. Mevcut bir düğüm havuzunu güncelleştirirken, düğüm görüntüsü geçerli FIPS görüntüsünden aynı işletim sistemi SKU'sunun önerilen FIPS olmayan görüntüsüne dönüşür. Düğüm görüntüsü değişikliği yeniden görüntüden sonra gerçekleşir.

  1. [az aks nodepool update][az-aks-nodepool-update] komutunu kullanarak bir Linux düğüm havuzunu parametresiyle güncelleştirin --disable-fips-image .

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name np \
        --disable-fips-image
    

Yukarıdaki komut, FIPS uyumlu İşletim Sistemini dağıtmak için düğüm havuzunun yeniden görüntüsünü hemen tetikler. Bu yeniden oluşturma, düğüm havuzu güncelleştirmesi sırasında gerçekleşir. Ek adım gerekmez.

  1. agentPoolProfiles içindeki enableFIPS değerinin az aks show komutunu ve sorgusunu kullanarak düğüm havuzunuzun FIPS etkin olmadığını doğrulayın.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    Aşağıdaki örnek çıktı, np düğüm havuzunun FIPS etkin olmadığını gösterir:

    Name       enableFips
    ---------  ------------
    np         False
    nodepool1  False  
    

Sonraki adımlar

AKS güvenliği hakkında daha fazla bilgi edinmek için bkz . Azure Kubernetes Service'te (AKS) küme güvenliği ve yükseltmeleri için en iyi yöntemler.