Behebung von Berechtigungs- und Anmeldungsfehlern

Wenn Sie versuchen, Änderungen an Ihrem Cluster vorzunehmen, wie z. B. das Erstellen oder Löschen von Arbeitsknoten oder anderen Komponenten, erhalten Sie eine Fehlermeldung ähnlich einem der folgenden Beispiele.

Beheben Sie Berechtigungs- und Anmeldefehler beim Zugriff auf Ihren 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.

Den Infrastruktur-Anmeldeinformationen, die für die Region und die Ressourcengruppe festgelegt sind, fehlen die entsprechenden Infrastrukturberechtigungen, oder die Anmeldeinformationen werden nicht erkannt.

Es gibt mehrere Gründe, warum dies geschehen kann.

  • Sie verfügen nicht über die erforderlichen Infrastrukturberechtigungen.

  • Die Ressourcengruppe und die Region stimmen nicht überein.

    • Berechtigungsnachweise und der IAM-API-Schlüssel werden auf eine Region und eine Ressourcengruppe festgelegt. Die Region wird angegeben, wenn Sie den Befehl ibmcloud oc credential set ausführen. Die Ressourcengruppe, auf die der Befehl angewendet wird, ist diejenige, die bei der Ausführung des Befehls ausgewählt wurde. Wenn Sie vor der Ausführung von „xml-ph-0000@deepl.internal“ nicht explizit eine Ressourcengruppe mit dem ibmcloud target Befehl nicht explizit eine Ressourcengruppe angeben, bevor Sie „ ibmcloud oc credential set “ ausführen, kann es vorkommen, dass die Ressourcengruppe des API-Schlüssels nicht der von Ihnen erwarteten entspricht, was dazu führt, dass die Anmeldedaten nicht übereinstimmen und nicht erkannt werden.
  • Berechtigungsnachweise wurden dem Cluster hinzugefügt oder aus ihm entfernt.

    • Wenn Sie einen Cluster mit einem verknüpften IBM Cloud-Infrastrukturkonto erstellt und dann später Anmeldeinformationen mit ibmcloud oc credential set oder ibmcloud oc credential unset hinzugefügt oder entfernt haben, stimmen die Anmeldeinformationen möglicherweise nicht mit den Spezifikationen für das verknüpfte Konto überein. Dies kann dazu führen, dass der Berechtigungsnachweis nicht erkannt wird.

Der Kontoeigner muss die Berechtigungsnachweise für das Infrastrukturkonto ordnungsgemäß einrichten. Die Berechtigungsnachweise richten sich nach dem Typ des von Ihnen verwendeten Infrastrukturkontos.

Bevor Sie beginnen, Melden Sie sich bei Ihrem Konto an. If applicable, target the appropriate resource group. Legen Sie den Kontext für Ihren Cluster fest..

  1. Geben Sie an, welche Benutzerberechtigungsnachweise für die Region und die Infrastrukturberechtigungen der Ressourcengruppe verwendet werden.

    1. Prüfen Sie den API-Schlüssel auf eine Region und Ressourcengruppe des Clusters.
        ibmcloud oc api-key info --cluster <cluster_name_or_ID>
        ```
        Beispielausgabe
        ```sh {: screen}
        Getting information about the API key owner for cluster <cluster_name>...
        OK
        Name                Email
        <user_name>         <name@email.com>
        ```
    2. Überprüfen Sie, ob im Konto der klassischen Infrastruktur für die Region und die Ressourcengruppe manuell angegeben wurde, dass ein anderes Konto der IBM Cloud-Infrastruktur verwendet werden soll.
    ```sh {: pre}
        ibmcloud oc credential get --region <us-south>
        ```
        **Beispielausgabe, wenn die Berechtigungsnachweise für die Verwendung eines anderen klassischen Kontos eingerichtet wurden**. In diesem Fall werden die Infrastrukturberechtigungsnachweise des Benutzers für die Region und die Ressourcengruppe verwendet, die Sie ausgewählt haben, auch wenn die Berechtigungsnachweise eines anderen Benutzers in dem API-Schlüssel gespeichert sind, den Sie im vorherigen Schritt abgerufen haben.
        ```sh {: screen}
        OK
        Infrastructure credentials for user name <1234567_name@email.com> set for resource group <resource_group_name>.
        ```
        **Beispielausgabe, wenn die Berechtigungsnachweise nicht für die Verwendung eines anderen klassischen Kontos eingerichtet wurden**. In diesem Fall verfügt der Eigner des im vorherigen Schritt abgerufenen API-Schlüssels über die Infrastrukturberechtigungsnachweise, die für die Region und die Ressourcengruppe verwendet werden.
        ```sh {: screen}
        FAILED
        No credentials set for resource group <resource_group_name>.: The user credentials could not be found. (E0051)
        ```
    
  2. Prüfen Sie die Infrastrukturberechtigungen des Benutzers.

    1. Listen Sie die vorgeschlagenen und erforderlichen Infrastrukturberechtigungen für die Region und die Ressourcengruppe auf.
        ibmcloud oc infra-permissions get --region <region>
        ```
        Informationen zu den Konsolenbefehlen und CLI-Befehlen zum Zuweisen dieser Berechtigungen finden Sie unter [Rollen für klassische Infrastruktur](/docs/openshift?topic=openshift-iam-platform-access-roles).
        {: tip}
    
    2. Stellen Sie sicher, dass der [Eigner der Infrastrukturberechtigungsnachweise für den API-Schlüssel oder das manuell eingestellte Konto die richtigen Berechtigungen hat](/docs/openshift?topic=openshift-iam-platform-access-roles).
            Sie können den [API-Schlüssel](/docs/openshift?topic=openshift-kubernetes-service-cli#api-key-reset-cli) ändern oder [manuell festlegen](/docs/openshift?topic=openshift-kubernetes-service-cli#credential-set-classic-cli) Eigentümer der Infrastrukturanmeldeinformationen für die Region und Ressourcengruppe.
    {: note}
    
    
  3. Versuchen Sie erneut, den Infrastrukturvorgang durchzuführen, z. B. das Löschen des Clusters oder des Arbeitsknotens. Wenn der Fehler mit den Berechtigungen oder Anmeldeinformationen weiterhin auftritt, lesen Sie diese zusätzlichen Seiten zur Fehlerbehebung.

    1. Wenn der Worker-Knoten nicht entfernt wurde, überprüfen Sie die Felder State und Status sowie die häufig auftretenden Probleme mit Worker-Knoten, um die Fehlersuche fortzusetzen.
    2. Wenn Sie Berechtigungsnachweise manuell festgelegt haben und die Workerknoten des Clusters in Ihrem Infrastrukturkonto immer noch nicht angezeigt werden, können Sie prüfen, ob der Cluster verwaist ist.
  4. Wenn das Problem weiterhin besteht, sammeln Sie die folgenden Informationen und senden Sie sie an den IBM Cloud-Support. Speichern Sie die Ausgaben der einzelnen Befehle. Vergewissern Sie sich, dass Sie mit dem Befehl ibmcloud target -g <resource_group> die richtige Ressourcengruppe ausgewählt haben.

    1. API-Schlüssel-Informationen.
        ibmcloud ks api-key info --cluster <cluster_name_or_id>
        ```
    1. Angaben zum Konto.
    
    ```sh {: pre}
        ibmcloud target
        ```
    1. Angaben zum Berechtigungsnachweis für die erwartete Region und Ressourcengruppe.
    
    ```sh {: pre}
        ibmcloud oc credential get --region <region>
        ```
    1. Details zur Infrastrukturgenehmigung.
    
    ```sh {: pre}
        ibmcloud oc infra-permissions get --region <region>
        ```
    
  5. [Eröffnen Sie ein Problem mit IBM Cloud Support](/docs/openshift?topic=openshift-get-help. Achten Sie darauf, dass Sie alle im vorherigen Schritt gesammelten Informationen und Befehlsausgaben einbeziehen.

Ungültiger API-Schlüssel

Klassische Infrastruktur

Wenn Sie versuchen, eine Aktion abzuschließen, für die Sie einen API-Schlüssel angeben müssen, erhalten Sie eine Fehlermeldung ähnlich der folgenden.

Error: SoftLayer_Exception_User_Customer_Unauthorized: Invalid API key

Auch die Ausführung des Befehls ibmcloud ks api-key reset löst das Problem nicht, und die Ausgabe des Befehls ibmcloud oc infra-permissions get zeigt keine Probleme mit den Berechtigungen an.

Es gibt mehrere Gründe, warum dieser Fehler auftreten kann.

  • Die Aktion, die Sie versuchen, erfordert die Angabe eines klassischen Infrastruktur-API-Schlüssels und nicht eines Kubernetes-API-Schlüssels. Wenn für die Region ein klassischer Infrastruktur-API-Schlüssel festgelegt ist, hat dieser Vorrang vor allen anderen Berechtigungsnachweisen.

  • Der von Ihnen angegebene API-Schlüssel für die klassische Infrastruktur ist nicht vorhanden. Möglicherweise wurde er gelöscht, oder der Besitzer des API-Schlüssels hat das Unternehmen verlassen.

Wenn Sie den API-Schlüssel der klassischen Infrastruktur kennen, geben Sie ihn an. Wenn Sie den Infrastruktur-API-Schlüssel nicht kennen oder glauben, dass er gelöscht wurde, gehen Sie folgendermaßen vor.

  1. Zurücksetzen des klassischen Infrastruktur-API-Schlüssels.

    ibmcloud oc credential set classic --infrastructure-api-key API_KEY --infrastructure-username USERNAME --region REGION [-q]
    
  2. Führen Sie den Befehl zum Aktualisieren der Anmeldeinformationen auf dem Cluster aus.

    ibmcloud oc api-key reset --region REGION [-q]
    
  3. Versuchen Sie erneut, die Aktion abzuschließen.