Azure Kubernetes Service kümesine Anahtar Yönetim Merkezi vbd şifrelemesi ekleme
Bu makalede, Azure Key Vault ve Anahtar Yönetim Merkezi (KMS) eklentisini kullanarak etcd anahtar-değer deposunda Azure Kubernetes Service (AKS) gizli dizileriniz için bekleyen şifrelemeyi nasıl açabileceğiniz gösterilmektedir. KMS eklentisini kullanarak aşağıdakileri yapabilirsiniz:
- Etcd şifrelemesi için anahtar kasasında bir anahtar kullanın.
- Kendi anahtarlarını getir.
- vbd'de depolanan gizli diziler için bekleyen şifreleme sağlayın.
- Anahtar kasasında anahtarları döndürme.
KMS kullanma hakkında daha fazla bilgi için bkz . Veri şifrelemesi için KMS sağlayıcısı kullanma.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Azure CLI sürüm 2.39.0 veya üzeri. Sürümünüzü bulmak için komutunu çalıştırın
az --version
. Yükleme veya yükseltme yapmanız gerekirse bkz. Azure CLI'yı yükleme.
Uyarı
15 Eylül 2024'den itibaren Konnectivity, daha önce bu yapılandırmayı kullanmamış olan yeni abonelikler veya abonelikler için özel anahtar kasaları için artık desteklenmemektedir. Şu anda bu yapılandırmayı kullanan veya son 60 gün içinde kullanmış olan abonelikler için, topluluk desteği için AKS sürüm 1.30 kullanım süresi dolana kadar destek devam edecektir.
KMS, ortak anahtar kasaları için Konnectivity veya API Server Sanal Ağ Tümleştirmesi'ni (önizleme) destekler.
KMS, hem özel hem de ortak anahtar kasaları için API Server Sanal Ağ Tümleştirmesi'ni (önizleme) destekler.
Sonuçları doğrulamak ve konnectivity-agent podunun çalıştığını göstermek için kullanabilirsiniz kubectl get po -n kube-system
. Bir pod çalışıyorsa AKS kümesi Konnectivity kullanıyordur. API Server Sanal Ağ Tümleştirmesi'ni kullandığınızda, ayarın az aks show -g -n
olarak ayarlandığını enableVnetIntegration
true
doğrulamak için komutunu çalıştırabilirsiniz.
Sınırlamalar
KMS etcd şifrelemesini AKS ile tümleştirdiğinizde aşağıdaki sınırlamalar geçerlidir:
- Anahtarı, anahtar kasasını veya ilişkili kimliği silme işlemi desteklenmez.
- KMS vb. şifreleme, sistem tarafından atanan yönetilen kimlikle çalışmaz. Özellik açılmadan önce anahtar kasası erişim ilkesi ayarlanmalıdır. Sistem tarafından atanan yönetilen kimlik, küme oluşturulduktan sonra kullanılamaz. Döngü bağımlılığını göz önünde bulundurun.
- "Belirli sanal ağlardan ve IP adreslerinden genel erişime izin ver" veya "genel erişimi devre dışı bırak" güvenlik duvarı ayarına sahip Azure Key Vault, KMS eklentisinden anahtar kasasına giden trafiği engellediğinden desteklenmez.
- KMS'nin açık olduğu bir küme tarafından desteklenen en fazla gizli dizi sayısı 2.000'dir. Ancak KMS v2'nin bu kısıtlamayla sınırlı olmadığını ve daha fazla sayıda gizli diziyi işleyebileceğini unutmayın.
- Başka bir kiracıdan kendi Azure anahtar kasanızı getirme (BYO) desteklenmez.
- KMS açıkken, ilişkili anahtar kasası modunu değiştiremezsiniz (ortak ve özel). Bir anahtar kasası modunu güncelleştirmek için önce KMS'yi kapatmanız ve sonra yeniden açmanız gerekir.
- Kümede KMS açıksa ve özel anahtar kasası varsa API Server Sanal Ağ Tümleştirmesi (önizleme) tünelini kullanmalıdır. Konnektivity desteklenmez.
- Kümedeki düğümleri sıfıra indirecek şekilde ölçeklendirmek için Sanal Makine Ölçek Kümeleri API'sinin kullanılması, düğümlerin serbest bırakılmasına neden olur. Ardından küme çöker ve kurtarılamaz hale gelir.
- KMS'yi kapattıktan sonra anahtarları yok edemazsınız. Anahtarların yok olması API sunucusunun çalışmayı durdurmasına neden olur.
KMS, ortak anahtar kasalarını veya özel anahtar kasalarını destekler.
Ortak anahtar kasası için KMS'i açma
Aşağıdaki bölümlerde ortak anahtar kasası için KMS'nin nasıl açıldığı açıklanmaktadır.
Ortak anahtar kasası ve anahtarı oluşturma
Uyarı
Anahtarın veya anahtar kasasının silinmesi desteklenmez ve kümedeki gizli dizilerin kurtarılamaz duruma getirmesine neden olur.
Anahtar kasanızı veya anahtarınızı kurtarmanız gerekiyorsa bkz . Geçici silme ve temizleme koruması ile Azure Key Vault kurtarma yönetimi.
RBAC olmayan bir ortak anahtar kasası için anahtar kasası ve anahtar oluşturma
Azure rol tabanlı erişim denetimi (Azure RBAC) kullanmadan anahtar kasası oluşturmak için kullanın az keyvault create
:
az keyvault create --name MyKeyVault --resource-group MyResourceGroup
Anahtar oluşturmak için kullanın az keyvault key create
:
az keyvault key create --name MyKeyName --vault-name MyKeyVault
Anahtar kimliğini dışarı aktarmak için kullanın az keyvault key show
:
export KEY_ID=$(az keyvault key show --name MyKeyName --vault-name MyKeyVault --query 'key.kid' -o tsv)
echo $KEY_ID
Bu örnek anahtar kimliğini içinde KEY_ID
depolar.
RBAC ortak anahtar kasası için anahtar kasası ve anahtar oluşturma
Azure RBAC kullanarak anahtar kasası oluşturmak için kullanın az keyvault create
:
export KEYVAULT_RESOURCE_ID=$(az keyvault create --name MyKeyVault --resource-group MyResourceGroup --enable-rbac-authorization true --query id -o tsv)
Kendinize anahtar oluşturma izinlerini atayın:
az role assignment create --role "Key Vault Crypto Officer" --assignee-object-id $(az ad signed-in-user show --query id -o tsv) --assignee-principal-type "User" --scope $KEYVAULT_RESOURCE_ID
Anahtar oluşturmak için kullanın az keyvault key create
:
az keyvault key create --name MyKeyName --vault-name MyKeyVault
Anahtar kimliğini dışarı aktarmak için kullanın az keyvault key show
:
export KEY_ID=$(az keyvault key show --name MyKeyName --vault-name MyKeyVault --query 'key.kid' -o tsv)
echo $KEY_ID
Bu örnek anahtar kimliğini içinde KEY_ID
depolar.
Ortak anahtar kasası için kullanıcı tarafından atanan yönetilen kimlik oluşturma
Kullanıcı tarafından atanan yönetilen kimlik oluşturmak için kullanın az identity create
:
az identity create --name MyIdentity --resource-group MyResourceGroup
Kimlik nesnesi kimliğini almak için kullanın az identity show
:
IDENTITY_OBJECT_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'principalId' -o tsv)
echo $IDENTITY_OBJECT_ID
Yukarıdaki örnek, kimlik nesnesi kimliğinin değerini içinde IDENTITY_OBJECT_ID
depolar.
Kimlik kaynağı kimliğini almak için kullanın az identity show
:
IDENTITY_RESOURCE_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'id' -o tsv)
echo $IDENTITY_RESOURCE_ID
Bu örnek, kimlik kaynak kimliğinin değerini içinde IDENTITY_RESOURCE_ID
depolar.
Ortak anahtar kasasının şifresini çözmek ve şifrelemek için izinler atama
Aşağıdaki bölümlerde, özel anahtar kasası için şifre çözme ve şifreleme izinlerinin nasıl atandığı açıklanmaktadır.
RBAC olmayan bir ortak anahtar kasası için izin atama
Anahtar kasanız ile --enable-rbac-authorization
ayarlanmadıysa azure anahtar kasası ilkesi oluşturmak için kullanabilirsiniz az keyvault set-policy
.
az keyvault set-policy --name MyKeyVault --key-permissions decrypt encrypt --object-id $IDENTITY_OBJECT_ID
RBAC ortak anahtar kasası için izin atama
Anahtar kasanız ile --enable-rbac-authorization
ayarlandıysa şifre çözme ve şifreleme izinleri vermek için Key Vault Şifreleme Kullanıcısı rolünü atayın.
az role assignment create --role "Key Vault Crypto User" --assignee-object-id $IDENTITY_OBJECT_ID --assignee-principal-type "ServicePrincipal" --scope $KEYVAULT_RESOURCE_ID
Ortak anahtar kasası olan bir AKS kümesi oluşturma ve KMS vb. şifrelemeyi açma
KMS vb. şifrelemeyi açmak için az aks create komutunu kullanarak bir AKS kümesi oluşturun . ile az aks create
, --azure-keyvault-kms-key-vault-network-access
ve --azure-keyvault-kms-key-id
parametrelerini kullanabilirsiniz--enable-azure-keyvault-kms
.
az aks create \
--name myAKSCluster \
--resource-group MyResourceGroup \
--assign-identity $IDENTITY_RESOURCE_ID \
--enable-azure-keyvault-kms \
--azure-keyvault-kms-key-vault-network-access "Public" \
--azure-keyvault-kms-key-id $KEY_ID \
--generate-ssh-keys
Ortak anahtar kasası için KMS etcd şifrelemesini açmak için mevcut aks kümesini güncelleştirme
Mevcut kümede KMS vb. şifrelemeyi açmak için az aks update komutunu kullanın. ile az-aks-update
, --azure-keyvault-kms-key-vault-network-access
ve --azure-keyvault-kms-key-id
parametrelerini kullanabilirsiniz--enable-azure-keyvault-kms
.
az aks update --name myAKSCluster --resource-group MyResourceGroup --enable-azure-keyvault-kms --azure-keyvault-kms-key-vault-network-access "Public" --azure-keyvault-kms-key-id $KEY_ID
Tüm gizli dizileri güncelleştirmek için aşağıdaki komutu kullanın. Bu komutu çalıştırmazsanız, daha önce oluşturulan gizli diziler artık şifrelenmez. Daha büyük kümeler için gizli dizileri ad alanına göre alt bölümlere ayırabilir veya bir güncelleştirme betiği oluşturabilirsiniz.
kubectl get secrets --all-namespaces -o json | kubectl replace -f -
Ortak anahtar kasasında mevcut anahtarları döndürme
Anahtar kimliğini değiştirdikten sonra (anahtar adını veya anahtar sürümünü değiştirme dahil), az aks update komutunu kullanabilirsiniz. KMS'de --enable-azure-keyvault-kms
var olan anahtarları döndürmek için ile az-aks-update
, --azure-keyvault-kms-key-vault-network-access
ve --azure-keyvault-kms-key-id
parametrelerini kullanabilirsiniz.
Uyarı
Anahtar döndürmeden sonra tüm gizli dizileri güncelleştirmeyi unutmayın. Tüm gizli dizileri güncelleştirmezseniz, daha önce oluşturulan anahtarlar yoksa veya artık çalışmıyorsa gizli dizilere erişilemez.
KMS aynı anda 2 anahtar kullanır. İlk anahtar döndürmeden sonra, bir sonraki anahtar döndürmeye kadar hem eski hem de yeni anahtarların geçerli olduğundan (süresi dolmadığından) emin olmanız gerekir. İkinci anahtar döndürmeden sonra en eski anahtar güvenle kaldırılabilir/süresi dolabilir
KMS anahtar sürümünü yeni keyId
ile döndürdikten sonra aks kaynak json'unu denetleyin securityProfile.azureKeyVaultKms.keyId
. Yeni anahtar sürümünün kullanımda olduğundan emin olun.
az aks update --name myAKSCluster --resource-group MyResourceGroup --enable-azure-keyvault-kms --azure-keyvault-kms-key-vault-network-access "Public" --azure-keyvault-kms-key-id $NEW_KEY_ID
Tüm gizli dizileri güncelleştirmek için aşağıdaki komutu kullanın. Bu komutu çalıştırmazsanız, daha önce oluşturulan gizli diziler yine önceki anahtarla şifrelenir. Daha büyük kümeler için gizli dizileri ad alanına göre alt bölümlere ayırabilir veya bir güncelleştirme betiği oluşturabilirsiniz.
kubectl get secrets --all-namespaces -o json | kubectl replace -f -
Özel anahtar kasası için KMS'i açma
Özel anahtar kasası için KMS'yi açarsanız AKS, düğüm kaynak grubunda otomatik olarak bir özel uç nokta ve özel bağlantı oluşturur. Anahtar kasası, AKS kümesiyle özel bir uç nokta bağlantısı eklenir.
Uyarı
KMS yalnızca özel anahtar kasası için API Server Sanal Ağ Tümleştirmesini (önizleme) destekler.
Özel anahtar kasası ve anahtar oluşturma
Uyarı
Anahtarın veya anahtar kasasının silinmesi desteklenmez ve kümedeki gizli dizilerin kurtarılamaz duruma getirmesine neden olur.
Anahtar kasanızı veya anahtarınızı kurtarmanız gerekiyorsa bkz . Geçici silme ve temizleme koruması ile Azure Key Vault kurtarma yönetimi.
Özel anahtar kasası oluşturmak için kullanın az keyvault create
:
az keyvault create --name MyKeyVault --resource-group MyResourceGroup --public-network-access Disabled
Anahtar oluşturmak için kullanın az keyvault key create
:
az keyvault key create --name MyKeyName --vault-name MyKeyVault
Özel uç noktası olmayan bir özel anahtar kasasında anahtar oluşturma veya güncelleştirme desteklenmez. Özel anahtar kasalarını yönetmeyi öğrenmek için bkz. Azure Özel Bağlantı kullanarak anahtar kasasını tümleştirme.
Özel anahtar kasası için kullanıcı tarafından atanan yönetilen kimlik oluşturma
Kullanıcı tarafından atanan yönetilen kimlik oluşturmak için kullanın az identity create
:
az identity create --name MyIdentity --resource-group MyResourceGroup
Kimlik nesnesi kimliğini almak için kullanın az identity show
:
IDENTITY_OBJECT_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'principalId' -o tsv)
echo $IDENTITY_OBJECT_ID
Yukarıdaki örnek, kimlik nesnesi kimliğinin değerini içinde IDENTITY_OBJECT_ID
depolar.
Kimlik kaynağı kimliğini almak için kullanın az identity show
:
IDENTITY_RESOURCE_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'id' -o tsv)
echo $IDENTITY_RESOURCE_ID
Bu örnek, kimlik kaynak kimliğinin değerini içinde IDENTITY_RESOURCE_ID
depolar.
Özel anahtar kasasının şifresini çözmek ve şifrelemek için izinler atama
Aşağıdaki bölümlerde, özel anahtar kasası için şifre çözme ve şifreleme izinlerinin nasıl atandığı açıklanmaktadır.
RBAC olmayan özel anahtar kasası için izin atama
Not
Özel anahtar kasası kullanırken AKS, kimliğin izinlerini doğrulayamaz. KMS'yi etkinleştirmeden önce kimliğe anahtar kasasına erişim izni verildiğini doğrulayın.
Anahtar kasanız ile --enable-rbac-authorization
ayarlanmadıysa Azure'da bir anahtar kasası ilkesi oluşturmak için kullanabilirsiniz az keyvault set-policy
:
az keyvault set-policy --name MyKeyVault --key-permissions decrypt encrypt --object-id $IDENTITY_OBJECT_ID
RBAC özel anahtar kasası için izin atama
Anahtar kasanız ile --enable-rbac-authorization
ayarlandıysa, şifre çözme ve şifreleme izinlerini içeren bir Azure RBAC rolü atayın:
az role assignment create --role "Key Vault Crypto User" --assignee-object-id $IDENTITY_OBJECT_ID --assignee-principal-type "ServicePrincipal" --scope $KEYVAULT_RESOURCE_ID
Özel bağlantı oluşturmak için izin atama
Özel anahtar kasaları için, özel anahtar kasası ile küme arasında özel bir bağlantı oluşturmak için Key Vault Katılımcısı rolü gereklidir.
az role assignment create --role "Key Vault Contributor" --assignee-object-id $IDENTITY_OBJECT_ID --assignee-principal-type "ServicePrincipal" --scope $KEYVAULT_RESOURCE_ID
Özel anahtar kasası olan bir AKS kümesi oluşturma ve KMS vb. şifrelemeyi açma
Özel anahtar kasası için KMS vbd şifrelemesini açmak için az aks create komutunu kullanarak bir AKS kümesi oluşturun . ile az-aks-create
, --azure-keyvault-kms-key-id
, --azure-keyvault-kms-key-vault-network-access
ve --azure-keyvault-kms-key-vault-resource-id
parametrelerini kullanabilirsiniz--enable-azure-keyvault-kms
.
az aks create \
--name myAKSCluster \
--resource-group MyResourceGroup \
--assign-identity $IDENTITY_RESOURCE_ID \
--enable-azure-keyvault-kms \
--azure-keyvault-kms-key-id $KEY_ID \
--azure-keyvault-kms-key-vault-network-access "Private" \
--azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID \
--generate-ssh-keys
Özel anahtar kasası için KMS etcd şifrelemesini açmak için mevcut AKS kümesini güncelleştirme
Özel anahtar kasası olan mevcut bir kümede KMS vb. şifrelemesini açmak için az aks update komutunu kullanın. ile az-aks-update
, --azure-keyvault-kms-key-id
, --azure-keyvault-kms-key-vault-network-access
ve --azure-keyvault-kms-key-vault-resource-id
parametrelerini kullanabilirsiniz--enable-azure-keyvault-kms
.
az aks update --name myAKSCluster --resource-group MyResourceGroup --enable-azure-keyvault-kms --azure-keyvault-kms-key-id $KEY_ID --azure-keyvault-kms-key-vault-network-access "Private" --azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID
Tüm gizli dizileri güncelleştirmek için aşağıdaki komutu kullanın. Bu komutu çalıştırmazsanız, daha önce oluşturulan gizli diziler şifrelenmez. Daha büyük kümeler için gizli dizileri ad alanına göre alt bölümlere ayırabilir veya bir güncelleştirme betiği oluşturabilirsiniz.
kubectl get secrets --all-namespaces -o json | kubectl replace -f -
Özel anahtar kasasında mevcut anahtarları döndürme
Anahtar kimliğini (anahtar adı ve anahtar sürümü dahil) değiştirdikten sonra az aks update komutunu kullanabilirsiniz. mevcut KMS anahtarlarını döndürmek için ile az-aks-update
, --azure-keyvault-kms-key-id
, --azure-keyvault-kms-key-vault-network-access
ve --azure-keyvault-kms-key-vault-resource-id
parametrelerini kullanabilirsiniz--enable-azure-keyvault-kms
.
Uyarı
Anahtar döndürmeden sonra tüm gizli dizileri güncelleştirmeyi unutmayın. Tüm gizli dizileri güncelleştirmezseniz, daha önce oluşturulan anahtarlar yoksa veya artık çalışmıyorsa gizli dizilere erişilemez.
Anahtarı döndürdükten sonra, önceki anahtar (key1) yine önbelleğe alınır ve silinmemelidir. Önceki anahtarı (key1) hemen silmek istiyorsanız, anahtarı iki kez döndürmeniz gerekir. Ardından key2 ve key3 önbelleğe alınır ve key1 mevcut kümeyi etkilemeden silinebilir.
KMS anahtar sürümünü yeni keyId
ile döndürdikten sonra aks kaynak json'unu denetleyin securityProfile.azureKeyVaultKms.keyId
. Yeni anahtar sürümünün kullanımda olduğundan emin olun.
az aks update --name myAKSCluster --resource-group MyResourceGroup --enable-azure-keyvault-kms --azure-keyvault-kms-key-id $NewKEY_ID --azure-keyvault-kms-key-vault-network-access "Private" --azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID
Tüm gizli dizileri güncelleştirmek için aşağıdaki komutu kullanın. Tüm gizli dizileri güncelleştirmezseniz, daha önce oluşturulan gizli diziler önceki anahtarla şifrelenir. Daha büyük kümeler için gizli dizileri ad alanına göre alt bölümlere ayırabilir veya bir güncelleştirme betiği oluşturabilirsiniz.
kubectl get secrets --all-namespaces -o json | kubectl replace -f -
Anahtar kasası modunu güncelleştirme
Not
Farklı bir modla (ortak veya özel) farklı bir anahtar kasasını değiştirmek için doğrudan çalıştırabilirsiniz az aks update
. Ekli anahtar kasasının modunu değiştirmek için önce KMS'yi kapatmanız ve ardından yeni anahtar kasası kimliklerini kullanarak yeniden açmanız gerekir.
Aşağıdaki bölümlerde, ekli ortak anahtar kasasının özel moda nasıl geçirilir açıklanmaktadır. Bu adımlar özelden genele geçiş için de kullanılabilir.
Kümede KMS'yi kapatma
Mevcut kümede KMS'yi kapatın ve anahtar kasasını serbest bırakın:
az aks update --name myAKSCluster --resource-group MyResourceGroup --disable-azure-keyvault-kms
Tüm gizli dizileri güncelleştirmek için aşağıdaki komutu kullanın. Bu komutu çalıştırmazsanız, daha önce oluşturulan gizli diziler yine önceki anahtarla şifrelenir. Daha büyük kümeler için gizli dizileri ad alanına göre alt bölümlere ayırabilir veya bir güncelleştirme betiği oluşturabilirsiniz.
kubectl get secrets --all-namespaces -o json | kubectl replace -f -
Anahtar kasası modunu değiştirme
Anahtar kasasını genelden özele güncelleştirin:
az keyvault update --name MyKeyVault --resource-group MyResourceGroup --public-network-access Disabled
Yukarıdaki komutta özelden genel kümeye --public-network-access
geçiş yapmak için Enabled
.
Güncelleştirilmiş anahtar kasasını kullanarak küme için KMS'yi açma
Güncelleştirilmiş özel anahtar kasasını kullanarak KMS'yi açın:
az aks update --name myAKSCluster --resource-group MyResourceGroup --enable-azure-keyvault-kms --azure-keyvault-kms-key-id $NewKEY_ID --azure-keyvault-kms-key-vault-network-access "Private" --azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID
KMS'yi ayarladıktan sonra şifreleme günlüklerini denetlemek için anahtar kasasının tanılama ayarlarını açabilirsiniz.
KMS'i kapatma
KMS'yi kapatmadan önce, KMS'nin açık olup olmadığını denetlemek için aşağıdaki Azure CLI komutunu kullanabilirsiniz:
az aks list --query "[].{Name:name, KmsEnabled:securityProfile.azureKeyVaultKms.enabled, KeyId:securityProfile.azureKeyVaultKms.keyId}" -o table
Sonuçlar KMS'nin açık olduğunu doğrularsa, kümede KMS'yi kapatmak için aşağıdaki komutu çalıştırın:
az aks update --name myAKSCluster --resource-group MyResourceGroup --disable-azure-keyvault-kms
Tüm gizli dizileri güncelleştirmek için aşağıdaki komutu kullanın. Bu komutu çalıştırmazsanız, daha önce oluşturulan gizli diziler önceki anahtarla şifrelenir ve anahtar kasasındaki şifreleme ve şifre çözme izinleri yine de gereklidir. Daha büyük kümeler için gizli dizileri ad alanına göre alt bölümlere ayırabilir veya bir güncelleştirme betiği oluşturabilirsiniz.
kubectl get secrets --all-namespaces -o json | kubectl replace -f -
KMS v2 desteği
AKS sürüm 1.27'den başlayarak KMS özelliğinin açılması KMS v2'yi yapılandırıyor. KMS v2 ile, önceki sürümlerin desteklediği 2.000 gizli diziyle sınırlı değilsiniz. Daha fazla bilgi için bkz . KMS V2 Geliştirmeleri.
KMS v2'ye geçiş
Küme sürümünüz 1.27'den eskiyse ve KMS'yi zaten açtıysanız, küme sürümü 1.27 veya sonraki bir sürüme yükseltme engellenir. KMS v2'ye geçiş yapmak için aşağıdaki adımları kullanın:
- Kümede KMS'yi kapatın.
- Depolama geçişini gerçekleştirin.
- Kümeyi 1.27 veya sonraki bir sürüme yükseltin.
- Kümede KMS'yi açın.
- Depolama geçişini gerçekleştirin.
Depolamayı geçirmek için KMS'yi kapatma
Mevcut kümede KMS'yi kapatmak için komutunu bağımsız değişkeniyle --disable-azure-keyvault-kms
birlikte kullanınaz aks update
:
az aks update --name myAKSCluster --resource-group MyResourceGroup --disable-azure-keyvault-kms
Depolamayı geçirme
Tüm gizli dizileri güncelleştirmek için komutunu bağımsız değişkeniyle --all-namespaces
kullanınkubectl get secrets
:
kubectl get secrets --all-namespaces -o json | kubectl replace -f -
AKS kümesini yükseltme
AKS kümesini yükseltmek için komutunu kullanın az aks upgrade
. bağımsız değişkenini kullanarak sürümü veya sonraki bir sürüme 1.27.x
--kubernetes-version
ayarlayın.
az aks upgrade --resource-group myResourceGroup --name myAKSCluster --kubernetes-version <AKS version>
Bir örnek aşağıda verilmiştir:
az aks upgrade --resource-group myResourceGroup --name myAKSCluster --kubernetes-version 1.27.1
Depolama geçişi sonrasında KMS'i açma
Gizli dizileri şifrelemek için kümedeki KMS özelliğini yeniden açabilirsiniz. Daha sonra AKS kümesi KMS v2'yi kullanır. KMS v2'ye geçiş yapmak istemiyorsanız, KMS açık durumdayken 1.27 veya sonraki bir sürüme sahip yeni bir küme oluşturabilirsiniz.
KMS v2 için depolamayı geçirme
KMS v2'deki tüm gizli dizileri yeniden şifrelemek için komutunu bağımsız değişkeniyle --all-namespaces
birlikte kullanınkubectl get secrets
:
kubectl get secrets --all-namespaces -o json | kubectl replace -f -
KMS gözlemlenebilirliği
AKS kaynak json
AKS kaynak json'unda KMS yapılandırmasını şu şekilde de kontrol edebilirsiniz:
az aks show
komutunu kullanma- Azure Portal aracılığıyla
bölümünde securityProfile.azureKeyVaultKms
Anahtar kasası, anahtar, geçerli ve önceki anahtar sürümleri de dahil olmak üzere KMS yapılandırması gösterilmektedir.
Sorunları tanılama ve çözme
KMS eklentisi kube-apiserver Pod'un yan arabası olduğundan, doğrudan erişemezsiniz. KMS'nin gözlemlenebilirliğini geliştirmek için KMS durumunu şu şekilde de kontrol edebilirsiniz:
- AKS kümenizin Azure Portal sayfasını açma
Diagnose and solve problems
Adresine gidin veKMS
- Algılayıcıda
KMS
KMS'nin durumunu ve bilinen bazı başarısız senaryolarda olup olmadığını görebilirsiniz
Örnek olarak:KeyExpired: Operation encrypt is not allowed on an expired key
AKS KMS eklentisi şu anda yalnızca BYO anahtar kasasına ve anahtarına izin verdiğinden, anahtar yaşam döngüsünü yönetmek sizin sorumluluğunuzdadır. Anahtarın süresi dolduysa KMS eklentisi mevcut gizli dizilerin şifresini çözemez. Şunu yapmanız gerekir:
- KMS'nin çalışması için anahtar son kullanma tarihini uzatma
- Anahtar sürümünü döndürme
Azure Kubernetes Service