Rotacione as credenciais da entidade de serviço do cluster do ARO (Red Hat OpenShift no Azure)
O artigo fornece os detalhes necessários para rotacionar as credenciais da entidade de serviço nos clusters do ARO (Red Hat OpenShift no Azure).
Antes de começar
O artigo presume que há um cluster do ARO existente com as atualizações mais recentes aplicadas.
O requisito mínimo da CLI do Azure para rotacionar as credenciais da entidade de serviço em um cluster do ARO é a versão 2.24.0.
Para verificar qual versão da CLI do Azure está sendo executada:
# Azure CLI version
az --version
Para instalar ou atualizar a CLI do Azure, siga Instalar a CLI do Azure.
As instruções a seguir usam a sintaxe bash.
Rotação de credenciais da entidade de serviço
Importante
A rotação de credenciais da entidade de serviço pode levar mais de duas horas, dependendo do estado do cluster.
A rotação de credenciais da entidade de serviço tem dois métodos:
- Rotação automatizada de credenciais da entidade de serviço
- Rotação de credenciais da entidade de serviço do client-id e do client-secret fornecidos pelo cliente
Rotação automatizada de credenciais da entidade de serviço
Importante
A rotação automatizada de credenciais da entidade de serviço exige que o cluster do ARO seja criado com a CLI do Azure versão 2.24.0 ou superior.
A rotação automatizada de credenciais da entidade de serviço verifica se a entidade de serviço existe e rotaciona ou cria uma entidade de serviço.
Rotacione automaticamente as credenciais da entidade de serviço com o seguinte comando:
# Automatically rotate service principal credentials
az aro update --refresh-credentials --name MyManagedCluster --resource-group MyResourceGroup
Rotação de credenciais da entidade de serviço do client-id e do client-secret fornecidos pelo usuário
Rotacione manualmente as credenciais da entidade de serviço com o client-id e o client-secret fornecidos pelo usuário com as seguintes instruções:
Recupere a clientId da entidade de serviço (--client-id
) e defina-a como a variável de ambiente SP_ID
.
# Retrieve the service principal clientId
SP_ID=$(az aro show --name MyManagedCluster --resource-group MyResourceGroup \
--query servicePrincipalProfile.clientId -o tsv)
Gere um novo segredo seguro (--client-secret
) para a entidade de serviço usando a variável SP_ID
acima. Armazene o novo segredo seguro como uma variável de ambiente 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)
Rotacione as credenciais da entidade de serviço usando as variáveis de ambiente acima.
# Rotate service principal credentials
az aro update --client-id $SP_ID --client-secret $SP_SECRET \
--name MyManagedCluster --resource-group MyResourceGroup
Solucionar problemas
Data de validade da entidade de serviço
As credenciais da entidade de serviço têm uma data de validade definida de um ano e devem ser rotacionadas dentro desse período determinado.
Se a data de validade tiver passado, os seguintes erros poderão ocorrer:
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.
Para verificar a data de validade das credenciais da entidade de serviço, execute o seguinte:
# 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
Se as credenciais da entidade de serviço expirarem, atualize usando um dos dois métodos de rotação de credenciais.
O aplicativo AAD de cluster contém um segredo do cliente com uma descrição vazia
Ao usar a rotação automatizada de credenciais da entidade de serviço, ocorre o seguinte erro:
$ 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>`.
O cluster não foi criado usando a CLI do Azure 2.24.0 ou superior. Em vez disso, use o método de rotação de credenciais da entidade de serviço do client-id e do client-secret fornecidos pelo usuário.
Comando ARO update help da CLI do Azure
Para obter mais detalhes, confira o comando ARO update help da CLI do Azure:
# Azure CLI ARO update help
az aro update -h