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:
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ı CustomCATrustPreview
kaydetme
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.
komutunu kullanarak
az feature show
kayıt durumunu doğrulayın.az feature show --namespace "Microsoft.ContainerService" --name "CustomCATrustPreview"
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ındaaz 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ğundankube-system
emin olun. Ad alanında gizli diziyi kullanarak CA'larınkube-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 kullanarakaz 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 kullanarakaz 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 deposunaaz 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 kullanarakaz 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
kullanarakaz 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.