Resolução de erros de permissão e credenciais
Ao tentar fazer alterações em seu cluster, como criar ou excluir nós de trabalho ou outros componentes, você recebe uma mensagem de erro semelhante a um dos exemplos a seguir.
Resolva erros de permissão e credenciais ao acessar seu cluster.
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.
As credenciais de infraestrutura definidas para a região e o grupo de recursos não têm as devidas permissões de infraestrutura, ou as credenciais não são reconhecidas.
Há vários motivos pelos quais isso pode ocorrer.
-
Você não possui as permissões de infraestrutura necessárias.
-
O grupo de recursos e a região são incompatíveis.
- As credenciais e a chave de API do IAM são definidas para uma região e um grupo de recursos. A região é especificada quando você executa o comando
ibmcloud oc credential set. O grupo de recursos aplicado é o grupo de recursos que estiver direcionado quando você executar esse comando. Se você não especificar explicitamente um grupo de recursos com oibmcloud targetcomando antes de executaribmcloud oc credential set``, é possível que o grupo de recursos da chave da API não seja o esperado, resultando em credenciais incompatíveis que não serão reconhecidas.
- As credenciais e a chave de API do IAM são definidas para uma região e um grupo de recursos. A região é especificada quando você executa o comando
-
As credenciais foram adicionadas ou removidas do cluster.
- Se você criou um cluster com uma conta de infraestrutura IBM Cloud vinculada e, posteriormente, adicionou ou removeu credenciais com
ibmcloud oc credential setouibmcloud oc credential unset, as credenciais podem não corresponder às especificações da conta vinculada. Isso pode fazer com que as credenciais não sejam reconhecidas.
- Se você criou um cluster com uma conta de infraestrutura IBM Cloud vinculada e, posteriormente, adicionou ou removeu credenciais com
O proprietário da conta deve configurar as credenciais de conta de infraestrutura corretamente. As credenciais dependem do tipo de conta de infraestrutura que você está usando.
Antes de iniciar, efetue login na conta. If applicable, target the appropriate resource group. Configure o contexto para o seu cluster..
-
Identifique quais credenciais do usuário são usadas para as permissões de infraestrutura da região e do grupo de recursos.
- Verifique a chave de API para uma região e um grupo de recursos do cluster.
ibmcloud oc api-key info --cluster <cluster_name_or_ID> ``` Exemplo de saída ```sh {: screen} Getting information about the API key owner for cluster <cluster_name>... OK Name Email <user_name> <name@email.com> ``` 2. Verifique se a conta de infraestrutura clássica para a região e o grupo de recursos é configurada manualmente para usar uma conta de infraestrutura da IBM Cloud diferente. ```sh {: pre} ibmcloud oc credential get --region <us-south> ``` **Saída de exemplo se as credenciais forem configuradas para usar uma conta clássica diferente**. Nesse caso, as credenciais de infraestrutura do usuário serão usadas para a região e o grupo de recursos que você destinou, mesmo se as credenciais de um usuário diferente forem armazenadas na chave de API recuperada na etapa anterior. ```sh {: screen} OK Infrastructure credentials for user name <1234567_name@email.com> set for resource group <resource_group_name>. ``` **Saída de exemplo se as credenciais não forem configuradas para usar uma conta clássica diferente**. Nesse caso, o proprietário da chave de API que você recuperou na etapa anterior tem as credenciais de infraestrutura que são usadas para a região e o grupo de recursos. ```sh {: screen} FAILED No credentials set for resource group <resource_group_name>.: The user credentials could not be found. (E0051) ``` -
Valide as permissões de infraestrutura que o usuário tem.
- Liste as permissões de infraestrutura sugeridas e necessárias para a região e o grupo de recursos.
ibmcloud oc infra-permissions get --region <region> ``` Para obter os comandos do console e da CLI para designar essas permissões, consulte [Funções de infraestrutura clássica](/docs/openshift?topic=openshift-iam-platform-access-roles). {: tip} 2. Certifique-se de que o [proprietário de credencias de infraestrutura para a chave de API ou a conta configurada manualmente tenham as permissões corretas](/docs/openshift?topic=openshift-iam-platform-access-roles). Você pode alterar a [chave API](/docs/openshift?topic=openshift-kubernetes-service-cli#api-key-reset-cli) ou [configurar manualmente](/docs/openshift?topic=openshift-kubernetes-service-cli#credential-set-classic-cli) o proprietário das credenciais de infraestrutura para a região e o grupo de recursos. {: note} -
Tente executar novamente a operação de infraestrutura, como excluir o cluster ou o nó de trabalho. Se você ainda estiver enfrentando o erro de permissões ou credenciais, consulte estas páginas adicionais de solução de problemas.
- Se o nó de trabalho não for removido, verifique os campos “State” e “Status” e os problemas comuns relacionados aos nós de trabalho para continuar a depuração.
- Se configurar manualmente as credenciais e ainda não puder ver os nós do trabalhador do cluster na conta de infraestrutura, você poderá verificar se o cluster fica órfão.
-
Se o problema persistir, reúna as seguintes informações para enviar ao suporte do IBM Cloud. Salve as saídas de cada comando. Certifique-se de que você tenha o grupo de recursos correto direcionado com o comando
ibmcloud target -g <resource_group>.- Informações da chave da API.
ibmcloud ks api-key info --cluster <cluster_name_or_id> ``` 1. Detalhes da conta. ```sh {: pre} ibmcloud target ``` 1. Detalhes da credencial para a região e o grupo de recursos esperados. ```sh {: pre} ibmcloud oc credential get --region <region> ``` 1. Detalhes das permissões de infraestrutura. ```sh {: pre} ibmcloud oc infra-permissions get --region <region> ``` -
[Abrir um problema com o suporte da IBM Cloud](/docs/openshift?topic=openshift-get-help. Não se esqueça de incluir todas as informações e saídas de comando coletadas na etapa anterior.
Chave de API inválida
Infraestrutura clássica
Ao tentar concluir uma ação que exige a especificação de uma chave de API, você recebe um erro semelhante ao seguinte.
Error: SoftLayer_Exception_User_Customer_Unauthorized: Invalid API key
Além disso, a execução do comando ibmcloud ks api-key reset não resolve o problema e a saída do comando ibmcloud oc infra-permissions get não indica nenhum problema com as permissões.
Há vários motivos pelos quais esse erro pode ocorrer.
-
A ação que você está tentando realizar exige que você especifique uma chave de API de infraestrutura clássica em vez de uma chave de API do Kubernetes. Se uma chave de API de infraestrutura clássica for definida para a região, ela terá precedência sobre todas as outras credenciais.
-
A chave de API de infraestrutura clássica que você especificou não existe. Ela pode ter sido excluída ou o proprietário da chave de API pode ter deixado a organização.
Se você souber a chave da API da infraestrutura clássica, especifique-a. Se você não souber a chave da API de infraestrutura ou achar que ela pode ter sido excluída, siga estas etapas.
-
Redefina a chave da API da infraestrutura clássica.
ibmcloud oc credential set classic --infrastructure-api-key API_KEY --infrastructure-username USERNAME --region REGION [-q] -
Execute o comando para atualizar a credencial no cluster.
ibmcloud oc api-key reset --region REGION [-q] -
Tente novamente para concluir a ação.