Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Key Vault sağlayıcısı, Gizli Anahtar Deposu Kapsayıcı Depolama Arabirimi (CSI) Sürücüsü için, bir Azure Key Vault'un bir CSI birimi aracılığıyla Azure Kubernetes Service (AKS) kümesiyle gizli anahtar deposu olarak bütünleştirilmesine olanak tanır.
Özellikler
- CSI birimi kullanarak gizli bilgileri, anahtarları ve sertifikaları bir poda bağlar.
- CSI yerleşik birimlerini destekler.
- Birden çok gizli saklama deposu nesnesini tek bir hacim olarak bağlamayı destekler.
- Özel Kaynak Tanımı (CRD) ile
SecretProviderClasspod taşınabilirliğini destekler. - Windows kapsayıcılarını destekler.
- Kubernetes sırlarıyla senkronize edilir.
- Montelemiş içeriklerin otomatik döndürülmesini ve eşitlenmiş Kubernetes gizli dizilerini destekler.
Sınırlamalar
-
ConfigMapveyaSecret'i birsubPatholarak birim bağlaması yapan bir kapsayıcı, gizli anahtar döndürüldüğünde otomatik güncellemeler almaz, bu bir Kubernetes sınırlamasıdır. Değişikliklerin etkili olması için, uygulamanın dosya sistemindeki değişiklikleri izleyerek veya podu yeniden başlatarak değiştirilen dosyayı yeniden yüklemesi gerekir. Daha fazla bilgi için Secrets Store CSI Driver bilinen sınırlamaları bölümüne bakın. - Eklenti, düğüm kaynak grubunda (
azurekeyvaultsecretsprovider-xxxxx) adlıMC_bir yönetilen kimlik oluşturur ve bunu otomatik olarak Sanal Makine Ölçek Kümesi'ne atar. Anahtar kasasına erişmek için bu yönetilen kimliği veya kendi yönetilen kimliğinizi kullanabilirsiniz. Kimlik oluşturmanın engellenmesi desteklenmiyor.
Önkoşullar
- Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Azure CLI sürümünüzün 2.30.0 veya üzeri olup olmadığını denetleyin. Önceki bir sürümse en son sürümü yükleyin.
Ağ
- Ağdan yalıtılmış kümeler kullanılıyorsa, Azure Key Vault'a erişmek için özel uç nokta ayarlamanız gerekir.
- Küme giden türüne
userDefinedRoutingsahipse ve Azure Güvenlik Duvarı gibi etki alanı adlarına göre giden trafiği denetleyebilen bir güvenlik duvarı cihazı kullanıyorsa , gerekli giden ağ kurallarına ve FQDN'lere izin verildiğinden emin olun. - Kümeye girişi kısıtlarsanız 9808 ve 8095 bağlantı noktalarının açık olduğundan emin olun.
Görevler
- Bu makalede, hesabınıza anahtar kasasına sır ekleme izni vermek için Key Vault Sır Yetkilisi rolü kullanılır.
-
Azure Key Vault erişimi sağlama makalesinde,
SecretProviderClassile kullanılan kimlik Key Vault Sertifika Kullanıcısı rolüne veyakeycertificatenesne türlerine erişmesi için ve Key Vault Gizli Bilgileri Kullanıcısı rolüne nesne türüne erişmesi için ihtiyaç duyar.
AKS kümesi oluşturma veya güncelleştirme
Azure Key Vault sağlayıcısı ile Secrets Store CSI Sürücüsü desteğine sahip bir AKS kümesi oluşturun.
AKS kümesi ve Key Vault oluşturmak için komutlarda kullanılan değişkenler oluşturun.
export RANDOM_STRING=$(printf '%05d%05d' "$RANDOM" "$RANDOM") export KEYVAULT_NAME=myKeyVault${RANDOM_STRING} export RESOURCE_GROUP=myResourceGroup export CLUSTER_NAME=myAKSCluster export LOCATION=eastus2Azure Key Vault adları, küresel olarak benzersiz, kısa çizgi içeren alfasayısal ve 3-24 karakter arasında olmalıdır. Anahtar kasası adı, değişkenin
KEYVAULT_NAMEdeğerini değişkeninmyKeyVaultRANDOM_STRING10 karakter dizesiyle birleştirir.komutunu kullanarak
az group createbir Azure kaynak grubu oluşturun.az group create --name $RESOURCE_GROUP --location $LOCATIONaz aks createkomutunu ve--enable-addons azure-keyvault-secrets-providerparametresini kullanarak, Gizli Saklama CSI Sürücüsü yeteneği için Azure Key Vault sağlayıcısı olan bir AKS kümesi oluşturun.--enable-addonsparametresi,azurekeyvaultsecretsprovider-xxxxadıyla anılan ve anahtar kasanıza kimlik doğrulamak için kullanabileceğiniz, kullanıcı tarafından atanan bir yönetilen kimlik oluşturur. Yönetilen kimlik düğüm kaynak grubunda (MC_) depolanır ve otomatik olarak Sanal Makine Ölçek Kümesine atanır. Anahtar kasasına erişmek için bu yönetilen kimliği veya kendi yönetilen kimliğinizi kullanabilirsiniz. Kimlik oluşturmanın engellenmesi desteklenmiyor.az aks create \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --enable-addons azure-keyvault-secrets-provider \ --generate-ssh-keysTip
Microsoft Entra İş Yükü Kimliğini kullanmak istiyorsanız,
az aks createkomutu--enable-oidc-issuerve--enable-workload-identityparametrelerini içermelidir.
Yönetilen kimliği doğrulayın
Yönetilen kimliğin oluşturulup kümenin Sanal Makine Ölçek Kümesine atandığını doğrulamak için aşağıdaki adımları kullanın.
komutunu kullanarak
az aks showyönetilen kimliğin oluşturulduğunu ve kümeye atandığını doğrulayın.az aks show --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --query addonProfiles{ "azureKeyvaultSecretsProvider": { "config": { "enableSecretRotation": "false", "rotationPollInterval": "2m" }, "enabled": true, "identity": { "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444", "objectId": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "resourceId": "/subscriptions/<subscriptionID>/resourcegroups/MC_myResourceGroup_myAKSCluster_eastus2/providers/Microsoft.ManagedIdentity/userAssignedIdentities/azurekeyvaultsecretsprovider-myakscluster" } } }özelliği kaynak
resourceIdgrubunu ve kimliğin adınıazurekeyvaultsecretsprovider-myaksclustergösterir.Düğüm kaynak grubunun Sanal Makine Ölçek Kümesine manged kimliğinin atandığını doğrulayın.
NODE_RG=$(az aks show \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --query nodeResourceGroup --output tsv) VMSS_NAME=$(az vmss list \ --resource-group $NODE_RG \ --query [].name --output tsv) az vmss show --name $VMSS_NAME --resource-group $NODE_RG --query '[id, identity]'Çıktı, Sanal Makine Ölçek Kümesi için
Microsoft.Compute/virtualMachineScaleSetskaynak kimliğini ve kimliğin Sanal Makine Ölçek Kümesi'ne atandığını onaylayanazurekeyvaultsecretsprovider-myaksclusterkaynak kimliğine sahipuserAssignedIdentitiesözelliğini gösterir.
Gizli Anahtar Deposu CSI Sürücüsü kurulumu için Azure Key Vault sağlayıcısını doğrulayın
komutunu kullanarak
az aks get-credentialsAKS kümesi kimlik bilgilerini alın.az aks get-credentials \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUPkube-systemad alanındakisecrets-store-csi-drivervesecrets-store-provider-azureetiketlerine sahip tüm podları listeleyenkubectl get podskomutunu kullanarak yüklemenin tamamlandığını doğrulayın.kubectl get pods -n kube-system -l 'app in (secrets-store-csi-driver,secrets-store-provider-azure)' -o wideÇıktıda,
o widebayrağı her pod'un çalıştığı düğümü içerir.Çıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:
NAME READY STATUS RESTARTS AGE NODE aks-secrets-store-csi-driver-4vpkj 3/3 Running 2 4m25s aks-nodepool1-12345678-vmss000002 aks-secrets-store-csi-driver-ctjq6 3/3 Running 2 4m21s aks-nodepool1-12345678-vmss000001 aks-secrets-store-csi-driver-tlvlq 3/3 Running 2 4m24s aks-nodepool1-12345678-vmss000000 aks-secrets-store-provider-azure-5p4nb 1/1 Running 0 4m21s aks-nodepool1-12345678-vmss000000 aks-secrets-store-provider-azure-6pqmv 1/1 Running 0 4m24s aks-nodepool1-12345678-vmss000001 aks-secrets-store-provider-azure-f5qlm 1/1 Running 0 4m25s aks-nodepool1-12345678-vmss000002
Mevcut Azure Key Vault'u oluşturma veya kullanma
Azure rol tabanlı erişim denetimi (Azure RBAC) etkinleştirilmiş bir anahtar kasası oluşturun veya güncelleştirin; bunu, az keyvault create komutunu veya az keyvault update komutunu, --enable-rbac-authorization bayrağı ile kullanarak gerçekleştirin.
Parametresini eklemeseniz --enable-rbac-authorization bile yeni bir anahtar kasası oluşturduğunuzda Azure RBAC varsayılan olarak etkinleştirilir. Parametresi, Azure RBAC'nin devre dışı bırakılmış olduğu mevcut bir anahtar kasasını güncelleştirdiğinizde gereklidir.
Anahtar kasası izin modelleri ve Azure RBAC hakkında daha fazla bilgi için bkz. Azure rol tabanlı erişim denetimiyle Key Vault anahtarlarına, sertifikalarına ve gizli dizilerine erişim sağlama
Yeni bir anahtar kasası için Azure RBAC yetkilendirmesini etkinleştirin veya mevcut bir anahtar kasasını güncelleştirin.
az keyvault createkomutunu çalıştırarak Azure RBAC'nin etkin olduğu yeni bir anahtar kasası oluşturun.az keyvault create \ --name $KEYVAULT_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --enable-rbac-authorizationAnahtar kasasında
az keyvault showAzure RBAC'nin etkinleştirildiğini doğrulamak için komutunu çalıştırın.az keyvault show \ --name $KEYVAULT_NAME \ --resource-group $RESOURCE_GROUP \ --query properties.enableRbacAuthorizationÇıkış olmalıdır
true.Bir sonraki adımda bir anahtar kasası sırrı ekleyebilmeniz için
az role assignment createkomutunu kullanarak anahtar kasası kapsamına kullanıcı hesabınız için bir rol ataması ekleyin.Benzersiz tanımlayıcısıyla Key Vault Gizli Anahtar Sorumlusu rolü eklenmiştir ve bu rolü adı veya benzersiz tanımlayıcısı ile kullanabilirsiniz. Rolün benzersiz tanımlayıcısını kullanmak, rol adı değişirse sorunları önlemek için en iyi yöntemdir.
KEYVAULT_ID=$(az keyvault show \ --name $KEYVAULT_NAME \ --resource-group $RESOURCE_GROUP \ --query id -o tsv) MYID=$(az ad signed-in-user show --query id --output tsv) az role assignment create \ --assignee-object-id $MYID \ --role "b86a8fe4-44ce-4948-aee5-eccb2c155cd7" \ --scope $KEYVAULT_ID \ --assignee-principal-type UserRol atamasının geçerlilik kazanması birkaç dakika sürebilir. Rol atamasının oluşturulduğunu aşağıdaki komutla doğrulayabilirsiniz:
az role assignment list \ --assignee-object-id $MYID \ --scope $KEYVAULT_ID \ --query '[].{Role:roleDefinitionName, Scope:scope}' \ --output tableaz keyvault secret setkomutunu kullanarak, anahtar kasasındaExampleSecretadlı bir düz metin secret oluşturun.Anahtar kasanız anahtarları, gizli bilgileri ve sertifikaları depolayabilir.
valueparametresi, gizli için benzersiz bir değer oluşturmak üzereRANDOM_STRINGdeğişkenini kullanır.az keyvault secret set \ --vault-name $KEYVAULT_NAME \ --name ExampleSecret \ --value MyAKSExampleSecret${RANDOM_STRING}az keyvault secret showkomutunu kullanarak gizlinin anahtar kasasına eklendiğini doğrulayın.az keyvault secret show --vault-name $KEYVAULT_NAME --name ExampleSecret
Kaynakları temizle
Sonraki makaleye gidiyorsanız veya bu kaynaklara ihtiyacınız varsa, aşağıdaki adımları yoksayın. Aksi takdirde, işiniz bittiyse ve sonraki makaleye devam etmek istemiyorsanız, gereksiz maliyetlerden kaçınmak için bu makalede oluşturulan kaynakları silmeniz gerekir.
Kümenizin kimlik bilgilerini yerel .kube/config dosyanızdan kaldırın.
KUBE_CONTEXT=$(kubectl config current-context) kubectl config delete-context $KUBE_CONTEXTkomutunu kullanarak
MC_düğüm kaynak grubundaki (az group delete) kaynaklar dahil olmak üzere kaynak grubunu ve içindeki tüm kaynakları silin.az group delete --name $RESOURCE_GROUP --yes --no-wait
Sonraki adımlar
Bu makalede, AKS kümesinde Secrets Store CSI Driver için Azure Key Vault sağlayıcısını kullanmayı öğrendiniz. Şimdi Azure Key Vault'a erişmek için bir kimlik sağlamanız gerekir. Nasıl yapılacağını öğrenmek için sonraki makaleye geçin.