Effectuer une rotation des informations d’identification du principal de service pour votre cluster Azure Red Hat OpenShift (ARO)
Cet article fournit les détails nécessaires à la rotation des informations d’identification des principaux services dans les clusters Azure Red Hat OpenShift (ARO).
Avant de commencer
L’article suppose qu’il existe déjà un cluster ARO avec les dernières mises à jour appliquées.
Les exigences minimales pour Azure CLI pour la rotation des informations d’identification du principal de service dans un cluster ARO sont la version 2.24.0.
Pour vérifier la version d’Azure CLI, exécutez :
# Azure CLI version
az --version
Pour installer ou mettre à niveau Azure CLI, suivez Installer Azure CLI.
Les instructions suivantes utilisent la syntaxe bash.
Rotation des informations d’identification du principal du service
Important
La rotation des informations d’identification du principal de service peut prendre jusqu’à 2 heures en fonction de l’état du cluster.
La rotation des informations d’identification du principal de service propose deux méthodes :
- Rotation automatisée des informations d’identification du principal de service
- client-id fourni par l’utilisateur et rotation des informations d’identification du principal de service client-secret
Rotation automatisée des informations d’identification du principal de service
Important
La rotation automatisée des informations d’identification du principal de service requiert la création du cluster ARO avec Azure CLI version 2.24.0 ou ultérieure.
La rotation automatisée des informations d’identification du principal de service vérifie si le principal du service existe et fait pivoter ou crée un principal de service.
Faites pivoter automatiquement les informations d’identification du principal de service à l’aide de la commande suivante :
# Automatically rotate service principal credentials
az aro update --refresh-credentials --name MyManagedCluster --resource-group MyResourceGroup
client-id fourni par l’utilisateur et rotation des informations d’identification du principal de service client-secret
Faites pivoter manuellement les informations d’identification du principal de service avec l’ID client et le secret client fournis par l’utilisateur avec les instructions suivantes :
Récupérez le clientId du principal de service (--client-id
) et définissez-le comme variable d’environnement SP_ID
.
# Retrieve the service principal clientId
SP_ID=$(az aro show --name MyManagedCluster --resource-group MyResourceGroup \
--query servicePrincipalProfile.clientId -o tsv)
Générez un nouveau secret sécurisé (--client-secret
) pour le principal de service à l’aide de la variable SP_ID
ci-dessus. Stockez le nouveau secret sécurisé comme variable d’environnement SP_SECRET
.
# Generate a new secure secret for the service principal
SP_SECRET=$(az ad sp credential reset --id $SP_ID --query password -o tsv)
Faites pivoter les informations d’identification du principal de service à l’aide des variables d’environnement ci-dessus.
# Rotate service principal credentials
az aro update --client-id $SP_ID --client-secret $SP_SECRET \
--name MyManagedCluster --resource-group MyResourceGroup
Résoudre les problèmes
Date d’expiration du principal du service
Les informations d’identification du principal de service ont une date d’expiration d’un an et doivent être pivotées dans ce laps de temps.
Si la date d’expiration est passée, les erreurs suivantes sont possibles :
Failed to refresh the Token for request to MyResourceGroup StatusCode=401
Original Error: Request failed. Status Code = '401'.
[with]
Response body: {"error":"invalid_client","error_description": The provided client secret keys are expired.
[or]
Response body: {"error":"invalid_client","error_description": Invalid client secret is provided.
Pour vérifier la date d’expiration des informations d’identification du principal de service, exécutez la commande suivante :
# Service principal expiry in ISO 8601 UTC format
SP_ID=$(az aro show --name MyManagedCluster --resource-group MyResourceGroup \
--query servicePrincipalProfile.clientId -o tsv)
az ad app credential list --id $SP_ID --query "[].endDateTime" -o tsv
Si les informations d’identification du principal de service sont expirées, mettez-les à jour à l’aide d’une des deux méthodes de rotation des informations d’identification.
L’application AAD de cluster contient une clé secrète client avec une description vide
L’erreur suivante se produit lors de l’utilisation de la rotation automatisée des informations d’identification du principal de service :
$ az aro update --refresh-credentials --name MyManagedCluster --resource-group MyResourceGroup
Cluster AAD application contains a client secret with an empty description.
Please either manually remove the existing client secret and run `az aro update --refresh-credentials`,
or manually create a new client secret and run `az aro update --client-secret <ClientSecret>`.
Le cluster n’a pas été créé à l’aide d’Azure CLI 2.24.0 ou version ultérieure. Utilisez plutôt la méthode client-id fourni par l’utilisateur et rotation des informations d’identification du principal de service client-secret à la place.
Aide sur la mise à jour d’ARO avec Azure CLI
Pour plus d’informations, consultez la commande d’aide Azure CLI pour la mise à jour d’ARO :
# Azure CLI ARO update help
az aro update -h