Aracılığıyla paylaş


Azure Kubernetes Service özel sertifika yetkilisi (CA) (AKS) (önizleme)

AKS aşağıdaki sertifikaları, Sertifika Yetkililerini (CA) ve Hizmet Hesaplarını (CA) oluşturur ve kullanır:

  • AKS API sunucusu, Küme CA'sı adlı bir CA oluşturur.
  • API sunucusunda, API sunucusundan kubelet'lere tek yönlü iletişim için sertifikaları imzalayan bir Küme CA'sı vardır.
  • Her kubelet, kubelet'ten API sunucusuna iletişim için Küme CA'sı tarafından imzalanan bir Sertifika İmzalama İsteği (CSR) de oluşturur.
  • API toplayıcısı, diğer API'lerle iletişim için sertifika vermek üzere Küme CA'sını kullanır. API toplayıcısı bu sertifikaların verilmesi için kendi CA'sına da sahip olabilir, ancak şu anda Küme CA'sını kullanır.
  • Her düğüm, Küme CA'sı tarafından imzalanan bir SA belirteci kullanır.
  • İstemcinin kubectl AKS kümesiyle iletişim kurmak için bir sertifikası vardır.

Özel kayıt defterleri, ara sunucular ve güvenlik duvarları gibi Azure Kubernetes Service (AKS) kümeleriniz ve iş yükleriniz arasında güven oluşturmanıza olanak tanıyan özel sertifika yetkilileri de oluşturabilirsiniz. Kubernetes gizli dizisi sertifika yetkilisinin bilgilerini depolar ve ardından kümedeki tüm düğümlere geçirilir. Bu özellik düğüm havuzu başına uygulanır, bu nedenle yeni ve mevcut düğüm havuzlarında etkinleştirmeniz gerekir.

Bu makalede özel CA'ların nasıl oluşturulacağı ve AKS kümelerinize nasıl uygulanacağı gösterilmektedir.

Önkoşullar

  • Azure aboneliği. Azure aboneliğiniz yoksa ücretsiz bir hesap oluşturun.
  • Azure CLI yüklü (sürüm 2.43.0 veya üzeri).
  • Base64 ile kodlanmış bir sertifika dizesi veya sertifika içeren bir metin dosyası.

Sınırlamalar

  • Bu özellik şu anda Windows düğüm havuzları için desteklenmemaktadır.

Azure CLI uzantısını aks-preview yükleme

Önemli

AKS önizleme özellikleri self servis, kabul etme temelinde kullanılabilir. Önizlemeler "olduğu gibi" ve "kullanılabilir" olarak sağlanır ve hizmet düzeyi sözleşmelerinden ve sınırlı garantiden hariç tutulur. AKS önizlemeleri kısmen müşteri desteği kapsamındadır ve en iyi çabayı gösterir. Bu nedenle, bu özellikler üretim kullanımı için tasarlanmamıştır. Daha fazla bilgi için aşağıdaki destek makalelerine bakın:

  1. komutunu kullanarak aks-preview uzantısını az extension add yükleyin.

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

  1. CustomCATrustPreview komutunu kullanarak özellik bayrağını az feature register kaydedin.

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

    Durumun Kayıtlı olarak gösterilmesi birkaç dakika sürer.

  2. komutunu kullanarak az feature show kayıt durumunu doğrulayın.

    az feature show --namespace "Microsoft.ContainerService" --name "CustomCATrustPreview"
    
  3. Durum Kaydedildi olarak ayarlandığında, komutunu kullanarak Microsoft.ContainerService kaynak sağlayıcısının kaydını yenileyin az provider register .

    az provider register --namespace Microsoft.ContainerService
    

AKS düğüm havuzlarına özel CA yüklemesi

AKS düğüm havuzlarına CA yükleme

  • Ortamınız doğru sağlama için özel CA'larınızın düğüm güven deposuna eklenmesini gerektiriyorsa, veya az aks update işlemleri sırasında az aks create en fazla 10 boş satırla ayrılmış sertifika içeren bir metin dosyası geçirmeniz gerekir. Örnek metin dosyası:

    -----BEGIN CERTIFICATE-----
    cert1
    -----END CERTIFICATE-----
    
    -----BEGIN CERTIFICATE-----
    cert2
    -----END CERTIFICATE-----
    

Düğüm havuzu oluşturma sırasında CA'ları yükleme

  • [az aks create][az-aks-create] command and specifying your text file for the --custom-ca-trust-certificates' parametresini kullanarak düğüm havuzu oluşturma sırasında CA'ları yükleyin.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-count 2 \
        --enable-custom-ca-trust \
        --custom-ca-trust-certificates pathToFileWithCAs \
        --generate-ssh-keys
    

Düğüm havuzu önyüklemesi sırasında kullanılabilirlik için CA döndürme

  • Önyükleme sırasında kümenize geçirilen CA'ları komutuyla güncelleştirin az aks update ve parametresi için --custom-ca-trust-certificates metin dosyanızı belirtin.

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --custom-ca-trust-certificates pathToFileWithCAs
    

    Not

    Bu işlem bir model güncelleştirmesini tetikleyerek yeni düğümlerin doğru sağlama için gereken en yeni CA'lara sahip olmasını sağlar. AKS ek düğümler oluşturur, mevcut düğümleri boşaltıp siler ve bunları yeni CA kümesinin yüklü olduğu düğümlerle değiştirir.

Düğüm havuzu oluşturulduktan sonra CA'ları yükleme

Ortamınız özel CA'larınız olmadan başarıyla sağlanabilirse, ad alanına bir gizli dizi dağıtarak CA'ları kube-system sağlayabilirsiniz. Bu yaklaşım, düğüm rekreasyonuna gerek kalmadan sertifika döndürmeye olanak tanır.

  • Alanda base64 kodlanmış sertifika dizenizle data bir [Kubernetes gizli dizisi][kubernetes-secrets] YAML bildirimi oluşturun.

    apiVersion: v1
    kind: Secret
    metadata: 
        name: custom-ca-trust-secret
        namespace: kube-system
    type: Opaque
    data:
        ca1.crt: |
          {base64EncodedCertStringHere}
        ca2.crt: |
          {anotherBase64EncodedCertStringHere}
    

    Bu gizli dizideki veriler, tüm düğümlerdeki CA'ları güncelleştirmek için kullanılır. Gizli dizinin ad alanında adlandırılıp custom-ca-trust-secret oluşturulduğundan kube-system emin olun. Ad alanında gizli diziyi kullanarak CA'ların kube-system yüklenmesi, düğüm yeniden oluşturma gereksinimi olmadan CA döndürmesine olanak tanır. CA'yı güncelleştirmek veya kaldırmak için YAML bildirimini düzenleyebilir ve uygulayabilirsiniz. Küme değişiklikleri yoklar ve düğümleri uygun şekilde güncelleştirir. Değişikliklerin uygulanması birkaç dakika sürebilir.

    Not

    CA'ların düzgün bir şekilde alınması için düğümde kapsayıcılı yeniden başlatma gerekebilir. CA'lar düğümünüzün güven deposuna doğru şekilde eklenmemiş gibi görünüyorsa, düğümün kabuğundan aşağıdaki komutu kullanarak yeniden başlatma tetikleyebilirsiniz:

    systemctl restart containerd

Özel CA kullanmak için yeni bir AKS kümesi yapılandırma

  • parametresiyle --enable-custom-ca-trust komutunu kullanarak az aks create özel CA kullanmak için yeni bir AKS kümesi yapılandırın.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-count 2 \
        --enable-custom-ca-trust \
        --generate-ssh-keys
    

Düğüm önyüklemeden önce CA'ların yüklü olduğu özel bir CA kullanmak için yeni bir AKS kümesi yapılandırma

  • Yeni bir AKS kümesini, düğüm ve --custom-ca-trust-certificates parametreleriyle komutunu kullanarak az aks create önyüklemeden önce yüklü CA'larla --enable-custom-ca-trust özel CA kullanacak şekilde yapılandırın.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-count 2 \
        --enable-custom-ca-trust \
        --custom-ca-trust-certificates pathToFileWithCAs \
        --generate-ssh-keys
    

Mevcut aks kümesini, düğüm önyüklemeden önce özel CA'ların yüklü olması için yapılandırma

  • parametresiyle --custom-ca-trust-certificates komutunu kullanarak önyüklemeden önce özel CA'larınızın düğümün güven deposuna az aks update eklenmesini sağlamak için mevcut bir AKS kümesini yapılandırın.

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --custom-ca-trust-certificates pathToFileWithCAs
    

Özel CA kullanmak için yeni bir düğüm havuzu yapılandırma

  • parametresiyle --enable-custom-ca-trust komutunu kullanarak az aks nodepool add özel CA kullanmak için yeni bir düğüm havuzu yapılandırın.

    az aks nodepool add \
        --cluster-name myAKSCluster \
        --resource-group myResourceGroup \
        --name myNodepool \
        --enable-custom-ca-trust \
        --os-type Linux
    

    Özelliği etkinleştirilmiş başka düğüm havuzu yoksa, değişikliklerin etkili olması için kümenin ayarlarını uzlaştırması gerekir. Bu işlem, AKS'nin uzlaştırma döngüsünün bir parçası olarak otomatik olarak gerçekleşir. İşlemden önce kümede daemon kümesi ve podlar görünmez. komutunu kullanarak az aks update anında uzlaştırma işlemi tetikleyebilirsiniz. Güncelleştirme tamamlandıktan sonra daemon kümesi ve podlar görünür.

Var olan bir düğüm havuzunu özel CA kullanacak şekilde yapılandırma

  • parametresiyle komutunu --enable-custom-trust-ca kullanarak az aks nodepool update özel ca kullanmak için mevcut düğüm havuzunu yapılandırın.

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myNodepool \
        --enable-custom-ca-trust
    

    Özelliği etkinleştirilmiş başka düğüm havuzu yoksa, değişikliklerin etkili olması için kümenin ayarlarını uzlaştırması gerekir. Bu işlem, AKS'nin uzlaştırma döngüsünün bir parçası olarak otomatik olarak gerçekleşir. İşlemden önce kümede daemon kümesi ve podlar görünmez. komutunu kullanarak az aks update anında uzlaştırma işlemi tetikleyebilirsiniz. Güncelleştirme tamamlandıktan sonra daemon kümesi ve podlar görünür.

Sorun giderme

Özellik etkinleştirildi ve CA'larla gizli dizi eklendi, ancak X.509 Sertifikası Bilinmeyen Yetkili tarafından imzalandı hatasıyla işlemler başarısız oluyor

Gizli dizide yanlış biçimlendirilmiş sertifikalar geçirildi

AKS, kullanıcı tarafından oluşturulan gizli dizide geçirilen sertifikaların düzgün biçimlendirilmiş ve base64 kodlanmış olmasını gerektirir. Geçtiğiniz CA'ların düzgün şekilde base64 kodlanmış olduğundan ve CA'lı dosyaların CRLF satır sonları olmadığından emin olun. 'a --custom-ca-trust-certificates geçirilen sertifikaların base64 kodlanmış olmaması gerekir.

containerd yeni sertifikaları almadı

Düğümün kabuğundan komutunu çalıştırın systemctl restart containerd. Kapsayıcı yeniden başlatıldıktan sonra, yeni sertifikalar kapsayıcı çalışma zamanı tarafından düzgün bir şekilde alınır.

Sonraki adımlar

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