Zugriff für Servicebindungen konfigurieren

Die Dienstverknüpfungen in Code Engine verwenden eine Dienst-ID, um auf die Dienste von IBM Cloud zuzugreifen. Eine Dienst-ID enthält die Anmeldeinformationen für die Kommunikation mit einer Dienstinstanz im Namen Ihres Code Engine Projekts. Bevor Sie eine Dienstinstanz an einen Code Engine Workload binden können, müssen Sie den Zugriff für Bindungen konfigurieren, je nachdem, ob Sie möchten, dass Code Engine die Dienst-ID automatisch für Sie erstellt und verwaltet, oder ob Sie eine von Ihnen verwaltete Dienst-ID verwenden möchten.

Möchten Sie Ihr Projekt so konfigurieren, dass alle Benutzer des Projekts Servicebindungen erstellen oder löschen können? Mit ausreichenden Berechtigungen können Sie die Projektintegrationsseiten in der Konsole verwenden, um Servicebindungsoperationen von einer einzelnen Seite aus zu konfigurieren. Wenn Sie nicht über ausreichende Berechtigungen zum Ausführen dieser Aktionen verfügen, können Sie diese Seite verwenden, um die erforderlichen Berechtigungen zu verstehen. Siehe Projektweite Einstellungen konfigurieren.

Bevor Sie Ihre App, Ihren Job oder Ihre Funktion an eine bestimmte IBM Cloud-Serviceinstanz binden können, müssen Sie festlegen, ob Sie Ihre eigene Service-ID erstellen und verwalten möchten oder ob Code Engine die Service-ID automatisch erstellen und verwalten soll. Weisen Sie auf der Basis Ihrer Auswahl die richtigen Zugriffsrichtlinien zu. Code Engine verwendet eine Service-ID pro Projekt für die Arbeit mit Servicebindungen.

Verwendung der standardmäßigen Zugriffsrichtlinien für Service-Bindungen

Code Engine erstellt standardmäßig automatisch eine Service-ID für den Zugriff auf alle Services in der Ressourcengruppe des Projekts Code Engine, wenn Ihr Konto, das mit Ihrem Projekt verwendet wird, über ausreichende Berechtigungen verfügt. Die Service-ID wird während der ersten Servicebindungsoperation erstellt.

Wenn Sie Standardzugriffsrichtlinien für Servicebindungen verwenden wollen, wenn sich Ihr Projekt für Code Engine in derselben Ressourcengruppe wie die Serviceinstanz befindet, an die Sie binden möchten, konfigurieren Sie den Zugriff für Code Engine, um die Service-ID für Servicebindungen automatisch zu erstellen und zu verwalten.

Zugriff für Code Engine für automatische Erstellung und Verwaltung der Service-ID für Servicebindungen konfigurieren

Wenn sich Ihre Serviceinstanz in derselben Ressourcengruppe wie Ihr Projekt Code Engine befindet und Sie möchten, dass Code Engine automatisch die Service-ID für die Servicebindung für Sie erstellt und verwaltet, muss das IBM Cloud-Konto, das mit Ihrem Code Engine-Projekt verwendet wird, über Writer-Servicezugriff und Operator-Plattformzugriff verfügen. mindestens.

Wenn diese Berechtigungen für Ihr Konto festgelegt sind, überprüft Code Engine beim Erstellen einer Servicebindung eine Service-ID mit Operator und Manager-Zugriff für alle Services in der Ressourcengruppe des Projekts Code Engine und richtet sie automatisch ein. Code Engine verwendet diese Service-ID für den Zugriff auf IBM Cloud-Services mit Servicebindungen.

Wenn Code Engine die Service-ID erstellt, die für Servicebindungen für Ihr Projekt verwendet wird, wird diese Service-ID mit nachfolgenden Servicebindungen innerhalb desselben Projekts wiederverwendet. wenn Sie nicht den CLI-Befehl project update ausführen, um Ihr Projekt zum Binden von Services in einer anderen Ressourcengruppe zu konfigurieren oder den CLI-Befehl project update ausführen, um eine angepasste -Service-ID mit Zugriffsberechtigungen für Code Engine-Servicebindungen zu verwenden.

Angenommen, Sie möchten, dass Code Engine automatisch die Service-ID für Servicebindungen für eine IBM Cloudant-Serviceinstanz erstellt und verwaltet. Nehmen Sie außerdem an, dass sich das my-user-Konto, das mit Ihrem Code Engine-Projekt verwendet wird, und die IBM Cloudant-Serviceinstanz in derselben Ressourcengruppe befinden.

Die folgenden Schritte beschreiben eine Möglichkeit, die erforderlichen Zugriffsberechtigungen so einzurichten, dass Code Engine die Service-ID für Servicebindungen für my-user automatisch erstellen und verwalten kann. Der Kontoeigner für die Serviceinstanz führt die folgenden Schritte aus, um Berechtigungen für my-user zuzuweisen:

  1. Erstellen Sie eine IAM-Ressourcengruppe für Benutzer, die Code Engine-Servicebindungen erstellen.

    1. Starten Sie Access(IAM)Overview.
    2. Wählen Sie Verwalten > Konto > Ressourcengruppen > Ressourcengruppe erstellen aus.
    3. Erstellen Sie eine Ressourcengruppe, z. B. CodeEngine_servicebindings_resourcegroup.
  2. Erstellen Sie die Serviceinstanzen, an die Sie binden möchten, in derselben Ressourcengruppe. Für dieses Beispiel erstellen Sie eine IBM Cloudant-Serviceinstanz in der Ressourcengruppe CodeEngine_servicebindings_resource group.

  3. Erstellen Sie eine IAM-Zugriffsgruppe für Benutzer, die Code Engine-Servicebindungen erstellen.

    1. Starten Sie Access(IAM)Overview.

    2. Wählen Sie Verwalten > Zugriff (IAM) > Zugriffsgruppen.

    3. Erstellen Sie eine Gruppe, z. B. CodeEngine_servicebindings_accessgroup.

    4. Klicken Sie innerhalb dieser neuen Zugriffsgruppe auf die Registerkarte Zugriff und weisen Sie der Zugriffsgruppe die folgenden beiden Zugriffsrichtlinien zu. Für die erste Zugriffsrichtlinie

      • Wählen Sie unter „Service“ die Option „ All Identity and Access enabled services “ aus.
      • Wählen Sie unter "Ressourcen" die Ressourcengruppe aus, die Sie im vorherigen Schritt erstellt haben, z. B. CodeEngine_servicebindings_resourcegroup.
      • Wählen Sie als Ressourcengruppenzugriff Viewer aus.
      • Wählen Sie für Rollen und Aktionen den Plattformzugriff von Administrator aus.
      • Klicken Sie auf Hinzufügen, um die Zugriffsrichtlinie zu dieser Zugriffsgruppe hinzuzufügen.
    5. Ordnen Sie die zweite Zugriffsrichtlinie für diese Zugriffsgruppe zu.

      • Wählen Sie unter „Service“ die Option „ Code Engine “ aus.
      • Wählen Sie unter "Ressourcen" die Ressourcengruppe aus, die Sie im vorherigen Schritt erstellt haben, z. B. CodeEngine_servicebindings_resourcegroup.
      • Wählen Sie als Ressourcengruppenzugriff Viewer aus.
      • Wählen Sie für Rollen und Aktionen den Servicezugriff von Writer und den Plattformzugriff von Operator aus.
      • Klicken Sie auf Hinzufügen, um die Zugriffsrichtlinie zu dieser Zugriffsgruppe hinzuzufügen.
    6. Klicken Sie auf Zuweisen, um die Zugriffsrichtlinien dieser Zugriffsgruppe zuzuweisen.

  4. Fügen Sie den Benutzer my-user zu dieser Zugriffsgruppe hinzu.

Jetzt können Sie Servicebindungen in Code Engine erstellen, wobei Code Engine automatisch eine Service-ID mit ausreichenden Berechtigungen zum Erstellen von Serviceberechtigungsnachweisen für Ihre angegebenen Serviceinstanzen erstellt. Siehe Serviceinstanz an eine App-, Job-oder Funktionsworkload binden.

Projekt zum Binden von Services in einer anderen Ressourcengruppe konfigurieren

Code Engine erstellt standardmäßig automatisch eine Service-ID für den Zugriff auf alle Services in der Ressourcengruppe des Projekts Code Engine, wenn Ihr Konto, das mit Ihrem Projekt verwendet wird, über ausreichende Berechtigungen verfügt. Die Service-ID wird während der ersten Servicebindungsoperation erstellt.

Wenn sich die IBM Cloud-Serviceinstanz, die Sie an Ihr Code Engine-Projekt binden möchten, jedoch in einer anderen Ressourcengruppe als die Ressourcengruppe des Code Engine-Projekts für Ihre Workload befindet und Sie möchten, dass Code Engine automatisch die Service-ID für die Servicebindung für Sie erstellt und verwaltet. müssen Sie die folgenden Aktionen ausführen, bevor Sie die Servicebindung erstellen.

Beispiel: Wenn sich Ihr Projekt Code Engine in der Ressourcengruppe Default befindet und Sie an eine Serviceinstanz binden möchten, die in der Ressourcengruppe dev vorhanden ist, müssen Sie das Projekt Code Engine so aktualisieren, dass Code Engine auf Serviceinstanzen in anderen Ressourcengruppen zugreifen kann.

Projekt für den Zugriff auf Serviceinstanzen in anderen Ressourcengruppen aktualisieren

Wenn sich die Ressourcen, an die Sie binden möchten, in einer anderen Ressourcengruppe befinden, konfigurieren Sie Ihr Code Engine-Projekt mit der CLI, damit es auf Ressourcen in der anderen Ressourcengruppe zugreifen kann. Verwenden Sie den ibmcloud ce project update Befehl und geben Sie die Option --binding-resource-group an, um ein Code Engine-Projekt für den Servicebindungszugriff für alle Serviceinstanzen in einer Ressourcengruppe zu konfigurieren. Dieser Befehl teilt Ihrem Code Engine-Projekt mit, an welche Ressourcengruppe es gebunden werden kann. Sie können Ihr Projekt nur über die Befehlszeilenschnittstelle aktualisieren, um Services an eine andere Ressourcengruppe zu binden.

Der project update Befehl funktioniert innerhalb des Projekts, das als aktueller Kontext ausgewählt ist. Bevor Sie den Befehl project update aufrufen, vergewissern Sie sich, dass Sie sich in dem gewünschten Projekt befinden. Verwenden Sie den Befehl ibmcloud ce project current, um Details des momentan als Ziel ausgewählten Projekts anzuzeigen. Verwenden Sie bei Bedarf den ibmcloud ce project select Befehl, um Ihr Projekt als aktuellen Kontext auszuwählen.

  • Gehen Sie wie folgt vor, um Servicebindungszugriffsberechtigungen für alle Serviceinstanzen in der Standardressourcengruppe zu konfigurieren:

    ibmcloud ce project update --binding-resource-group Default
    
  • Gehen Sie wie folgt vor, um den Zugriff auf Servicebindungen für alle Serviceinstanzen in einer Ressourcengruppe durch Angabe der ID der Ressourcengruppe zu konfigurieren:

    ibmcloud ce project update --binding-resource-group-id abcdabcdabcdabcdabcdabcdabcdabcd
    

    Führen Sie ibmcloud resource groups aus, um eine Liste Ihrer Ressourcengruppen einschließlich der Ressourcengruppen-IDs abzurufen.

  • So konfigurieren Sie den Zugriff auf die Dienstbindung für alle Dienstinstanzen in allen Ressourcengruppen:

    ibmcloud ce project update --binding-resource-group "*"
    

Wenn Sie den project update Befehl ausführen, wird eine Dienst-ID für das Projekt erstellt, die dazu dient, das aktuelle Projekt für Dienstbindungen zu konfigurieren. Wenn Sie nicht berechtigt sind, diese Service-ID zu erstellen, erhalten Sie die Fehlernachricht, dass Ihr Projekt nicht bereit ist, mit Servicebindungen zu arbeiten. Sprechen Sie mit Ihrem Kontoadministrator über Ihre Zugriffsrichtlinien oder bitten Sie den Administrator, den Zugriff für Code Engine, die Service-ID für Servicebindungen automatisch zu erstellen und zu verwalten.

Angepasste Service-ID für Servicebindungen verwenden

Wenn Sie mehr Kontrolle über Zugriffsrichtlinien oder Ressourcengruppen wünschen, können Sie eine angepasste Service-ID für Ihre Serviceinstanz erstellen.

Ihre Organisation kann sich für die Verwendung einer angepassten Service-ID für den Zugriff auf eine bestimmte Serviceinstanz entscheiden, wenn der Kontoeigner keinen Administrator-Zugriff für einen Benutzer auf die Services mit aktiviertem Identity and Access Management in einer Ressourcengruppe erteilen möchte, die erforderlich ist, damit Code Engine die Service-ID für Servicebindungen automatisch erstellen und verwalten kann. Der Kontoeigner kann den Benutzerzugriff auf einen bestimmten Servicetyp oder eine bestimmte Serviceinstanz festlegen. In diesen Fällen stellt eine angepasste Service-ID dieses Steuerelement bereit.

Gehen Sie wie folgt vor, um eine angepasste Service-ID für Servicebindungen zu verwenden:

Angepasste Service-ID mit Zugriffsberechtigungen für Code Engine-Servicebindungen erstellen

Wenn Sie eine angepasste Service-ID verwenden, müssen Sie der angepassten Service-ID Operator Plattformzugriff erteilen, damit diese Service-ID die Serviceberechtigungsnachweise für Servicebindungen erstellen kann.

Angenommen, Sie möchten eine Servicebindung erstellen, um eine Code Engine-Workload an eine IBM Cloudant-Serviceinstanz zu binden. Sie möchten dem Benutzer jedoch keinen Administrator-Zugriff für alle Services mit aktiviertem Identity and Access Management in einer Ressourcengruppe erteilen. Sie möchten dem Benutzer jedoch Zugriff auf eine bestimmte Instanz von IBM Cloudanterteilen.

Die folgenden Schritte beschreiben eine Möglichkeit zum Einrichten einer angepassten Service-ID mit den erforderlichen Zugriffsberechtigungen, damit Code Engine Servicebindungen für my-user erstellen kann. Der Kontoeigner der Serviceinstanz führt die folgenden Schritte aus, um eine angepasste Service-ID zu erstellen.

  1. Erstellen Sie eine IAM-Ressourcengruppe für Benutzer, die Code Engine-Servicebindungen erstellen.

    1. Starten Sie Access(IAM)Overview.
    2. Wählen Sie Verwalten > Konto > Ressourcengruppen > Ressourcengruppe erstellen aus.
    3. Erstellen Sie eine Ressourcengruppe, z. B. CodeEngine_servicebindings_resourcegroup.
  2. Erstellen Sie die Serviceinstanzen, an die Sie binden möchten, in derselben Ressourcengruppe. Für dieses Beispiel erstellen Sie eine IBM Cloudant-Serviceinstanz in der Ressourcengruppe CodeEngine_servicebindings_resource group.

  3. Erstellen Sie eine IAM-Zugriffsgruppe für Benutzer, die Code Engine-Servicebindungen erstellen.

    1. Starten Sie Access(IAM)Overview.
    2. Wählen Sie Verwalten > Zugriff (IAM) > Zugriffsgruppen.
    3. Erstellen Sie eine Gruppe, z. B. CodeEngine_servicebindings_accessgroup.
    4. Klicken Sie in dieser neuen Zugriffsgruppe auf die Registerkarte Zugriff und weisen Sie die folgende Zugriffsrichtlinie für den Service Code Engine zu.
      • Wählen Sie als Service Code Engine aus.
      • Wählen Sie unter "Ressourcen" die Ressourcengruppe aus, die Sie im vorherigen Schritt erstellt haben, z. B. CodeEngine_servicebindings_resourcegroup.
      • Wählen Sie als Ressourcengruppenzugriff Viewer aus.
      • Wählen Sie für Rollen und Aktionen den Servicezugriff von Writer und den Plattformzugriff von Operator aus.
      • Klicken Sie auf Hinzufügen, um die Zugriffsrichtlinie zu dieser Zugriffsgruppe hinzuzufügen.
    5. Klicken Sie auf Zuweisen, um die Zugriffsrichtlinien dieser Zugriffsgruppe zuzuweisen.
    6. Erstellen Sie die Serviceinstanzen, an die Sie binden möchten, in derselben Ressourcengruppe. Für dieses Beispiel erstellen Sie eine IBM Cloudant-Serviceinstanz in der Ressourcengruppe CodeEngine_servicebindings_resource group.
  4. Fügen Sie den Benutzer my-user zu dieser Zugriffsgruppe hinzu.

  5. Erstellen Sie eine Service-ID für die Serviceinstanz, an die Sie binden möchten.

    1. Starten Sie Access(IAM)Overview.
    2. Wählen Sie Verwalten > Zugriff (IAM) > Service-IDs aus.
    3. Erstellen Sie eine Service-ID, z. B. CodeEngine_servicebindings_serviceid.
    4. Klicken Sie in dieser neuen Service-ID auf Gruppe zuordnen. Wählen Sie auf der Seite "Zugriff zuweisen" Zugriffsrichtlinie aus. Wählen Sie nicht Zugriffsgruppen aus. Weisen Sie die folgende Zugriffsrichtlinie zu:
      • Wählen Sie für den Service die Serviceinstanz aus, an die Sie eine Bindung herstellen möchten, z. B. IBM Cloudant-Serviceinstanz.
      • Wählen Sie für Ressourcen die Ressourcengruppe aus, die Sie für Benutzer erstellt haben, die Servicebindungen für diesen Service erstellen können.
      • Wählen Sie als Ressourcengruppenzugriff Viewer aus.
      • Wählen Sie für Rollen und Aktionen den Servicezugriff von Manager und den Plattformzugriff von Operator aus.
      • Klicken Sie auf Hinzufügen, um die Zugriffsrichtlinie dieser Service-ID hinzuzufügen.
    5. Klicken Sie auf Zuweisen, um die Zugriffsrichtlinien dieser Service-ID zuzuweisen.

Da Sie nun eine angepasste Service-ID für Servicebindungen haben, müssen Sie Ihr Code Engine-Projekt für die Verwendung der angepassten Service-ID konfigurieren.

Projekt für die Verwendung einer angepassten Service-ID konfigurieren

Verwenden Sie den CLI-Befehl ibmcloud ce project update und geben Sie die Option --binding-service-id an, um ein Code Engine-Projekt für die Servicebindung für die Verwendung einer von Ihnen verwalteten angepassten Service-ID zu konfigurieren. Sie können Ihr Projekt nur mit der Befehlszeilenschnittstelle für die Verwendung einer angepassten Service-ID aktualisieren.

Der project update Befehl funktioniert innerhalb des Projekts, das als aktueller Kontext ausgewählt ist. Bevor Sie den Befehl project update aufrufen, vergewissern Sie sich, dass Sie sich in dem gewünschten Projekt befinden. Verwenden Sie den Befehl ibmcloud ce project current, um Details des momentan als Ziel ausgewählten Projekts anzuzeigen. Verwenden Sie bei Bedarf den ibmcloud ce project select Befehl, um Ihr Projekt als aktuellen Kontext auszuwählen.

  1. Um die ID Ihres benutzerdefinierten Dienstes zu ermitteln, klicken Sie auf der Seite „Dienst-ID“ in der Konsole auf „Details“ oder führen Sie den CLI-Befehl „ ibmcloud iam service-ids “ aus.

  2. Führen Sie den Befehl ibmcloud ce project update aus. Wenn die ID Ihres Dienstes beispielsweise ServiceId-12a3456b-c78d-901e-f2a3b4cabcde lautet:

    ibmcloud ce project update --binding-service-id ServiceId-12a3456b-c78d-901e-f2a3b4cabcde
    

Wenn Sie den Befehl project update --binding-service-id ausführen, ersetzt Code Engine jede vorhandene Service-ID und verwendet diese Service-ID für Servicebindungen.

Nächste Schritte

Nachdem der Zugriff für Servicebindungen konfiguriert ist, können Sie eine Serviceinstanz an eine App, einen Job oder eine Funktionsworkload binden.