Resolución de errores de permisos y credenciales
Cuando intente realizar cambios en su clúster, como crear o eliminar nodos trabajadores u otros componentes, recibirá un mensaje de error similar a uno de los siguientes ejemplos.
Soluciona los errores de permisos y credenciales al acceder a tu clúster.
The infrastructure authentication credentials are not authorized for the request.
We were unable to connect to your Softlayer account.
Creating a standard cluster requires that you have either a
Pay-As-You-Go account that is linked to an IBM Cloud infrastructure
account term or that you have used the Kubernetes service
CLI to set your Infrastructure API keys.
'Item' must be ordered with permission.
The worker node instance '<ID>' can't be found. Review '<provider>' infrastructure user permissions.
The worker node instance can't be found. Review '<provider>' infrastructure user permissions.
The worker node instance can't be identified. Review '<provider>' infrastructure user permissions.
The IAM token exchange request failed with the message: <message>
IAM token exchange request failed: <message>
The cluster could not be configured with the registry. Make sure that you have the Administrator role for Container Registry.
A las credenciales de infraestructura que se establecen para la región y el grupo de recursos les faltan los permisos de infraestructura adecuados, o no se reconocen las credenciales.
Hay múltiples razones por las que esto puede ocurrir.
-
No dispone de los permisos de infraestructura necesarios.
-
El grupo de recursos y la región no coinciden.
- Las credenciales y la clave API de IAM se asignan a una región y a un grupo de recursos. La región se especifica al ejecutar el comando
ibmcloud oc credential set. El grupo de recursos aplicado es el grupo de recursos al que se dirige cuando ejecuta este comando. Si no se especifica explícitamente un grupo de recursos con elibmcloud targetantes de ejecutaribmcloud oc credential set, es posible que el grupo de recursos de la clave de API no sea el esperado, comando provocaría que las credenciales no coincidan y no sean reconocidas.
- Las credenciales y la clave API de IAM se asignan a una región y a un grupo de recursos. La región se especifica al ejecutar el comando
-
Se han añadido o eliminado credenciales del clúster.
- Si ha creado un clúster con una IBM Cloud cuenta de infraestructura vinculada y, posteriormente, ha añadido o eliminado credenciales con la
ibmcloud oc credential setoibmcloud oc credential unset, es posible que las credenciales no coincidan con las especificaciones de la cuenta vinculada. Esto puede hacer que no se reconozcan las credenciales.
- Si ha creado un clúster con una IBM Cloud cuenta de infraestructura vinculada y, posteriormente, ha añadido o eliminado credenciales con la
El propietario de la cuenta debe configurar correctamente las credenciales de la cuenta de infraestructura. Las credenciales dependen del tipo de cuenta de infraestructura que esté utilizando.
Antes de empezar, inicie una sesión en su cuenta. If applicable, target the appropriate resource group. Establezca el contexto para el clúster..
-
Identifique las credenciales de usuario que se utilizan para los permisos de la infraestructura de la región y del grupo de recursos.
- Compruebe la clave de API para una región y un grupo de recursos del clúster.
ibmcloud oc api-key info --cluster <cluster_name_or_ID> ``` Salida de ejemplo ```sh {: screen} Getting information about the API key owner for cluster <cluster_name>... OK Name Email <user_name> <name@email.com> ``` 2. Compruebe si la cuenta de la infraestructura clásica para la región y el grupo de recursos se ha establecido manualmente de modo que utilice otra cuenta de infraestructura de IBM Cloud. ```sh {: pre} ibmcloud oc credential get --region <us-south> ``` **Salida de ejemplo si las credenciales se han establecido de modo que utilicen otra cuenta clásica**. En este caso, las credenciales de infraestructura del usuario se utilizan para la región y el grupo de recursos que ha seleccionado como destino, incluso si las credenciales de un usuario diferente se almacenan en la clave de API que ha recuperado en el paso anterior. ```sh {: screen} OK Infrastructure credentials for user name <1234567_name@email.com> set for resource group <resource_group_name>. ``` **Salida de ejemplo si las credenciales no están establecidas para utilizar una cuenta clásica diferente**. En este caso, el propietario de la clave de API que ha recuperado en el paso anterior tiene las credenciales de infraestructura que se utilizan para la región y el grupo de recursos. ```sh {: screen} FAILED No credentials set for resource group <resource_group_name>.: The user credentials could not be found. (E0051) ``` -
Valide los permisos de infraestructura que tiene el usuario.
- Obtenga una lista de los permisos de infraestructura recomendados y necesarios para la región y el grupo de recursos.
ibmcloud oc infra-permissions get --region <region> ``` Para los mandatos de consola y CLI para asignar estos permisos, consulte [Roles de infraestructura clásica](/docs/openshift?topic=openshift-iam-platform-access-roles). {: tip} 2. Asegúrese de que el [propietario de credenciales de infraestructura para la clave de API o la cuenta definida manualmente tiene los permisos correctos](/docs/openshift?topic=openshift-iam-platform-access-roles). Puede cambiar la [clave de API](/docs/openshift?topic=openshift-kubernetes-service-cli#api-key-reset-cli) o [configurar manualmente](/docs/openshift?topic=openshift-kubernetes-service-cli#credential-set-classic-cli) propietario de credenciales de infraestructura para la región y el grupo de recursos. {: note} -
Vuelva a intentar realizar la operación de infraestructura, como eliminar el clúster o el nodo trabajador. Si sigue encontrándose con el error de permisos o credenciales, revise estas páginas adicionales de solución de problemas.
- Si el nodo de trabajo no se ha eliminado, revisa los campos State y Status, así como los problemas habituales relacionados con los nodos de trabajo, para continuar con la depuración.
- Si establece manualmente las credenciales y aun así no ve los nodos de trabajador del clúster en la cuenta de infraestructura, puede comprobar si el clúster está huérfano.
-
Si el problema persiste, recopile la siguiente información para enviarla a IBM Cloud. Guarde los resultados de cada comando. Asegúrese de que ha seleccionado el grupo de recursos correcto con el comando
ibmcloud target -g <resource_group>.- Información sobre la clave API.
ibmcloud ks api-key info --cluster <cluster_name_or_id> ``` 1. Datos de la cuenta. ```sh {: pre} ibmcloud target ``` 1. Detalles de las credenciales para la región y el grupo de recursos previstos. ```sh {: pre} ibmcloud oc credential get --region <region> ``` 1. Detalles de los permisos de infraestructura. ```sh {: pre} ibmcloud oc infra-permissions get --region <region> ``` -
[Abra una incidencia con IBM Cloud](/docs/openshift?topic=openshift-get-help. Asegúrese de incluir toda la información y las salidas de comandos recopiladas en el paso anterior.
Clave de API no válida
Infraestructura clásica
Cuando intentas completar una acción que requiere que especifiques una clave API, obtienes un error similar al siguiente.
Error: SoftLayer_Exception_User_Customer_Unauthorized: Invalid API key
Además, la ejecución del comando ibmcloud ks api-key reset no resuelve el problema y la salida del comando ibmcloud oc infra-permissions get no indica ningún problema con los permisos.
Existen múltiples razones por las que puede producirse este error.
-
La acción que está intentando requiere que especifique una clave de API de infraestructura clásica en lugar de una Kubernetes. Si se establece una clave de API de infraestructura clásica para la región, ésta tiene prioridad sobre todas las demás credenciales.
-
La clave API de infraestructura clásica que ha especificado no existe. Puede que se haya borrado o que el propietario de la clave API haya abandonado la organización.
Si conoce la clave API de la infraestructura clásica, especifíquela. Si no conoce la clave de API de infraestructura o cree que puede haber sido eliminada, siga estos pasos.
-
Restablecer la clave API de la infraestructura clásica.
ibmcloud oc credential set classic --infrastructure-api-key API_KEY --infrastructure-username USERNAME --region REGION [-q] -
Ejecute el comando para actualizar la credencial en el clúster.
ibmcloud oc api-key reset --region REGION [-q] -
Vuelva a intentarlo para completar la acción.