Girar credenciais da entidade de serviço para seu cluster do Azure Red Hat OpenShift (ARO)
O artigo fornece os detalhes necessários para alternar as credenciais da entidade de serviço nos clusters do Azure Red Hat OpenShift (ARO).
Antes de começar
O artigo pressupõe que existe um cluster ARO existente com as atualizações mais recentes aplicadas.
Os requisitos mínimos da CLI do Azure para girar as credenciais da entidade de serviço em um cluster ARO é 2.24.0.
Para verificar a versão da CLI do Azure, execute:
# 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 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 2 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 identificação do cliente e do serviço secreto do cliente fornecida pelo usuário
Rotação automatizada de credenciais da entidade de serviço
Importante
A rotação automatizada de credenciais da entidade de serviço requer que o cluster 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 verificará se a entidade de serviço existe e alternará ou criará uma nova entidade de serviço.
Gire 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 identificação do cliente e do serviço secreto do cliente fornecida pelo usuário
Gire manualmente as credenciais da entidade de serviço com o ID do cliente fornecido pelo usuário e o segredo do cliente com as seguintes instruções:
Recupere o clientId da entidade de serviço (--client-id
) e defina-o como SP_ID
variável de ambiente.
# 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 SP_ID
variável acima. Armazene o novo segredo seguro como SP_SECRET
variável de ambiente.
# Generate a new secure secret for the service principal
SP_SECRET=$(az ad sp credential reset --id $SP_ID --query password -o tsv)
Gire 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
Resolver problemas
Data de expiração do principal de serviço
As credenciais da entidade de serviço têm uma data de expiração definida de um ano e devem ser alternadas dentro desse determinado período.
Se a data de expiração tiver passado, os seguintes erros são possíveis:
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 expiração 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 tiverem expirado, 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 de identificação do cliente e do serviço secreto do cliente fornecido pelo usuário.
Ajuda de atualização do Azure CLI ARO
Para obter mais detalhes, consulte o comando de ajuda de atualização do Azure CLI ARO:
# Azure CLI ARO update help
az aro update -h