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.
-
Wenn Code Engine die Service-ID automatisch für Sie erstellen und verwalten soll, konfigurieren Sie Standardzugriffsrichtlinien für Servicebindungen. Stellen Sie sicher, dass dem IBM Cloud-Konto, das mit Ihrem Code Engine-Projekt verwendet wird, ordnungsgemäße Zugriffsrichtlinien zugeordnet sind.
- Wenn sich Ihr Projekt Code Engine in derselben Ressourcengruppe wie die Serviceinstanz befindet, an die Sie binden möchten, müssen Sie Standardzugriffsrichtlinien für Servicebindungen konfigurieren.
- Wenn sich Ihr Projekt Code Engine in einer anderen Ressourcengruppe als die Serviceinstanz befindet, an die Sie eine Bindung herstellen wollen, müssen Sie Standardzugriffsrichtlinien für Servicebindungen für Code Engine konfigurieren, um die Service-ID für Servicebindungen automatisch erstellen und verwalten zu können, und Sie müssen Ihr Projekt für das Binden von Services in einer anderen Ressourcengruppe konfigurieren.
-
Wenn Sie die Zugriffsrichtlinien besser steuern möchten, können Sie eine angepasste Service-ID für Servicebindungen verwenden, die in Ihrer Serviceinstanz konfiguriert ist. Weisen Sie in diesem Fall der angepassten Service-ID Zugriffsrichtlinien zu. Sie müssen Ihr Projekt für die Verwendung der angepassten Service-ID konfigurieren.
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:
-
Erstellen Sie eine IAM-Ressourcengruppe für Benutzer, die Code Engine-Servicebindungen erstellen.
- Starten Sie Access(IAM)Overview.
- Wählen Sie Verwalten > Konto > Ressourcengruppen > Ressourcengruppe erstellen aus.
- Erstellen Sie eine Ressourcengruppe, z. B.
CodeEngine_servicebindings_resourcegroup.
-
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. -
Erstellen Sie eine IAM-Zugriffsgruppe für Benutzer, die Code Engine-Servicebindungen erstellen.
-
Starten Sie Access(IAM)Overview.
-
Wählen Sie Verwalten > Zugriff (IAM) > Zugriffsgruppen.
-
Erstellen Sie eine Gruppe, z. B.
CodeEngine_servicebindings_accessgroup. -
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
Vieweraus. - Wählen Sie für Rollen und Aktionen den Plattformzugriff von
Administratoraus. - Klicken Sie auf Hinzufügen, um die Zugriffsrichtlinie zu dieser Zugriffsgruppe hinzuzufügen.
- Wählen Sie unter „Service“ die Option „
-
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
Vieweraus. - Wählen Sie für Rollen und Aktionen den Servicezugriff von
Writerund den Plattformzugriff vonOperatoraus. - Klicken Sie auf Hinzufügen, um die Zugriffsrichtlinie zu dieser Zugriffsgruppe hinzuzufügen.
- Wählen Sie unter „Service“ die Option „
-
Klicken Sie auf Zuweisen, um die Zugriffsrichtlinien dieser Zugriffsgruppe zuzuweisen.
-
-
Fügen Sie den Benutzer
my-userzu 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.
- Konfigurieren Sie den Zugriff für Code Engine, um die Service-ID für Servicebindungen automatisch zu erstellen und zu verwalten.
- Aktualisieren Sie das Projekt, um auf Serviceinstanzen in anderen Ressourcengruppen zuzugreifen.
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 abcdabcdabcdabcdabcdabcdabcdabcdFühren Sie
ibmcloud resource groupsaus, 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:
- Erstellen Sie eine angepasste Service-ID mit Zugriffsberechtigungen für Code Engine-Servicebindungen.
- Konfigurieren Sie Ihr Projekt für die Verwendung der angepassten Service-ID.
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.
-
Erstellen Sie eine IAM-Ressourcengruppe für Benutzer, die Code Engine-Servicebindungen erstellen.
- Starten Sie Access(IAM)Overview.
- Wählen Sie Verwalten > Konto > Ressourcengruppen > Ressourcengruppe erstellen aus.
- Erstellen Sie eine Ressourcengruppe, z. B.
CodeEngine_servicebindings_resourcegroup.
-
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. -
Erstellen Sie eine IAM-Zugriffsgruppe für Benutzer, die Code Engine-Servicebindungen erstellen.
- Starten Sie Access(IAM)Overview.
- Wählen Sie Verwalten > Zugriff (IAM) > Zugriffsgruppen.
- Erstellen Sie eine Gruppe, z. B.
CodeEngine_servicebindings_accessgroup. - 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
Vieweraus. - Wählen Sie für Rollen und Aktionen den Servicezugriff von
Writerund den Plattformzugriff vonOperatoraus. - Klicken Sie auf Hinzufügen, um die Zugriffsrichtlinie zu dieser Zugriffsgruppe hinzuzufügen.
- Klicken Sie auf Zuweisen, um die Zugriffsrichtlinien dieser Zugriffsgruppe zuzuweisen.
- 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.
-
Fügen Sie den Benutzer
my-userzu dieser Zugriffsgruppe hinzu. -
Erstellen Sie eine Service-ID für die Serviceinstanz, an die Sie binden möchten.
- Starten Sie Access(IAM)Overview.
- Wählen Sie Verwalten > Zugriff (IAM) > Service-IDs aus.
- Erstellen Sie eine Service-ID, z. B.
CodeEngine_servicebindings_serviceid. - 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
Vieweraus. - Wählen Sie für Rollen und Aktionen den Servicezugriff von
Managerund den Plattformzugriff vonOperatoraus. - Klicken Sie auf Hinzufügen, um die Zugriffsrichtlinie dieser Service-ID hinzuzufügen.
- 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.
-
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. -
Führen Sie den Befehl
ibmcloud ce project updateaus. Wenn die ID Ihres Dienstes beispielsweiseServiceId-12a3456b-c78d-901e-f2a3b4cabcdelautet: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.