Benutzerverwaltung auf IBM Cloud

Der Zugriff auf watsonx Orchestrate Service-Instanzen für Benutzer in Ihrem Konto wird von IBM Cloud® Identity and Access Management (IAM) gesteuert. Jedem Benutzer, der auf den watsonx Orchestrate-Dienst in Ihrem Konto zugreift, muss eine Zugriffsrichtlinie mit einer IAM-Rolle zugewiesen werden. Prüfen Sie die folgenden Rollen, Aktionen und mehr, um zu ermitteln, wie Sie den Zugriff auf watsonx Orchestrate am besten zuweisen können.

Die Zugriffsrichtlinie, die Sie Benutzern in Ihrem Konto zuordnen, bestimmt, welche Aktionen ein Benutzer im Kontext des von Ihnen ausgewählten Service oder der betreffenden Instanz ausführen kann. Die zulässigen Aktionen werden vom watsonx Orchestrate angepasst und als Operationen definiert, die auf dem Dienst ausgeführt werden dürfen. Jede Aktion wird einer IAM-Plattform- oder -Servicerolle zugeordnet, die Sie einem Benutzer zuweisen können.

Weitere Informationen über IAM-Zugriffsgruppen und Zugriffsrichtlinien finden Sie unter IAM-Zugriffskonzepte.

Wichtig: IBM watsonx Orchestrate unterstützt derzeit keine benutzerdefinierten Rollen.

IAM-Zugriffsrichtlinien ermöglichen es, den Zugriff auf verschiedenen Ebenen zu erteilen. Zu den Optionen gehören unter anderem die folgenden Ebenen:

  • Zugriff auf alle Instanzen des Service in Ihrem Konto
  • Zugriff auf eine einzelne Serviceinstanz in Ihrem Konto
  • Zugriff auf eine bestimmte Ressource in einer Instanz

In den folgenden Tabellen wird erläutert, welche Arten von Aufgaben jede Rolle bei der Arbeit mit dem watsonx Orchestrate-Dienst zulässt. Plattformmanagementrollen ermöglichen Benutzern das Ausführen von Tasks für Serviceressourcen auf Plattformebene (z. B. Benutzerzugriff für den Service zuordnen, Instanzen erstellen oder löschen und Instanzen an Anwendungen binden). Service-Zugriffsrollen ermöglichen Benutzern den Zugriff auf watsonx Orchestrate und die Fähigkeit, die API von watsonx Orchestrate aufzurufen. Informationen zu den genauen Aktionen, die den einzelnen Rollen zugeordnet sind, finden Sie unter Rollen zugeordnete Aktionen.

Plattformrolle Beschreibung der Aktionen
Administrator Als Administrator können Sie alle Plattformaktionen ausführen, die auf der Ressource basieren, der diese Rolle zugewiesen ist. Dies gilt auch für das Zuweisen von Zugriffsrichtlinien zu anderen Benutzern.
Bearbeiter Als Bearbeiter können Sie bis auf die Verwaltung des Kontos und die Zuweisung von Zugriffsrichtlinien alle Plattformaktionen ausführen.
Bediener Als Operator können Sie Plattformaktionen ausführen, die zum Konfigurieren und Betreiben von Serviceinstanzen erforderlich sind, z. B. das Dashboard eines Service anzeigen.
Anzeigeberechtigter Als Anzeigeberechtigter können Sie Serviceinstanzen anzeigen, aber nicht ändern.
Servicerolle Beschreibung der Aktionen
Manager Als Manager besitzen Sie Berechtigungen, die über die Rolle 'Schreibberechtigter' hinausgehen, damit Sie privilegierte Aktionen gemäß der Definition durch den Service ausführen können. Außerdem können Sie servicespezifische Ressourcen erstellen und bearbeiten.
Leseberechtigter für die Servicekonfiguration Fähigkeit zum Lesen der Konfiguration von Services für die Governanceverwaltung.
WXO-Benutzer Als Nutzer haben Sie die Erlaubnis, mit Assistenten zu interagieren.
Schreibberechtigter Als Schreibberechtigter besitzen Sie Berechtigungen, die über die Rolle 'Leseberechtigter' hinausgehen; hierzu gehört die Erstellung und Bearbeitung von servicespezifischen Ressourcen.
Wichtig: Ein Benutzer muss neben einer Dienstrolle mindestens eine Plattformrolle haben.

Den Rollen zugeordnete Aktionen

Aktionen Beschreibung Rollen
watsonx-orchestrate.skill.run Kann Fähigkeit laufen Manager, WXO-Benutzer, Schriftsteller
watsonx-orchestrate.assistant.legacy Kann Authoring-Methoden für einen Arbeitsbereich über APIs der Version 1 ausführen. Manager
watsonx-orchestrate.skill.write Kann eine Fertigkeit erstellen, umbenennen, bearbeiten oder löschen. Manager, Schreibberechtigter
watsonx-orchestrate.skill.read Kann eine Skill öffnen und anzeigen. Manager, Schreibberechtigter
watsonx-orchestrate.assistant.write Sie können einen Assistenten umbenennen, bearbeiten oder löschen. Manager, Schreibberechtigter
watsonx-orchestrate.assistant.read Kann einen Assistenten öffnen und anzeigen. Manager, Schreibberechtigter
watsonx-orchestrate.assistant.list Kann Assistenten oder Skills auflisten. Manager, Schreibberechtigter
watsonx-orchestrate.assistant.default Standardzugriff für Assistenten Manager, Schreibberechtigter
watsonx-orchestrate.logs.read Kann Skillanalysen anzeigen und auf Benutzerdialogprotokolle zugreifen. Manager
watsonx-orchestrate.environment.write Kann eine Umgebung umbenennen, bearbeiten oder löschen Manager, Schreibberechtigter
watsonx-orchestrate.environment.read Kann eine Umgebung öffnen und anzeigen Manager, Schreibberechtigter
watsonx-orchestrate.release.write Kann eine Freigabe für einen Assistenten erstellen oder löschen Manager
watsonx-orchestrate.dashboard.view Kann das Dashboard anzeigen Administrator, Editor, Manager, Bediener, Dienstkonfigurationsleser, Betrachter, WXO-Benutzer, Schreiber
watsonx-orchestrate.credentials.write Kann Berechtigungsnachweise zuweisen und festlegen Manager

Zuweisung des Zugriffs auf watsonx Orchestrate in der Konsole

Es gibt zwei allgemeine Möglichkeiten, Zugriff in der Konsole zuzuweisen:

  • Zugriffsrichtlinien pro Benutzer. Sie können Zugriffsrichtlinien pro Benutzer über die Seite Verwalten > Zugriff (IAM) > Benutzer in der Konsole verwalten. Informationen über die Schritte zur Zuweisung von IAM-Zugriff finden Sie unter Verwaltung des Zugriffs auf Ressourcen in der Konsole.
  • Zugriffsgruppen. Zugriffsgruppen werden verwendet, um das Zugriffsmanagement zu optimieren, indem Sie einer Gruppe einmal Zugriff erteilen. Anschließend können Sie Benutzer nach Bedarf zu der Gruppe hinzufügen oder aus der Gruppe entfernen, um ihren Zugriff zu steuern. Sie verwalten Zugriffsgruppen und deren Zugriff über die Seite Verwalten > Zugriff (IAM) > Zugriffsgruppen in der Konsole. Weitere Informationen finden Sie unter Zugriff auf eine Gruppe in der Konsole zuweisen.

Zuweisung des Zugriffs auf watsonx Orchestrate in der CLI

Schrittweise Anleitungen zum Zuweisen, Entfernen und Prüfen des Zugriffs finden Sie unter Zugriff auf Ressourcen über die Befehlszeilenschnittstelle zuweisen. Das folgende Beispiel zeigt einen Befehl zur Zuweisung der Rolle Writer für watsonx Orchestrate:

Tipp: Verwenden Sie watsonx-orchestrate für den Servicenamen. Verwenden Sie auch Anführungszeichen um Rollennamen, die aus mehr als einem Wort bestehen, wie im folgenden Beispiel.

ibmcloud iam user-policy-create USER@EXAMPLE.COM --service-name watsonx-orchestrate --roles "Writer"

Zuweisung des Zugriffs auf watsonx Orchestrate unter Verwendung der API

Eine schrittweise Anleitung zum Zuweisen, Entfernen und Prüfen des Zugriffs finden Sie unter Zugriff auf Ressourcen über die API zuweisen oder in den Dokumenten zur Erstellen einer Richtlinien-API. Die Cloudressourcennamen (CRN) der Rolle in der folgenden Tabelle werden verwendet, um Zugriff mit der API zuzuweisen.

Tabelle 2. Rollen-ID-Werte für die API-Verwendung
Rollenname Rollen-CRN
Anzeigeberechtigter crn:v1:bluemix:public:watsonx-orchestrate::::serviceRole:Viewer
Bediener crn:v1:bluemix:public:watsonx-orchestrate::::serviceRole:Operator
Bearbeiter crn:v1:bluemix:public:watsonx-orchestrate::::serviceRole:Editor
Administrator crn:v1:bluemix:public:watsonx-orchestrate::::serviceRole:Administrator
Leseberechtigter für die Servicekonfiguration crn:v1:bluemix:public:watsonx-orchestrate::::serviceRole:ServiceConfigurationReader
Schreibberechtigter crn:v1:bluemix:public:watsonx-orchestrate::::serviceRole:Writer
Manager crn:v1:bluemix:public:watsonx-orchestrate::::serviceRole:Manager
WXO-Benutzer crn:v1:bluemix:public:watsonx-orchestrate::::serviceRole:WXOUser

Das folgende Beispiel zeigt die Zuweisung der Rolle WXO User für watsonx-orchestrate:

Tipp: Verwenden Sie watsonx-orchestrate für den Servicenamen und überprüfen Sie anhand der Tabelle mit den Rollen-ID-Werten, ob Sie den richtigen Wert für die CRN verwenden.

curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{
  "type": "access",
  "description": "WXO User role for watsonx Orchestrate",
  "subjects": [
    {
      "attributes": [
        {
          "name": "iam_id",
          "value": "IBMid-123453user"
        }
      ]
    }
  ],
  "roles":[
    {
      "role_id": "crn:v1:bluemix:public:watsonx-orchestrate::::serviceRole:WXOUser"
    }
  ],
  "resources":[
    {
      "attributes": [
        {
          "name": "accountId",
          "value": "$ACCOUNT_ID"
        },
        {
          "name": "serviceName",
          "value": "watsonx-orchestrate"
        }
      ]
    }
  ]
}'
SubjectAttribute subjectAttribute = new SubjectAttribute.Builder()
      .name("iam_id")
      .value("IBMid-123453user")
      .build();

PolicySubject policySubjects = new PolicySubject.Builder()
      .addAttributes(subjectAttribute)
      .build();

PolicyRole policyRoles = new PolicyRole.Builder()
      .roleId("crn:v1:bluemix:public:watsonx-orchestrate::::serviceRole:WXOUser")
      .build();

ResourceAttribute accountIdResourceAttribute = new ResourceAttribute.Builder()
      .name("accountId")
      .value("ACCOUNT_ID")
      .operator("stringEquals")
      .build();

ResourceAttribute serviceNameResourceAttribute = new ResourceAttribute.Builder()
      .name("serviceName")
      .value("watsonx-orchestrate")
      .operator("stringEquals")
      .build();

PolicyResource policyResources = new PolicyResource.Builder()
      .addAttributes(accountIdResourceAttribute)
      .addAttributes(serviceNameResourceAttribute)
      .build();

CreatePolicyOptions options = new CreatePolicyOptions.Builder()
      .type("access")
      .subjects(Arrays.asList(policySubjects))
      .roles(Arrays.asList(policyRoles))
      .resources(Arrays.asList(policyResources))
      .build();

Response<Policy> response = service.createPolicy(options).execute();
Policy policy = response.getResult();

System.out.println(policy);
const policySubjects = [
  {
    attributes: [
      {
        name: 'iam_id',
        value: 'IBMid-123453user',
      },
    ],
  },
];
const policyRoles = [
  {
    role_id: 'crn:v1:bluemix:public:watsonx-orchestrate::::serviceRole:WXOUser',
  },
];
const accountIdResourceAttribute = {
  name: 'accountId',
  value: 'ACCOUNT_ID',
  operator: 'stringEquals',
};
const serviceNameResourceAttribute = {
  name: 'serviceName',
  value: 'watsonx-orchestrate',
  operator: 'stringEquals',
};
const policyResources = [
  {
    attributes: [accountIdResourceAttribute, serviceNameResourceAttribute]
  },
];
const params = {
  type: 'access',
  subjects: policySubjects,
  roles: policyRoles,
  resources: policyResources,
};

iamPolicyManagementService.createPolicy(params)
  .then(res => {
    examplePolicyId = res.result.id;
    console.log(JSON.stringify(res.result, null, 2));
  })
  .catch(err => {
    console.warn(err)
  });
policy_subjects = PolicySubject(
  attributes=[SubjectAttribute(name='iam_id', value='IBMid-123453user')])
policy_roles = PolicyRole(
  role_id='crn:v1:bluemix:public:watsonx-orchestrate::::serviceRole:WXOUser')
account_id_resource_attribute = ResourceAttribute(
  name='accountId', value='ACCOUNT_ID')
service_name_resource_attribute = ResourceAttribute(
  name='serviceName', value='watsonx-orchestrate')
policy_resources = PolicyResource(
  attributes=[account_id_resource_attribute,
        service_name_resource_attribute])

policy = iam_policy_management_service.create_policy(
  type='access',
  subjects=[policy_subjects],
  roles=[policy_roles],
  resources=[policy_resources]
).get_result()

print(json.dumps(policy, indent=2))
subjectAttribute := &iampolicymanagementv1.SubjectAttribute{
  Name:  core.StringPtr("iam_id"),
  Value: core.StringPtr("IBMid-123453user"),
}
policySubjects := &iampolicymanagementv1.PolicySubject{
  Attributes: []iampolicymanagementv1.SubjectAttribute{*subjectAttribute},
}
policyRoles := &iampolicymanagementv1.PolicyRole{
  RoleID: core.StringPtr("crn:v1:bluemix:public:watsonx-orchestrate::::serviceRole:WXOUser"),
}
accountIDResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
  Name:     core.StringPtr("accountId"),
  Value:    core.StringPtr("ACCOUNT_ID"),
  Operator: core.StringPtr("stringEquals"),
}
serviceNameResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
  Name:     core.StringPtr("serviceName"),
  Value:    core.StringPtr("watsonx-orchestrate"),
  Operator: core.StringPtr("stringEquals"),
}
policyResources := &iampolicymanagementv1.PolicyResource{
  Attributes: []iampolicymanagementv1.ResourceAttribute{
    *accountIDResourceAttribute, *serviceNameResourceAttribute}
}

options := iamPolicyManagementService.NewCreatePolicyOptions(
  "access",
  []iampolicymanagementv1.PolicySubject{*policySubjects},
  []iampolicymanagementv1.PolicyRole{*policyRoles},
  []iampolicymanagementv1.PolicyResource{*policyResources},
)

policy, response, err := iamPolicyManagementService.CreatePolicy(options)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(policy, "", "  ")
fmt.Println(string(b))

Übergeordnetes Thema:

Benutzer verwalten