Použití rozšíření Secret Store k načtení tajných kódů pro offline přístup v clusterech Kubernetes s podporou Azure Arc
Rozšíření Úložiště tajných kódů služby Azure Key Vault pro Kubernetes ("SSE") automaticky synchronizuje tajné kódy ze služby Azure Key Vault do clusteru Kubernetes s podporou Služby Azure Arc pro offline přístup. To znamená, že službu Azure Key Vault můžete použít k ukládání, údržbě a obměně tajných kódů i při spouštění clusteru Kubernetes v částečně odpojeném stavu. Synchronizované tajné kódy jsou uložené v úložišti tajných kódů clusteru a zpřístupňuje je jako tajné kódy Kubernetes, které se mají používat všemi obvyklými způsoby: připojené jako datové svazky nebo vystavené jako proměnné prostředí kontejneru v podu.
Synchronizované tajné kódy jsou důležité obchodní prostředky, takže je SSE zabezpečuje prostřednictvím izolovaných oborů názvů a uzlů, zásad řízení přístupu na základě role (RBAC) a omezených oprávnění pro synchronizátor tajných kódů. Kvůli dodatečné ochraně zašifrujte úložiště tajných kódů Kubernetes ve vašem clusteru.
Tip
SSE se doporučuje pro scénáře, kdy je nutný offline přístup nebo pokud potřebujete tajné kódy synchronizované do úložiště tajných kódů Kubernetes. Pokud tyto funkce nepotřebujete, můžete v clusterech Kubernetes s podporou Arc použít rozšíření zprostředkovatele tajných kódů služby Azure Key Vault ke správě tajných kódů. Nedoporučuje se spouštět online rozšíření zprostředkovatele tajných kódů služby Azure Key Vault i offline SSE vedle sebe v clusteru.
V tomto článku se dozvíte, jak nainstalovat a nakonfigurovat SSE jako rozšíření Kubernetes s podporou Azure Arc.
Důležité
SSE je aktuálně ve verzi PREVIEW. Právní podmínky, které platí pro funkce Azure, které jsou ve verzi beta, verzi Preview nebo které zatím nejsou veřejně dostupné, najdete v Dodatečných podmínkách použití pro Microsoft Azure verze Preview.
Požadavky
- Cluster s podporou arc. Může to být ten, který jste se připojili sami (příklady v tomto průvodci používají cluster K3s ) nebo microsoftem spravovaný cluster AKS, který umožňuje cluster Azure Arc . Cluster musí používat Kubernetes verze 1.27 nebo vyšší a v jedné z podporovaných oblastí (USA – východ, USA – východ 2, USA – západ, USA – západ 2, USA – západ3, Západní Evropa, Severní Evropa). Oblast je definována oblastí skupiny prostředků používanou k vytvoření clusteru Arc.
- Ujistěte se, že splňujete obecné požadavky na rozšíření clusteru, včetně nejnovější verze
k8s-extension
rozšíření Azure CLI. - Nástroj cert-manager je nutný k podpoře protokolu TLS pro komunikaci uvnitřclusteru. Příklady dále v tomto průvodci vás přesměruje na instalaci. Další informace o nástroji cert-manager najdete v tématu cert-manager.io
Pokud jste to ještě neudělali, nainstalujte Azure CLI a přihlaste se:
az login
Než začnete, nastavte proměnné prostředí, které se použijí pro konfiguraci prostředků Azure a clusteru. Pokud už máte spravovanou identitu, Službu Azure Key Vault nebo jiný prostředek uvedený tady, aktualizujte názvy proměnných prostředí tak, aby odrážely tyto prostředky.
export RESOURCE_GROUP="AzureArcTest"
export CLUSTER_NAME="AzureArcTest1"
export LOCATION="EastUS"
export SUBSCRIPTION="$(az account show --query id --output tsv)"
az account set --subscription "${SUBSCRIPTION}"
export AZURE_TENANT_ID="$(az account show -s $SUBSCRIPTION --query tenantId --output tsv)"
export CURRENT_USER="$(az ad signed-in-user show --query userPrincipalName --output tsv)"
export KEYVAULT_NAME="my-kv"
export KEYVAULT_SECRET_NAME="my-secret"
export USER_ASSIGNED_IDENTITY_NAME="my-identity"
export FEDERATED_IDENTITY_CREDENTIAL_NAME="my-credential"
export KUBERNETES_NAMESPACE="my-namespace"
export SERVICE_ACCOUNT_NAME="my-service-account"
Aktivace federace identit úloh v clusteru
SSE používá funkci označovanou jako federace identit úloh pro přístup k tajným kódům služby Azure Key Vault a jejich synchronizaci. Tato část popisuje, jak to nastavit. V následujících částech se dozvíte, jak se používá podrobněji.
Tip
Následující kroky jsou založené na průvodci postupy pro konfiguraci Kubernetes s podporou Arc s federací identit úloh. Další pomoc najdete v této dokumentaci.
Pokud váš cluster ještě není připojený ke službě Azure Arc, postupujte takto. Během těchto kroků povolte federaci identit úloh jako součást connect
příkazu:
az connectedk8s connect --name ${CLUSTER_NAME} --resource-group ${RESOURCE_GROUP} --enable-oidc-issuer --enable-workload-identity
Pokud už je váš cluster připojený ke službě Azure Arc, povolte identitu úloh pomocí update
příkazu:
az connectedk8s update --name ${CLUSTER_NAME} --resource-group ${RESOURCE_GROUP} --enable-oidc-issuer --enable-workload-identity
Teď nakonfigurujte cluster tak, aby vystavil tokeny účtu služby s novou adresou URL vystavitele (service-account-issuer
), která umožňuje ID Microsoft Entra najít veřejné klíče potřebné k ověření těchto tokenů. Tyto veřejné klíče jsou určené pro vlastního vystavitele tokenu účtu služby clusteru a byly získány a hostované v cloudu na této adrese URL v důsledku --enable-oidc-issuer
možnosti, kterou jste nastavili výše.
Volitelně můžete také nakonfigurovat omezení pro vlastní oprávnění SSE jako privilegovaný prostředek spuštěný v řídicí rovině konfigurací OwnerReferencesPermissionEnforcement
kontroleru přístupu. Tento kontroler přístupu omezuje, kolik může SSE změnit jiné objekty v clusteru.
Nakonfigurujte server kube-apiserver s polem adresy URL vystavitele a vynuceným vynucováním oprávnění. Následující příklad je pro cluster k3s. Cluster může mít jiné prostředky pro změnu argumentů serveru rozhraní API:
--kube-apiserver-arg="--service-account-issuer=${SERVICE_ACCOUNT_ISSUER}" and --kube-apiserver-arg="--enable-admission-plugins=OwnerReferencesPermissionEnforcement"
.Získejte adresu URL vystavitele účtu služby.
export SERVICE_ACCOUNT_ISSUER="$(az connectedk8s show --name ${CLUSTER_NAME} --resource-group ${RESOURCE_GROUP} --query "oidcIssuerProfile.issuerUrl" --output tsv)" echo $SERVICE_ACCOUNT_ISSUER
Otevřete konfigurační soubor serveru K3s.
sudo nano /etc/systemd/system/k3s.service
Upravte konfiguraci serveru tak, aby vypadala jako v následujícím příkladu, přičemž <SERVICE_ACCOUNT_ISSUER> nahraďte výše uvedeným výstupem
echo $SERVICE_ACCOUNT_ISSUER
a nezapomeňte zahrnout koncové lomítko této adresy URL:ExecStart=/usr/local/bin/k3s \ server --write-kubeconfig-mode=644 \ --kube-apiserver-arg="--service-account-issuer=<SERVICE_ACCOUNT_ISSUER>" \ --kube-apiserver-arg="--enable-admission-plugins=OwnerReferencesPermissionEnforcement"
Restartujte svůj kube-apiserver.
sudo systemctl daemon-reload sudo systemctl restart k3s
Vytvoření tajného kódu a konfigurace identity pro přístup k němu
Aby bylo možné získat přístup k danému tajnému klíči služby Azure Key Vault a synchronizovat ho, vyžaduje služba SSE přístup ke spravované identitě Azure s příslušnými oprávněními Azure pro přístup k danému tajnému klíči. Spravovaná identita musí být propojená s účtem služby Kubernetes pomocí funkce identity úlohy, kterou jste aktivovali výše. SSE používá přidruženou federovanou spravovanou identitu Azure k načtení tajných kódů ze služby Azure Key Vault do úložiště tajných kódů Kubernetes. Následující části popisují, jak to nastavit.
Vytvoření služby Azure Key Vault
Vytvořte Azure Key Vault a přidejte tajný kód. Pokud už máte Službu Azure Key Vault a tajný klíč, můžete tuto část přeskočit.
Vytvoření služby Azure Key Vault:
az keyvault create --resource-group "${RESOURCE_GROUP}" --location "${LOCATION}" --name "${KEYVAULT_NAME}" --enable-rbac-authorization
Dejte sobě oprávnění "Secret Officer" k trezoru, abyste mohli vytvořit tajný kód:
az role assignment create --role "Key Vault Secrets Officer" --assignee ${CURRENT_USER} --scope /subscriptions/${SUBSCRIPTION}/resourcegroups/${RESOURCE_GROUP}/providers/Microsoft.KeyVault/vaults/${KEYVAULT_NAME}
Vytvořte tajný klíč a aktualizujte ho, abyste měli dvě verze:
az keyvault secret set --vault-name "${KEYVAULT_NAME}" --name "${KEYVAULT_SECRET_NAME}" --value 'Hello!' az keyvault secret set --vault-name "${KEYVAULT_NAME}" --name "${KEYVAULT_SECRET_NAME}" --value 'Hello2'
Vytvoření spravované identity přiřazené uživatelem
Dále vytvořte spravovanou identitu přiřazenou uživatelem a dejte jí oprávnění pro přístup ke službě Azure Key Vault. Pokud už máte spravovanou identitu s oprávněními čtenáře služby Key Vault a tajnými klíči služby Key Vault pro službu Azure Key Vault, můžete tuto část přeskočit. Další informace najdete v tématu Vytvoření spravovaných identit přiřazených uživatelem a použití tajného klíče, klíče a certifikátu Azure RBAC se službou Key Vault.
Vytvořte spravovanou identitu přiřazenou uživatelem:
az identity create --name "${USER_ASSIGNED_IDENTITY_NAME}" --resource-group "${RESOURCE_GROUP}" --location "${LOCATION}" --subscription "${SUBSCRIPTION}"
Udělte uživatelům oprávnění čtenáře služby Key Vault identity a tajným klíčům služby Key Vault. Možná budete muset chvíli počkat na replikaci vytvoření identity, než budou tyto příkazy úspěšné:
export USER_ASSIGNED_CLIENT_ID="$(az identity show --resource-group "${RESOURCE_GROUP}" --name "${USER_ASSIGNED_IDENTITY_NAME}" --query 'clientId' -otsv)" az role assignment create --role "Key Vault Reader" --assignee "${USER_ASSIGNED_CLIENT_ID}" --scope /subscriptions/${SUBSCRIPTION}/resourcegroups/${RESOURCE_GROUP}/providers/Microsoft.KeyVault/vaults/${KEYVAULT_NAME} az role assignment create --role "Key Vault Secrets User" --assignee "${USER_ASSIGNED_CLIENT_ID}" --scope /subscriptions/${SUBSCRIPTION}/resourcegroups/${RESOURCE_GROUP}/providers/Microsoft.KeyVault/vaults/${KEYVAULT_NAME}
Vytvoření přihlašovacích údajů federované identity
Vytvořte účet služby Kubernetes pro úlohu, která potřebuje přístup k tajným kódům. Potom vytvořte přihlašovací údaje federované identity pro propojení mezi spravovanou identitou, vystavitelem účtu služby OIDC a účtem služby Kubernetes Service.
Vytvořte účet služby Kubernetes Service, který se bude federovat se spravovanou identitou. Označte ji poznámkami s podrobnostmi o přidružené spravované identitě přiřazené uživatelem.
kubectl create ns ${KUBERNETES_NAMESPACE}
cat <<EOF | kubectl apply -f - apiVersion: v1 kind: ServiceAccount metadata: name: ${SERVICE_ACCOUNT_NAME} namespace: ${KUBERNETES_NAMESPACE} EOF
Vytvořte přihlašovací údaje federované identity:
az identity federated-credential create --name ${FEDERATED_IDENTITY_CREDENTIAL_NAME} --identity-name ${USER_ASSIGNED_IDENTITY_NAME} --resource-group ${RESOURCE_GROUP} --issuer ${SERVICE_ACCOUNT_ISSUER} --subject system:serviceaccount:${KUBERNETES_NAMESPACE}:${SERVICE_ACCOUNT_NAME}
Instalace služby SSE
SSE je k dispozici jako rozšíření Azure Arc. Cluster Kubernetes s podporou Azure Arc je možné rozšířit o rozšíření Kubernetes s podporou Azure Arc. Rozšíření umožňují v připojeném clusteru funkce Azure a poskytují prostředí řízené Azure Resource Managerem pro instalaci rozšíření a správu životního cyklu.
Pro zabezpečenou komunikaci protokolů mezi službami clusteru se vyžaduje také správce certifikátů a správce důvěryhodnosti a musí se nainstalovat před rozšířením Arc.
Nainstalujte nástroj cert-manager.
helm repo add jetstack https://charts.jetstack.io/ --force-update helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --version v1.16.2 --set crds.enabled=true
Nainstalujte správce důvěryhodnosti.
helm upgrade trust-manager jetstack/trust-manager --install --namespace cert-manager --wait
Pomocí následujícího příkazu nainstalujte SSE do clusteru s podporou Arc:
az k8s-extension create \ --cluster-name ${CLUSTER_NAME} \ --cluster-type connectedClusters \ --extension-type microsoft.azure.secretstore \ --resource-group ${RESOURCE_GROUP} \ --release-train preview \ --name ssarcextension \ --scope cluster
V případě potřeby můžete volitelně upravit výchozí interval dotazování otočení přidáním
--configuration-settings rotationPollIntervalInSeconds=<time_in_seconds>
:Název parametru Popis Default value rotationPollIntervalInSeconds
Určuje, jak rychle služba SSE kontroluje nebo aktualizuje tajný klíč, který spravuje. 3600
(1 hodina)
Konfigurace SSE
Nakonfigurujte nainstalované rozšíření s informacemi o službě Azure Key Vault a o tajných klíčích, které se mají synchronizovat s clusterem, definováním instancí vlastních prostředků Kubernetes. Vytvoříte dva typy vlastních prostředků:
- Objekt
SecretProviderClass
definující připojení ke službě Key Vault. - Objekt
SecretSync
pro každou synchronizaci tajného kódu.
Vytvoření SecretProviderClass
prostředku
Prostředek SecretProviderClass
se používá k definování připojení ke službě Azure Key Vault, identita, která se má použít pro přístup k trezoru, které tajné kódy se mají synchronizovat, a počet verzí jednotlivých tajných kódů, které se mají uchovávat místně.
Pro každou službu Azure Key Vault, kterou chcete synchronizovat, potřebujete samostatnou SecretProviderClass
identitu, pro každou identitu použitou pro přístup ke službě Azure Key Vault a pro každý cílový obor názvů Kubernetes.
Podle tohoto příkladu vytvořte jeden nebo více SecretProviderClass
souborů YAML s odpovídajícími hodnotami pro službu Key Vault a tajné kódy.
cat <<EOF > spc.yaml
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
name: secret-provider-class-name # Name of the class; must be unique per Kubernetes namespace
namespace: ${KUBERNETES_NAMESPACE} # Kubernetes namespace to make the secrets accessible in
spec:
provider: azure
parameters:
clientID: "${USER_ASSIGNED_CLIENT_ID}" # Managed Identity Client ID for accessing the Azure Key Vault with.
keyvaultName: ${KEYVAULT_NAME} # The name of the Azure Key Vault to synchronize secrets from.
objects: |
array:
- |
objectName: ${KEYVAULT_SECRET_NAME} # The name of the secret to sychronize.
objectType: secret
objectVersionHistory: 2 # [optional] The number of versions to synchronize, starting from latest.
tenantID: "${AZURE_TENANT_ID}" # The tenant ID of the Key Vault
EOF
Vytvoření objektu SecretSync
Každý synchronizovaný tajný klíč také vyžaduje SecretSync
objekt, který definuje informace specifické pro cluster. Tady zadáte informace, jako je název tajného kódu v clusteru a názvy pro každou verzi tajného kódu uloženého v clusteru.
Vytvořte jeden SecretSync
soubor YAML objektu pro každý tajný kód podle této šablony. Obor názvů Kubernetes by měl odpovídat oboru názvů odpovídajícího SecretProviderClass
oboru názvů .
cat <<EOF > ss.yaml
apiVersion: secret-sync.x-k8s.io/v1alpha1
kind: SecretSync
metadata:
name: secret-sync-name # Name of the object; must be unique per Kubernetes namespace
namespace: ${KUBERNETES_NAMESPACE} # Kubernetes namespace
spec:
serviceAccountName: ${SERVICE_ACCOUNT_NAME} # The Kubernetes service account to be given permissions to access the secret.
secretProviderClassName: secret-provider-class-name # The name of the matching SecretProviderClass with the configuration to access the AKV storing this secret
secretObject:
type: Opaque
data:
- sourcePath: ${KEYVAULT_SECRET_NAME}/0 # Name of the secret in Azure Key Vault with an optional version number (defaults to latest)
targetKey: ${KEYVAULT_SECRET_NAME}-data-key0 # Target name of the secret in the Kubernetes secret store (must be unique)
- sourcePath: ${KEYVAULT_SECRET_NAME}/1 # [optional] Next version of the AKV secret. Note that versions of the secret must match the configured objectVersionHistory in the secrets provider class
targetKey: ${KEYVAULT_SECRET_NAME}-data-key1 # [optional] Next target name of the secret in the K8s secret store
EOF
Použití zásad správy konfigurace
Použijte vlastní prostředky konfigurace (CRS) pomocí kubectl apply
příkazu:
kubectl apply -f ./spc.yaml
kubectl apply -f ./ss.yaml
Služba SSE automaticky vyhledá tajné kódy a začne je synchronizovat do clusteru.
Zobrazení možností konfigurace
Pokud chcete zobrazit další možnosti konfigurace pro tyto dva vlastní typy prostředků, pomocí kubectl describe
příkazu zkontrolujte identifikátory CRD v clusteru:
# Get the name of any applied CRD(s)
kubectl get crds -o custom-columns=NAME:.metadata.name
# View the full configuration options and field parameters for a given CRD
kubectl describe crd secretproviderclass
kubectl describe crd secretsync
Sledování synchronizace tajných kódů do clusteru
Jakmile se konfigurace použije, začnou se tajné kódy automaticky synchronizovat s clusterem v tempu zadaném při instalaci SSE.
Zobrazení synchronizovaných tajných kódů
Spuštěním následujícího příkazu zobrazte tajné kódy synchronizované do clusteru:
# View a list of all secrets in the namespace
kubectl get secrets -n ${KUBERNETES_NAMESPACE}
# View details of all secrets in the namespace
kubectl get secrets -n ${KUBERNETES_NAMESPACE} -o yaml
Zobrazení stavu poslední synchronizace
Pokud chcete zobrazit stav poslední synchronizace pro daný tajný klíč, použijte kubectl describe
příkaz pro SecretSync
objekt. Výstup zahrnuje časové razítko vytvoření tajného kódu, verze tajného kódu a podrobné stavové zprávy pro každou událost synchronizace. Tento výstup lze použít k diagnostice chyb připojení nebo konfigurace a ke sledování, kdy se hodnota tajného kódu změní.
kubectl describe secretsync secret-sync-name -n ${KUBERNETES_NAMESPACE}
Zobrazení hodnot tajných kódů
Pokud chcete zobrazit synchronizované tajné hodnoty, teď uložené v úložišti tajných kódů Kubernetes, použijte následující příkaz:
kubectl get secret secret-sync-name -n ${KUBERNETES_NAMESPACE} -o jsonpath="{.data.${KEYVAULT_SECRET_NAME}-data-key0}" | base64 -d
kubectl get secret secret-sync-name -n ${KUBERNETES_NAMESPACE} -o jsonpath="{.data.${KEYVAULT_SECRET_NAME}-data-key1}" | base64 -d
Řešení problému
SSE je nasazení Kubernetes, které obsahuje pod se dvěma kontejnery: kontroler, který spravuje ukládání tajných kódů do clusteru, a poskytovatele, který spravuje přístup ke službě Azure Key Vault a načítá tajné kódy. Každý synchronizovaný tajný klíč má SecretSync
objekt, který obsahuje stav synchronizace tohoto tajného kódu ze služby Azure Key Vault do úložiště tajných kódů clusteru.
Pokud chcete problém vyřešit, začněte tím, že se podíváte na stav objektu SecretSync
, jak je popsáno v zobrazení stavu poslední synchronizace. Následující tabulka uvádí běžné typy stavů, jejich významy a potenciální kroky pro řešení chyb.
Typ stavu SecretSync | Detaily | Postup pro další opravu nebo prošetření |
---|---|---|
CreateSucceeded |
Tajný kód byl úspěšně vytvořen. | Není k dispozici |
CreateFailedProviderError |
Vytvoření tajného kódu selhalo kvůli problému s poskytovatelem (připojení ke službě Azure Key Vault). Příčinou tohoto selhání může být připojení k internetu, nedostatečná oprávnění pro synchronizaci tajných SecretProviderClass kódů identity, chybná konfigurace nebo jiné problémy. |
Další zkoumání najdete v protokolech poskytovatele pomocí následujících příkazů: kubectl get pods -n azure-secret-store kubectl logs <secret-sync-controller-pod-name> -n azure-secret-store --container='provider-azure-installer' |
CreateFailedInvalidLabel |
Vytvoření tajného kódu se nezdařilo, protože tajný klíč již existuje bez správného popisku Kubernetes, který SSE používá ke správě tajných kódů. | Odeberte existující popisek a tajný klíč a povolte SSE znovu vytvořit tajný kód: kubectl delete secret <secret-name> Pokud chcete vynutit, aby služba SSE znovu vytvoří tajný kód rychleji než nakonfigurovaný interval dotazování rotace, odstraňte SecretSync objekt (kubectl delete secretsync <secret-name> ) a znovu nastavte třídu synchronizace tajných kódů (kubectl apply -f <path_to_secret_sync> ). |
CreateFailedInvalidAnnotation |
Vytvoření tajného kódu se nezdařilo, protože tajný klíč již existuje bez správné poznámky Kubernetes, kterou SSE používá ke správě svých tajných kódů. | Odeberte existující poznámku a tajný klíč a povolte SSE opětovné vytvoření tajného kódu: kubectl delete secret <secret-name> Pokud chcete vynutit, aby služba SSE znovu vytvoří tajný kód rychleji než nakonfigurovaný interval dotazování rotace, odstraňte SecretSync objekt (kubectl delete secretsync <secret-name> ) a znovu nastavte třídu synchronizace tajných kódů (kubectl apply -f <path_to_secret_sync> ). |
UpdateNoValueChangeSucceeded |
Služba SSE zkontrolovala, jestli služba Azure Key Vault neobsahuje aktualizace na konci nakonfigurovaného intervalu dotazování, ale nedošlo k žádným změnám synchronizace. | Není k dispozici |
UpdateValueChangeOrForceUpdateSucceeded |
Služba SSE zkontrolovala, jestli služba Azure Key Vault obsahuje aktualizace a úspěšně aktualizovala hodnotu. | Není k dispozici |
UpdateFailedInvalidLabel |
Aktualizace tajného kódu selhala, protože popisek tajného kódu, který SSE používá ke správě tajných kódů, byl změněn. | Odeberte existující popisek a tajný klíč a povolte SSE opětovné vytvoření tajného kódu: kubectl delete secret <secret-name> Pokud chcete vynutit, aby služba SSE znovu vytvoří tajný kód rychleji než nakonfigurovaný interval dotazování rotace, odstraňte SecretSync objekt (kubectl delete secretsync <secret-name> ) a znovu nastavte třídu synchronizace tajných kódů (kubectl apply -f <path_to_secret_sync> ). |
UpdateFailedInvalidAnnotation |
Aktualizace tajného kódu selhala, protože se změnila poznámka k tajnému kódu, který SSE používá ke správě tajných kódů. | Odeberte existující poznámku a tajný klíč a povolte SSE opětovné vytvoření tajného kódu: kubectl delete secret <secret-name> Pokud chcete vynutit, aby služba SSE znovu vytvoří tajný kód rychleji než nakonfigurovaný interval dotazování rotace, odstraňte SecretSync objekt (kubectl delete secretsync <secret-name> ) a znovu nastavte třídu synchronizace tajných kódů (kubectl apply -f <path_to_secret_sync> ). |
UpdateFailedProviderError |
Aktualizace tajného kódu selhala kvůli problému s poskytovatelem (připojení ke službě Azure Key Vault). Příčinou tohoto selhání může být připojení k internetu, nedostatečná oprávnění pro synchronizaci tajných SecretProviderClass kódů identity, konfigurace nebo jiné problémy. |
Další zkoumání najdete v protokolech poskytovatele pomocí následujících příkazů: kubectl get pods -n azure-secret-store kubectl logs <secret-sync-controller-pod-name> -n azure-secret-store --container='provider-azure-installer' |
UserInputValidationFailed |
Aktualizace tajného kódu selhala, protože třída synchronizace tajných kódů byla nesprávně nakonfigurovaná (například neplatný typ tajného kódu). | Zkontrolujte definici třídy synchronizace tajných kódů a opravte případné chyby. Potom odstraňte objekt (), odstraňte SecretSync třídu synchronizace tajných kódů (kubectl delete -f <path_to_secret_sync> ) a znovu použijte třídu synchronizace tajných kódů (kubectl apply -f <path_to_secret_sync> ).kubectl delete secretsync <secret-name> |
ControllerSpcError |
Aktualizace tajného kódu selhala, protože SSE se nepodařilo získat třídu zprostředkovatele nebo je třída zprostředkovatele chybně nakonfigurovaná. | Zkontrolujte třídu poskytovatele a opravte případné chyby. Pak odstraňte objekt (), odstraňte SecretSync třídu zprostředkovatele (kubectl delete -f <path_to_provider> ) a znovu použijte třídu zprostředkovatele (kubectl apply -f <path_to_provider> ).kubectl delete secretsync <secret-name> |
ControllerInternalError |
Aktualizace tajného kódu selhala kvůli vnitřní chybě v SSE. | Další informace najdete v protokolech SSE nebo událostech: kubectl get pods -n azure-secret-store kubectl logs <secret-sync-controller-pod-name> -n azure-secret-store --container='manager' |
SecretPatchFailedUnknownError |
Aktualizace tajného kódu selhala při opravě hodnoty tajného kódu Kubernetes. K tomuto selhání může dojít v případě, že tajný kód upravil někdo jiný než SSE nebo pokud během aktualizace SSE došlo k problémům. | Zkuste tajný klíč a objekt odstranit a SecretSync pak nechat SSE znovu vytvořit tajný klíč opětovným použitím cr synchronizace tajných kódů: kubectl delete secret <secret-name> kubectl delete secretsync <secret-name> kubectl apply -f <path_to_secret_sync> |
Odebrání SSE
Pokud chcete odebrat SSE a zastavit synchronizaci tajných kódů, odinstalujte ho az k8s-extension delete
pomocí příkazu:
az k8s-extension delete --name ssarcextension --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --cluster-type connectedClusters
Odinstalace rozšíření neodebere tajné kódy, SecretSync
objekty ani identifikátory CRD z clusteru. Tyto objekty musí být odebrány přímo s kubectl
.
Odstraněním tajného klíče CRD se odeberou všechny SecretSync
objekty a ve výchozím nastavení se odeberou všechny vlastněné tajné kódy, ale tajné kódy můžou být trvalé, pokud:
- Změnili jste vlastnictví libovolného tajného klíče.
- Změnili jste nastavení uvolňování paměti ve vašem clusteru, včetně nastavení různých finalizátorů.
Ve výše uvedených případech musí být tajné kódy odstraněny přímo pomocí kubectl
.
Další kroky
- Přečtěte si další informace o rozšířeních Azure Arc.
- Přečtěte si další informace o službě Azure Key Vault.