IBM Cloud Docs
Risoluzione degli errori relativi a permessi e credenziali

Risoluzione degli errori relativi a permessi e credenziali

Quando si cerca di apportare modifiche al cluster, come la creazione o l'eliminazione di nodi worker o altri componenti, si riceve un messaggio di errore simile a uno degli esempi seguenti.

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.

Alle credenziali dell'infrastruttura impostate per la regione e il gruppo di risorse mancano le autorizzazioni appropriate per l'infrastruttura, oppure le credenziali non vengono riconosciute.

I motivi per cui ciò può accadere sono molteplici.

  • Non si dispone delle autorizzazioni necessarie per l'infrastruttura.

  • Il gruppo di risorse e la regione non corrispondono.

    • Le credenziali e la chiave API IAM sono impostate su una regione e un gruppo di risorse. La regione viene specificata quando si esegue il comando ibmcloud oc credential set. Il gruppo di risorse applicato è il gruppo di risorse selezionato quando si esegue questo comando. Se non si punta esplicitamente a un gruppo di risorse con il comando ibmcloud target prima di eseguire ibmcloud oc credential set, è possibile che il gruppo di risorse della chiave API non sia quello previsto, con il risultato di credenziali non corrispondenti e non riconosciute.
  • Le credenziali sono state aggiunte o rimosse dal cluster.

    • Se si è creato un cluster con un account di infrastruttura IBM Cloud collegato e successivamente si sono aggiunte o rimosse le credenziali con ibmcloud oc credential set o ibmcloud oc credential unset, le credenziali potrebbero non corrispondere alle specifiche dell'account collegato. Ciò può comportare il mancato riconoscimento delle credenziali.

Il proprietario dell'account deve configurare correttamente le credenziali dell'account dell'infrastruttura. Le credenziali dipendono dal tipo di account dell'infrastruttura che stai utilizzando.

Prima di iniziare, 'Accedere al proprio account. Se applicabile, specifica il gruppo di risorse appropriato. Impostare il contesto per il cluster..

  1. Identifica quali credenziali dell'utente sono utilizzate per le autorizzazioni dell'infrastruttura della regione e del gruppo di risorse.

    1. Controlla la chiave API per una regione e un gruppo di risorse del cluster.
      ibmcloud oc api-key info --cluster <cluster_name_or_ID>
      
      Output di esempio
      Getting information about the API key owner for cluster <cluster_name>...
      OK
      Name                Email
      <user_name>         <name@email.com>
      
    2. Controlla se l'account dell'infrastruttura classica per la regione e il gruppo di risorse è impostato manualmente per utilizzare un account dell'infrastruttura IBM Cloud differente.
      ibmcloud oc credential get --region <us-south>
      
      Output di esempio se le credenziali sono impostate per l'utilizzo di un account classico differente. In questo caso, le credenziali dell'infrastruttura dell'utente vengono utilizzate per la regione e il gruppo di risorse che hai indicato come destinazione, anche se nella chiave API che hai richiamato nel passo precedente sono memorizzate le credenziali di un utente differente.
      OK
      Infrastructure credentials for user name <1234567_name@email.com> set for resource group <resource_group_name>.
      
      Output di esempio se le credenziali non sono impostate per l'utilizzo di un account classico differente. In questo caso, il proprietario della chiave API che hai richiamato nel passo precedente ha le credenziali dell'infrastruttura che sono utilizzate per la regione e il gruppo di risorse.
      FAILED
      No credentials set for resource group <resource_group_name>.: The user credentials could not be found. (E0051)
      
  2. Convalida le autorizzazioni dell'infrastruttura di cui l'utente dispone.

    1. Elenca le autorizzazioni dell'infrastruttura consigliate e obbligatorie per la regione e il gruppo di risorse.

      ibmcloud oc infra-permissions get --region <region>
      

      Per i comandi della console e della CLI per assegnare queste autorizzazioni, vedi Ruoli dell'infrastruttura classica.

    2. Assicurarsi che il proprietario delle credenziali dell'infrastruttura per la chiave API o l'account impostato manualmente abbia le autorizzazioni corrette. È possibile modificare la chiave API o impostare manualmente il proprietario delle credenziali dell'infrastruttura per la regione e il gruppo di risorse.

  3. Riprovare a eseguire l'operazione dell'infrastruttura, come l'eliminazione del cluster o del nodo worker. Se si verifica ancora l'errore relativo alle autorizzazioni o alle credenziali, consultare queste pagine aggiuntive per la risoluzione dei problemi.

    1. Se il nodo worker non viene rimosso, rivedere i campi State e Status e i problemi comuni con i nodi worker per continuare il debug.
    2. Se si impostano manualmente le credenziali e non si vedono ancora i nodi worker del cluster nell'account dell'infrastruttura, si può verificare se il cluster è orfano.
  4. Se il problema persiste, raccogliere le seguenti informazioni da sottoporre al supporto di IBM Cloud. Salvare i risultati di ciascun comando. Assicuratevi di aver selezionato il gruppo di risorse corretto con il comando ibmcloud target -g <resource_group>.

    1. Informazioni sulla chiave API.

      ibmcloud ks api-key info --cluster <cluster_name_or_id>
      
    2. Dettagli del conto.

      ibmcloud target
      
    3. Dettagli della credenziale per la regione e il gruppo di risorse previsti.

      ibmcloud oc credential get --region <region>
      
    4. Dettagli sulle autorizzazioni dell'infrastruttura.

      ibmcloud oc infra-permissions get --region <region>
      
  5. [Aprire un problema con il supporto IBM Cloud](/docs/openshift?topic=openshift-get-help. Assicuratevi di includere tutte le informazioni e gli output dei comandi raccolti nella fase precedente.

Chiave API non valida

Infrastruttura Classic

Quando si tenta di completare un'azione che richiede di specificare una chiave API, si ottiene un errore simile al seguente.

Error: SoftLayer_Exception_User_Customer_Unauthorized: Invalid API key

Inoltre, l'esecuzione del comando ibmcloud ks api-key reset non risolve il problema e l'output del comando ibmcloud oc infra-permissions get non indica alcun problema di permessi.

Le ragioni per cui questo errore può verificarsi sono molteplici.

  • L'azione che si sta tentando richiede di specificare una chiave API dell'infrastruttura classica piuttosto che una chiave API di Kubernetes. Se per la regione è impostata una chiave API dell'infrastruttura classica, questa ha la precedenza su tutte le altre credenziali.

  • La chiave API dell'infrastruttura classica specificata non esiste. Potrebbe essere stata cancellata o il proprietario della chiave API potrebbe aver lasciato l'organizzazione.

Se si conosce la chiave API dell'infrastruttura classica, specificarla. Se non si conosce la chiave API dell'infrastruttura o se si pensa che sia stata cancellata, procedere come segue.

  1. Ripristinare la chiave API dell'infrastruttura classica.

    ibmcloud oc credential set classic --infrastructure-api-key API_KEY --infrastructure-username USERNAME --region REGION [-q]
    
  2. Eseguire il comando per aggiornare le credenziali sul cluster.

    ibmcloud oc api-key reset --region REGION [-q]
    
  3. Riprovate a completare l'azione.