Aracılığıyla paylaş


Azure Kubernetes Service'te (AKS) yetkili IP adresi aralıklarını kullanarak API sunucusuna güvenli erişim

Bu makalede, Azure Kubernetes Service (AKS) iş yükleriniz için hangi IP adreslerinin ve CIDR'lerin denetim düzlemi uç noktalarına erişebileceğini sınırlamak için API sunucusu yetkili IP adresi aralıklarının nasıl kullanılacağı gösterilmektedir.

Önkoşullar

  • Azure CLI sürüm 2.0.76 veya üzeri yüklü ve yapılandırılmış. komutunu kullanarak az --version sürümünüzü denetleyin. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.
  • AKS kümenizi Azure DevOps ile tümleştirdiğinizde hangi IP adreslerinin dahil edilmesi gerektiğini öğrenmek için bkz. İzin verilen IP adresleri ve etki alanı URL'leri.

İpucu

Azure portalından Azure Copilot'ı kullanarak kümenize erişebilecek IP adreslerinde değişiklik yapabilirsiniz. Daha fazla bilgi için bkz. Azure Copilot kullanarak AKS kümeleriyle verimli çalışma.

Sınırlamalar ve Dikkat Edilecek Hususlar

  • Bu özellik yalnızca Ekim 2019'da oluşturulan kümeler için Standart SKU yük dengeleyicide desteklenir. Temel SKU yük dengeleyicide özelliği etkin olan tüm mevcut kümeler, Kubernetes sürümü ve denetim düzlemi yükseltilirse düzgün çalışmaya devam etmelidir. Ancak, bu kümeleri Standart SKU yük dengeleyiciye geçiremezsiniz.
  • Bu özelliği özel kümelerle kullanamazsınız.
  • Bu özelliği Node genel IP'lerini kullanan kümelerle kullanırken, Node genel IP'lerini kullanan düğüm havuzlarının genel IP ön eklerini kullanması gerekir. Genel IP ön eklerini yetkili aralıklar olarak eklemeniz gerekir.
  • En fazla 200 yetkili IP aralığı belirtebilirsiniz. Bu sınırın ötesine geçmek için 2.000'e kadar yetkili IP aralığını destekleyen API Server Sanal Ağ Tümleştirmesi'ni kullanmayı göz önünde bulundurun.

API sunucusu yetkili IP aralıklarına genel bakış

Kubernetes API sunucusu temel Kubernetes API'lerini kullanıma sunar ve ve kubernetes panosu gibi kubectl yönetim araçları için etkileşim sağlar. AKS, ayrılmış bir API sunucusu ile tek kiracılı bir küme denetim düzlemi sağlar. API sunucusuna varsayılan olarak bir genel IP adresi atanır. Kubernetes rol tabanlı erişim denetimi (Kubernetes RBAC) veya Azure RBAC kullanarak erişimi denetleyebilirsiniz.

Aksi takdirde genel olarak erişilebilen AKS denetim düzlemine /API sunucusuna erişimin güvenliğini sağlamak için yetkili IP aralıklarını etkinleştirebilir ve kullanabilirsiniz. Bu yetkili IP aralıkları yalnızca tanımlı IP adresi aralıklarının API sunucusuyla iletişim kurmasına izin verir. Bu yetkili IP aralıklarının parçası olmayan bir IP adresinden API sunucusuna yapılan tüm istekler engellenir. Kuralların yayılması iki dakika kadar sürebilir. Bağlantıyı test ederken bu saate kadar izin verin.

API sunucusu yetkili IP aralıkları yapılandırmanıza aşağıdaki IP adresi aralıklarını dahil öneririz:

  • Küme çıkış IP adresi (giden türünüz bağlı olarak güvenlik duvarı, NAT ağ geçidi veya başka bir adres).
  • Kümeyi yöneteceğimiz ağları temsil eden herhangi bir aralık.

API sunucusu yetkili IP aralıkları etkinleştirilmiş bir AKS kümesi oluşturma

Not

Küme oluşturma sırasında API sunucusu yetkili IP aralıklarını etkinleştirdiğinizde, belirttiğiniz aralıklara ek olarak standart SKU yük dengeleyicinin hem API sunucusu genel IP'sine hem de giden genel IP'sine varsayılan olarak otomatik olarak izin verilir.

Özel durum - 0.0.0.0/32: Bu, AKS'ye YALNıZCA Standart SKU yük dengeleyicinin giden genel IP'sinin API sunucusuna erişmesine izin vermesini söyleyen özel bir değerdir. 0.0.0.0/32 değeri, aşağıdakiler için bir yer tutucu işlevi görür:

  • Ek istemci IP aralıklarına izin vermenin varsayılan davranışını devre dışı bırakır.
  • API sunucusu erişimini yalnızca kümenin kendi giden IP'sine kısıtlar.
  • Kümenin kendi kendine yönetmesini ancak dış erişimi engellemesini istediğiniz senaryolar için kullanışlıdır.

API sunucusu yetkili IP aralıkları etkin bir küme oluştururken, yetkili genel IP adresi aralıklarının listesini sağlarsınız. Bir CIDR aralığı belirttiğinizde, ağ adresini (aralıktaki ilk IP adresi) kullanmanız gerekir. Örneğin, aralığına 137.117.106.88137.117.106.95izin vermek istiyorsanız belirtmelisiniz 137.117.106.88/29.

  • parametresiyle az aks create komutunu kullanarak --api-server-authorized-ip-ranges API sunucusu yetkili IP aralıkları etkinleştirilmiş bir AKS kümesi oluşturun. Aşağıdaki örnek, myResourceGroup adlı kaynak grubunda myAKSCluster adlı bir küme oluşturur ve IP adresi aralığının 73.140.245.0/24 API sunucusuna erişmesine izin verir:

    az aks create --resource-group myResourceGroup --name myAKSCluster --vm-set-type VirtualMachineScaleSets --load-balancer-sku standard --api-server-authorized-ip-ranges 73.140.245.0/24 --generate-ssh-keys
    
  • parametresiyle New-AzAksCluster cmdlet'ini kullanarak -ApiServerAccessAuthorizedIpRange etkinleştirilmiş API sunucusu yetkili IP aralıklarıyla bir AKS kümesi oluşturun. Aşağıdaki örnek, myResourceGroup adlı kaynak grubunda myAKSCluster adlı bir küme oluşturur ve IP adresi aralığının 73.140.245.0/24 API sunucusuna erişmesine izin verir:

    New-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -NodeVmSetType VirtualMachineScaleSets -LoadBalancerSku Standard -ApiServerAccessAuthorizedIpRange '73.140.245.0/24' -GenerateSshKey
    
  1. Azure portalı giriş sayfasında Kaynak
  2. Küme ayarlarını gerektiği gibi yapılandırın.
  3. Genel erişim altındaki bölümünde Yetkili IP aralıklarını ayarla'yı seçin.
  4. IP aralıklarını belirtin alanında, API sunucusuna erişim yetkisi vermek istediğiniz IP adresi aralıklarını girin.
  5. Küme ayarlarının geri kalanını gerektiği gibi yapılandırın.
  6. Hazır olduğunuzda, kümeyi oluşturmak için Gözden Geçir + Oluştur'u> seçin.

Standart SKU yük dengeleyici için giden IP'leri belirtme

API sunucusu yetkili IP aralıkları etkin bir küme oluştururken, veya --load-balancer-outbound-ips parametrelerini kullanarak --load-balancer-outbound-ip-prefixes küme için giden IP adreslerini veya ön eklerini de belirtebilirsiniz. Parametrelerde sağlanan tüm IP'lere, parametresindeki IP'lerle --api-server-authorized-ip-ranges birlikte izin verilir.

  • API sunucusu yetkili IP aralıkları etkinleştirilmiş bir AKS kümesi oluşturun ve parametresini kullanarak --load-balancer-outbound-ips Standart SKU yük dengeleyici için giden IP adreslerini belirtin. Aşağıdaki örnek, myResourceGroup adlı kaynak grubunda myAKSCluster adlı bir küme oluşturur, IP adresi aralığının 73.140.245.0/24 API sunucusuna erişmesine izin verir ve Standart SKU yük dengeleyici için iki giden IP adresi belirtir. Yer tutucuları <public-ip-id-1> ve <public-ip-id-2> genel IP adreslerinizin gerçek kaynak kimlikleriyle değiştirdiğinizden emin olun.

    az aks create --resource-group myResourceGroup --name myAKSCluster --vm-set-type VirtualMachineScaleSets --load-balancer-sku standard --api-server-authorized-ip-ranges 73.140.245.0/24 --load-balancer-outbound-ips <public-ip-id-1>,<public-ip-id-2> --generate-ssh-keys
    

Standart SKU yük dengeleyicinin yalnızca giden genel IP'sine izin ver

  • API sunucusu yetkili IP aralıkları etkinleştirilmiş bir AKS kümesi oluşturun ve parametresini kullanarak Standart SKU yük dengeleyicinin yalnızca giden genel IP'sine --api-server-authorized-ip-ranges izin verin. Aşağıdaki örnek, API sunucusu yetkili IP aralıkları etkinleştirilmiş myResourceGroup adlı kaynak grubunda myAKSCluster adlı bir küme oluşturur ve Standart SKU yük dengeleyicinin yalnızca giden genel IP'sine izin verir:

    az aks create --resource-group myResourceGroup --name myAKSCluster --vm-set-type VirtualMachineScaleSets --load-balancer-sku standard --api-server-authorized-ip-ranges 0.0.0.0/32 --generate-ssh-keys
    
  • API sunucusu yetkili IP aralıkları etkinleştirilmiş bir AKS kümesi oluşturun ve parametresini kullanarak Standart SKU yük dengeleyicinin yalnızca giden genel IP'sine -ApiServerAccessAuthorizedIpRange izin verin. Aşağıdaki örnek, API sunucusu yetkili IP aralıkları etkinleştirilmiş myResourceGroup adlı kaynak grubunda myAKSCluster adlı bir küme oluşturur ve Standart SKU yük dengeleyicinin yalnızca giden genel IP'sine izin verir:

    New-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -NodeVmSetType VirtualMachineScaleSets -LoadBalancerSku Standard -ApiServerAccessAuthorizedIpRange '0.0.0.0/32' -GenerateSshKey
    
  1. Azure portalı giriş sayfasında Kaynak
  2. Küme ayarlarını gerektiği gibi yapılandırın.
  3. Genel erişim altındaki bölümünde Yetkili IP aralıklarını ayarla'yı seçin.
  4. IP aralıklarını belirtin alanına 0.0.0.0/32 girin. Bu ayar, Standart SKU yük dengeleyicinin yalnızca giden genel IP'sine izin verir.
  5. Küme ayarlarının geri kalanını gerektiği gibi yapılandırın.
  6. Hazır olduğunuzda, kümeyi oluşturmak için Gözden Geçir + Oluştur'u> seçin.

Var olan bir kümede API sunucusu yetkili IP aralıklarını güncelleştirme

  • parametresiyle komutunu kullanarak mevcut kümenin az aks update API sunucusu yetkili IP aralıklarını güncelleştirin --api-server-authorized-ip-ranges . Aşağıdaki örnek, myResourceGroup adlı kaynak grubundaki myAKSCluster adlı kümedeki API sunucusu yetkili IP aralıklarını güncelleştirir ve IP adresi aralığını 73.140.245.0/24olarak güncelleştirir:

    az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges 73.140.245.0/24
    

Birden çok IP adresi aralığına izin ver

Birden çok IP adresi aralığına izin vermek için, birkaç IP adresini virgülle ayırarak listeleyebilirsiniz.

  • Mevcut bir kümenin az aks update API sunucusunun yetkili IP aralıklarını, --api-server-authorized-ip-ranges parametresiyle komutu kullanarak, birden çok IP adresi aralığına izin verecek şekilde güncelleyin. Aşağıdaki örnek, myResourceGroup adlı kaynak grubundaki myAKSCluster adlı kümede API sunucusu yetkili IP aralıklarını güncelleştirir ve birden çok IP adresi aralığına izin verir:

    az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges 73.140.245.0/24,193.168.1.0/24,194.168.1.0/24
    
  • parametresiyle cmdlet'ini kullanarak mevcut kümenin Set-AzAksCluster API sunucusu yetkili IP aralıklarını güncelleştirin -ApiServerAccessAuthorizedIpRange . Aşağıdaki örnek, myResourceGroup adlı kaynak grubundaki myAKSCluster adlı kümedeki API sunucusu yetkili IP aralıklarını güncelleştirir ve IP adresi aralığını 73.140.245.0/24olarak güncelleştirir:

    Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange '73.140.245.0/24'
    
  1. Azure portalına gidin ve güncelleştirmek istediğiniz AKS kümesini seçin.
  2. Hizmet menüsünde, Ayarlar altında seçin.
  3. Kaynak ayarları'nın altında Yönet'i seçin.
  4. Yetkili IP aralıkları sayfasında, Yetkili IP aralıklarını gerektiği gibi güncelleştirin.
  5. Bitirdiğinizde, Kaydet'i seçin.

Var olan bir kümede API sunucusu yetkili IP aralıklarını devre dışı bırakma

  • komutunu kullanarak az aks update API sunucusu yetkili IP aralıklarını devre dışı bırakın ve parametresi için "" boş bir aralık --api-server-authorized-ip-ranges belirtin.

    az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges ""
    
  • cmdlet'ini Set-AzAksCluster kullanarak API sunucusu yetkili IP aralıklarını devre dışı bırakın ve parametresi için '' boş bir aralık -ApiServerAccessAuthorizedIpRange belirtin.

    Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange ''
    
  1. Azure portalına gidin ve güncelleştirmek istediğiniz AKS kümesini seçin.
  2. Hizmet menüsünde, Ayarlar altında seçin.
  3. Kaynak ayarları'nın altında Yönet'i seçin.
  4. Yetkili IP aralıkları sayfasında Yetkili IP aralıklarını ayarla onay kutusunun seçimini kaldırın.
  5. Kaydet'i seçin.

Mevcut API sunucusu yetkili IP aralıklarını bulma

  • Mevcut API sunucusu yetkili IP aralıklarını bulmak için, --query parametresi apiServerAccessProfile.authorizedIpRanges olarak ayarlanmış az aks show komutunu kullanın.

    az aks show --resource-group myResourceGroup --name myAKSCluster --query apiServerAccessProfile.authorizedIpRanges
    

    Örnek çıkış:

    [
      "73.140.245.0/24"
    ]
    
  • cmdlet'ini Get-AzAksCluster kullanarak mevcut API sunucusu yetkili IP aralıklarını bulun.

    Get-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster | Select-Object -ExpandProperty ApiServerAccessProfile
    

    Örnek çıkış:

    AuthorizedIPRanges: {73.140.245.0/24}
    ...
    
  1. Azure portalına gidin ve AKS kümenizi seçin.

  2. Hizmet menüsünde, Ayarlar altında seçin. Mevcut API sunucusu yetkili IP aralıkları Kaynak ayarları altında listelenir.

    Azure portalında API sunucusu yetkili IP aralıklarının ekran görüntüsü.

Geliştirme makinenizden, araçlarınızdan veya otomasyonunuzdan API sunucusuna erişme

API sunucusuna buradan erişmek için geliştirme makinelerinizi, araçlarınızı veya otomasyon IP adreslerinizi onaylanan IP aralıklarının AKS kümesi listesine eklemeniz gerekir.

Bir diğer seçenek de, güvenlik duvarının sanal ağında ayrı bir alt ağ içinde gerekli araçlarla bir sıçrama kutusu yapılandırmaktır. Bu seçenek, ortamınızda ilgili ağa sahip bir güvenlik duvarı olduğunu ve güvenlik duvarı IP'lerini yetkili aralıklara eklediğinizi varsayar. Benzer şekilde, AKS alt ağından güvenlik duvarı alt ağına tünel oluşturmak zorunda kaldıysanız, küme alt ağında bir ara sunucu bulundurmak da işe yarar.

Not

Aşağıdaki örnek, onaylanan aralıklara başka bir IP adresi ekler. Hala mevcut IP adresini içerir. Mevcut IP adresinizi eklemezseniz, bu komut bunu yetkili aralıklara eklemek yerine yenisiyle değiştirir.

  1. Aşağıdaki komutu kullanarak IP adresinizi alın ve bir ortam değişkenine ayarlayın:

    # Retrieve your IP address
    CURRENT_IP=$(dig +short "myip.opendns.com" "@resolver1.opendns.com")
    
  2. parametresiyle az aks update komutunu kullanarak --api-server-authorized-ip-ranges IP adresinizi onaylananlar listesine ekleyin. Aşağıdaki örnek, geçerli IP adresinizi myResourceGroup adlı kaynak grubundaki myAKSCluster adlı kümedeki mevcut API sunucusu yetkili IP aralıklarına ekler:

    az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges $CURRENT_IP/24,73.140.245.0/24
    
  1. Aşağıdaki komutu kullanarak IP adresinizi alın ve bir ortam değişkenine ayarlayın:

    # Retrieve your IP address
    CURRENT_IP=$(dig +short "myip.opendns.com" "@resolver1.opendns.com")
    
  2. parametresiyle Set-AzAksCluster cmdlet'ini -ApiServerAccessAuthorizedIpRange kullanarak IP adresinizi onaylananlar listesine ekleyin. Aşağıdaki örnek, geçerli IP adresinizi myResourceGroup adlı kaynak grubundaki myAKSCluster adlı kümedeki mevcut API sunucusu yetkili IP aralıklarına ekler:

    Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange '$CURRENT_IP/24,73.140.245.0/24'
    

Bir diğer seçenek de genel IPv4 adresini almak için Windows sistemlerinde aşağıdaki komutu kullanmaktır:

Invoke-RestMethod http://ipinfo.io/json | Select -exp ip

Ayrıca IP adresinizi bulma veya İnternet tarayıcısında IP adresim nedir? sayfasındaki adımları izleyebilirsiniz.

AKS'de güvenlik hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: