Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In de op Istio gebaseerde service-mesh-invoegtoepassing voor Azure Kubernetes Service genereert de Istio-certificeringsinstantie (CA) standaard een zelfondertekend basiscertificaat en -sleutel en gebruikt deze om de workloadcertificaten te ondertekenen. Als u de basis-CA-sleutel wilt beveiligen, moet u een basis-CA gebruiken, die offline wordt uitgevoerd op een beveiligde computer. U kunt de basis-CA gebruiken om tussenliggende certificaten uit te geven aan de Istio CA's die in elk cluster worden uitgevoerd. Een Istio-CA kan workloadcertificaten ondertekenen met behulp van het door de beheerder opgegeven certificaat en sleutel en een door de beheerder opgegeven basiscertificaat distribueren naar de werkbelastingen als de basis van vertrouwen. In dit artikel wordt beschreven hoe u uw eigen certificaten en sleutels voor Istio-CA kunt gebruiken in de service mesh-invoegtoepassing op basis van Istio voor Azure Kubernetes Service.
In dit artikel wordt beschreven hoe u de Istio-certificeringsinstantie kunt configureren met een basiscertificaat, handtekeningcertificaat en sleutel die als invoer worden geleverd met behulp van Azure Key Vault voor de op Istio gebaseerde service mesh-invoegtoepassing.
Voordat u begint
Azure CLI-versie controleren
Voor de add-on is versie 2.57.0 of hoger van Azure CLI geïnstalleerd. U kunt az --version uitvoeren om de versie te verifiëren. Zie [Azure CLI installeren][azure-cli-install] als u deze wilt installeren of upgraden.
Azure Key Vault instellen
U hebt een Azure Key Vault-resource nodig om het certificaat en de sleutelinvoer op te geven aan de Istio-invoegtoepassing.
U moet een basiscertificaat, tussenliggende certificaten, tussenliggende sleutel en de certificaatketen offline genereren. Stap 1-3 van hieruit bevat een voorbeeld van het genereren van deze bestanden.
Geheimen maken in Azure Key Vault met behulp van de certificaten en sleutel:
az keyvault secret set --vault-name $AKV_NAME --name root-cert --file <path-to-folder/root-cert.pem> az keyvault secret set --vault-name $AKV_NAME --name ca-cert --file <path-to-folder/ca-cert.pem> az keyvault secret set --vault-name $AKV_NAME --name ca-key --file <path-to-folder/ca-key.pem> az keyvault secret set --vault-name $AKV_NAME --name cert-chain --file <path-to-folder/cert-chain.pem>Schakel de Azure Key Vault-provider in voor het CSI-stuurprogramma voor het geheimarchief voor uw cluster:
az aks enable-addons --addons azure-keyvault-secrets-provider --resource-group $RESOURCE_GROUP --name $CLUSTERNotitie
Wanneer u certificaten roteert, kunt u bepalen hoe snel de geheimen worden gesynchroniseerd met het cluster door de
--rotation-poll-interval-parameter van de Azure Key Vault Secrets Provider-add-on te gebruiken. Bijvoorbeeld:az aks addon update --resource-group $RESOURCE_GROUP --name $CLUSTER --addon azure-keyvault-secrets-provider --enable-secret-rotation --rotation-poll-interval 20sAls uw Key Vault Gebruikmaakt van Azure RBAC voor het machtigingsmodel, volgt u de instructies hier om een Azure-rol van Key Vault Secrets User toe te wijzen voor de door de gebruiker toegewezen beheerde identiteit van de invoegtoepassing. Als uw sleutelkluis gebruikmaakt van het machtigingsmodel voor kluistoegangsbeleid, kunt u ook de door de gebruiker toegewezen beheerde identiteit van de invoegtoepassing autoriseren voor toegang tot Azure Key Vault-resource met behulp van toegangsbeleid:
OBJECT_ID=$(az aks show --resource-group $RESOURCE_GROUP --name $CLUSTER --query 'addonProfiles.azureKeyvaultSecretsProvider.identity.objectId' -o tsv) az keyvault set-policy --name $AKV_NAME --object-id $OBJECT_ID --secret-permissions get
Service mesh-invoegtoepassing op basis van Istio instellen met invoegtoepassings-CA-certificaten
Schakel de Mesh-invoegtoepassing van de Istio-service in voor uw bestaande AKS-cluster terwijl u verwijst naar de Azure Key Vault-geheimen die u eerder hebt gemaakt:
az aks mesh enable --resource-group $RESOURCE_GROUP --name $CLUSTER \ --root-cert-object-name root-cert \ --ca-cert-object-name ca-cert \ --ca-key-object-name ca-key \ --cert-chain-object-name cert-chain \ --key-vault-id /subscriptions/$SUBSCRIPTION/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.KeyVault/vaults/$AKV_NAMENotitie
Voor bestaande clusters met Istio-add-on die gebruikmaken van een zelfondertekend basiscertificaat dat is gegenereerd door de Istio CA, wordt het overschakelen naar de plugin-CA niet ondersteund. U moet eerst de mesh op deze clusters uitschakelen en deze vervolgens opnieuw inschakelen met het bovenstaande commando om de plugin CA-invoer door te sturen.
Controleer of het Istio-controlevlak de aangepaste certificeringsinstantie heeft opgehaald.
kubectl logs deploy/istiod-asm-1-17 -c discovery -n aks-istio-system | grep -v validationController | grep x509De verwachte uitvoer moet er ongeveer als volgt uitzien:
2023-11-06T15:49:15.493732Z info x509 cert - Issuer: "CN=Intermediate CA - A1,O=Istio,L=cluster-A1", Subject: "", SN: e191d220af347c7e164ec418d75ed19e, NotBefore: "2023-11-06T15:47:15Z", NotAfter: "2033-11-03T15:49:15Z" 2023-11-06T15:49:15.493764Z info x509 cert - Issuer: "CN=Root A,O=Istio", Subject: "CN=Intermediate CA - A1,O=Istio,L=cluster-A1", SN: 885034cba2894f61036f2956fd9d0ed337dc636, NotBefore: "2023-11-04T01:40:02Z", NotAfter: "2033-11-01T01:40:02Z" 2023-11-06T15:49:15.493795Z info x509 cert - Issuer: "CN=Root A,O=Istio", Subject: "CN=Root A,O=Istio", SN: 18e2ee4089c5a7363ec306627d21d9bb212bed3e, NotBefore: "2023-11-04T01:38:27Z", NotAfter: "2033-11-01T01:38:27Z"
Rotatie van certificeringsinstantie
Mogelijk moet u de certificeringsinstanties regelmatig roteren om veiligheids- of beleidsredenen. In deze sectie wordt uitgelegd hoe u tussenliggende CA- en basis-CA-rotatiescenario's kunt afhandelen.
Tussenliggende rotatie van certificeringsinstantie
U kunt de tussenliggende CA roteren terwijl u de basis-CA hetzelfde houdt. Werk de geheimen in de Azure Key Vault-resource bij met het nieuwe certificaat en de sleutelbestanden:
az keyvault secret set --vault-name $AKV_NAME --name root-cert --file <path-to-folder/root-cert.pem> az keyvault secret set --vault-name $AKV_NAME --name ca-cert --file <path-to-folder/ca-cert.pem> az keyvault secret set --vault-name $AKV_NAME --name ca-key --file <path-to-folder/ca-key.pem> az keyvault secret set --vault-name $AKV_NAME --name cert-chain --file <path/cert-chain.pem>Wacht de tijdsduur van
--rotation-poll-intervalaf. Controleer of de certificaten zijn vernieuwd op het cluster op basis van de nieuwe tussenliggende CA die is bijgewerkt op de Azure Key Vault-resource:kubectl logs deploy/istiod-asm-1-17 -c discovery -n aks-istio-system | grep -v validationControllerDe verwachte uitvoer moet er ongeveer als volgt uitzien:
2023-11-07T06:16:21.091844Z info Update Istiod cacerts 2023-11-07T06:16:21.091901Z info Using istiod file format for signing ca files 2023-11-07T06:16:21.354423Z info Istiod has detected the newly added intermediate CA and updated its key and certs accordingly 2023-11-07T06:16:21.354910Z info x509 cert - Issuer: "CN=Intermediate CA - A2,O=Istio,L=cluster-A2", Subject: "", SN: b2753c6a23b54d8364e780bf664672ce, NotBefore: "2023-11-07T06:14:21Z", NotAfter: "2033-11-04T06:16:21Z" 2023-11-07T06:16:21.354967Z info x509 cert - Issuer: "CN=Root A,O=Istio", Subject: "CN=Intermediate CA - A2,O=Istio,L=cluster-A2", SN: 17f36ace6496ac2df88e15878610a0725bcf8ae9, NotBefore: "2023-11-04T01:40:22Z", NotAfter: "2033-11-01T01:40:22Z" 2023-11-07T06:16:21.355007Z info x509 cert - Issuer: "CN=Root A,O=Istio", Subject: "CN=Root A,O=Istio", SN: 18e2ee4089c5a7363ec306627d21d9bb212bed3e, NotBefore: "2023-11-04T01:38:27Z", NotAfter: "2033-11-01T01:38:27Z" 2023-11-07T06:16:21.355012Z info Istiod certificates are reloadedDe workloads ontvangen standaard certificaten van het Istio-besturingsvlak die standaard 24 uur geldig zijn. Als u de pods niet opnieuw opstart, verkrijgen alle workloads binnen 24 uur nieuwe leaf-certificaten op basis van de nieuwe tussenliggende CA. Als u wilt afdwingen dat al deze werkbelastingen direct nieuwe leaf-certificaten verkrijgen van de nieuwe tussenliggende CA, moet u de werkbelastingen opnieuw starten.
kubectl rollout restart deployment <deployment name> -n <deployment namespace>
Rotatie van basiscertificeringsinstantie
U moet Azure Key Vault-geheimen bijwerken met het basiscertificaatbestand met de samenvoeging van het oude en de nieuwe basiscertificaten:
az keyvault secret set --vault-name $AKV_NAME --name root-cert --file <path-to-folder/root-cert.pem> az keyvault secret set --vault-name $AKV_NAME --name ca-cert --file <path-to-folder/ca-cert.pem> az keyvault secret set --vault-name $AKV_NAME --name ca-key --file <path-to-folder/ca-key.pem> az keyvault secret set --vault-name $AKV_NAME --name cert-chain --file <path/cert-chain.pem>De inhoud van
root-cert.pemvolgt dit formaat:-----BEGIN CERTIFICATE----- <contents of old root certificate> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <contents of new root certificate> -----END CERTIFICATE-----Controleer
istiodde logboeken zodra de certificaten zijn gesynchroniseerd met het cluster.kubectl logs deploy/istiod-asm-1-17 -c discovery -n aks-istio-systemVerwachte uitvoer:
2023-11-07T06:42:00.287916Z info Updating new ROOT-CA 2023-11-07T06:42:00.287928Z info update root cert and generate new dns certs 2023-11-07T06:42:00.288254Z info Update trust anchor with new root cert 2023-11-07T06:42:00.288279Z info trustBundle updating Source IstioCA with certs 2023-11-07T06:42:00.288298Z info Istiod has detected the newly added intermediate CA and updated its key and certs accordingly 2023-11-07T06:42:00.288303Z info Istiod certificates are reloadedU moet 24 uur wachten (de standaardtijd voor de geldigheid van het leaf-certificaat) of het opnieuw opstarten van alle workloads afdwingen. Op deze manier herkennen alle workloads zowel de oude als de nieuwe certificeringsinstanties voor mTLS-verificatie.
kubectl rollout restart deployment <deployment name> -n <deployment namespace>U kunt nu Azure Key Vault-geheimen bijwerken met alleen de nieuwe CA (zonder de oude CA):
az keyvault secret set --vault-name $AKV_NAME --name root-cert --file <path-to-folder/root-cert.pem> az keyvault secret set --vault-name $AKV_NAME --name ca-cert --file <path-to-folder/ca-cert.pem> az keyvault secret set --vault-name $AKV_NAME --name ca-key --file <path-to-folder/ca-key.pem> az keyvault secret set --vault-name $AKV_NAME --name cert-chain --file <path/cert-chain.pem>Controleer
istiodde logboeken zodra de certificaten zijn gesynchroniseerd met het cluster.kubectl logs deploy/istiod-asm-1-17 -c discovery -n aks-istio-system | grep -v validationControllerVerwachte uitvoer:
2023-11-07T08:01:17.780299Z info x509 cert - Issuer: "CN=Intermediate CA - B1,O=Istio,L=cluster-B1", Subject: "", SN: 1159747c72cc7ac7a54880cd49b8df0a, NotBefore: "2023-11-07T07:59:17Z", NotAfter: "2033-11-04T08:01:17Z" 2023-11-07T08:01:17.780330Z info x509 cert - Issuer: "CN=Root B,O=Istio", Subject: "CN=Intermediate CA - B1,O=Istio,L=cluster-B1", SN: 2aba0c438652a1f9beae4249457023013948c7e2, NotBefore: "2023-11-04T01:42:12Z", NotAfter: "2033-11-01T01:42:12Z" 2023-11-07T08:01:17.780345Z info x509 cert - Issuer: "CN=Root B,O=Istio", Subject: "CN=Root B,O=Istio", SN: 3f9da6ddc4cb03749c3f43243a4b701ce5eb4e96, NotBefore: "2023-11-04T01:41:54Z", NotAfter: "2033-11-01T01:41:54Z"In de voorbeelduitvoer die in dit artikel wordt weergegeven, kunt u zien dat we zijn gegaan van Root A (gebruikt bij het inschakelen van de add-on) naar Root B.