Zugriff für Unternehmensverwaltung zuweisen

Wenn Sie einem Benutzer Zugriff für die Verwaltung eines IBM Cloud®-Unternehmens zuweisen möchten, müssen Sie ihn für das Unternehmenskonto einladen und ihm die Zugriffsberechtigung für den Unternehmenskontoverwaltungsservice zuweisen.

Der Zugriff für die Verwaltung des Unternehmens setzt eine Zugriffsrichtlinie innerhalb des Unternehmenskontos voraus. Wenn Sie einem Benutzer eine Richtlinie für den Unternehmenskontoverwaltungsservice innerhalb eines untergeordneten Kontos in einem Unternehmen zuweisen, kann der Benutzer das Unternehmen, zu dem das Konto gehört, nicht verwalten. Abhängig von der zugewiesenen Rolle für den Unternehmenskontoverwaltungsservice im Unternehmenskonto kann der Benutzer bestimmte Aktionen durchführen:

  • Neue Konten im Unternehmen erstellen
  • Kontogruppen erstellen und benennen
  • Konten zwischen Kontogruppen verschieben
  • Konten auflösen, nachdem alle zugehörigen Ressourcen gelöscht worden sind
  • Vorhandene Konten in das Unternehmen importieren
  • Unternehmensname oder die Domäne aktualisieren
  • Anzeigen von Nutzungsberichten, die zur Berechnung der Abrechnung verwendet werden, für das Unternehmen, eine bestimmte Kontengruppe, Konten innerhalb von Kontengruppen oder ein bestimmtes Konto, wobei Details auf Tarifebene verfügbar sind
  • Erstellen Sie unternehmensverwaltete IAM-Vorlagen
  • Weisen Sie unternehmensverwaltete IAM-Vorlagen untergeordneten Konten zu
  • Zuweisen von IAM-Templates zu untergeordneten Konten
  • Ausgabenbenachrichtigungen für untergeordnete Konten festlegen, um Mitglieder des Unternehmens zu benachrichtigen
  • Überwachen Sie Sicherheit und Compliance mit IBM Cloud Security and Compliance Center Workload Protection
  • Private Kataloge teilen

Eine Richtlinie, die einem Benutzer den Zugriff auf den Unternehmensservice erteilt, kann entweder für das gesamte Unternehmen oder nur für eine bestimmte Kontogruppe oder ein einzelnes Konto zugewiesen werden.

In der Regel enthält das Unternehmenskonto selbst nicht viele Ressourcen. Stattdessen werden die Ressourcen in den untergeordneten Konten des Unternehmens erstellt. Innerhalb dieser Konten werden die Benutzer eingeladen und erhalten den erforderlichen Zugriff für das Verwalten und Nutzen der Ressourcen. Der Zugriff und die Zugehörigkeit eines Benutzers in Bezug auf das Unternehmenskonto gelten nicht für die Kontogruppen und untergeordneten Konten in der Unternehmenshierarchie. Die Benutzer- und Zugriffsverwaltung bleiben für jedes Konto isoliert, wie aus den folgenden Diagrammen hervorgeht.

Das erste Diagramm zeigt, wie Sie einem Benutzer im Unternehmenskonto eine Richtlinie zur Verwaltung des gesamten Unternehmens zuweisen können. Das zweite Diagramm zeigt eine Richtlinie, die sich auf eine Kontogruppe bezieht, die die Zugriffsberechtigung für die Verwaltung ausschließlich dieser Kontogruppe und der darin enthaltenen untergeordneten Konten erteilt.

Unternehmenszugriff
Diagramm für Unternehmenszugriff

Das Ziel und die Rolle der Richtlinie sind bei der Festlegung des Zugriffsbereichs von Bedeutung. Ein Benutzer, eine Servcie-ID oder eine Zugriffsgruppe in einem Unternehmen kann Unternehmensverwaltungsaufgaben ausführen:

  • Im gesamten Unternehmen
  • Für eine Kontogruppe, die andere Kontogruppen und Konten enthalten kann
  • Für ein einzelnes Konto

Beispiel: Ein Benutzer kann Aufgaben innerhalb einer Kontogruppe ausführen, wenn ihm einen Zugriffsrichtlinie für den Unternehmenskontoverwaltungsservice mit einem Ziel zugewiesen wird, das sich auf eine bestimmte Kontogruppe bezieht. Der Benutzer kann keine Aktionen ausführen, die das Unternehmen als Ganzes betreffen (wie z. B. das Aktualisieren des Unternehmensnamens oder der Domäne), wenn das Ziel auf eine bestimmte Kontogruppe oder ein bestimmtes Konto festgelegt ist.

Sie können Benutzern in einem untergeordneten Konto im Unternehmen Zugriffsrichtlinien zuweisen, die für die Verwaltung nur dieses Kontos oder der darin enthaltenen Ressourcen gelten. Wenn Sie einem Benutzer in einem untergeordneten Konto z. B. eine Rolle im Unternehmenskontoverwaltungsservice zuweisen, kann der Benutzer keine Aktionen auf der Ebene des Unternehmenskontos ausführen. Sie müssen sie dem Unternehmenskonto hinzufügen und die Richtlinie in diesem Kontext zuordnen.

Kontozugriff
Diagramm für den Kontozugriff

Erforderliche Richtlinien für bestimmte Jobs

Abhängig von dem Job, der ausgeführt werden soll, ist möglicherweise eine Kombination aus Zugriffsrichtlinien für einen Benutzer erforderlich, der nicht der Eigner des Unternehmens ist. Die folgenden Beispiele stellen die Gruppe der Zugriffsrichtlinien bereit, die Sie einem Benutzer im Unternehmen zuweisen müssen, damit er bestimmte Tasks ausführen kann.

Wenn Sie der Eigner eines Kontos sind, das nicht Teil eines Unternehmens ist, Sie aber möchten, dass ein anderer Benutzer in Ihrem Konto in der Lage ist, Ihr Konto in ein Unternehmen umzuwandeln, können Sie diesem Benutzer die Administratorrolle für den Abrechnungskontoverwaltungsservice zuweisen.

Im Unternehmen die Nutzung anzeigen und die Abrechnung verwalten

Damit ein Benutzer für alle Konten im Unternehmen Nutzungsberichte anzeigen, Zahlungen vornehmen und Rechnungen anzeigen kann, müssen Sie alle folgenden Zugriffsrichtlinien zuweisen:

  • Rolle des Anzeigeberechtigten für Nutzungsberichte für den Unternehmenskontoverwaltungsservice im Unternehmenskonto
  • Rolle des Administrators für den Abrechnungskontoverwaltungsservice im Unternehmenskonto

Vorhandenes Konto in das Unternehmen importieren

Damit ein Benutzer ein bestehendes „ IBM Cloud “-Konto in das Unternehmen importieren kann, müssen Sie alle folgenden Zugriffsrichtlinien zuweisen:

  • Rolle des Administrators für den Abrechnungskontoverwaltungsservice in dem Konto, das importiert werden soll
  • Rolle des Administrators oder Bearbeiters für den Unternehmenskontoverwaltungsservice für die Kontogruppe oder das Unternehmenskonto
  • Rolle des Administrators für den Abrechnungskontoverwaltungsservice für das Unternehmenskonto

Konto verschieben

Damit ein Benutzer ein Konto in einem Unternehmen verschieben kann, müssen Sie die folgenden Zugriffsrichtlinien zuweisen:

  • Rolle des Administrators für den Abrechnungskontoverwaltungsservice im Unternehmenskonto

Dann eine der beiden folgenden Optionen:

  • Rolle des Administrators oder Bearbeiters für den Unternehmenskontoverwaltungsservice für das gesamte Unternehmen
  • Rolle des Administrators oder Bearbeiters für die Ausgangs- und Zielkontogruppe

Ausführliche Informationen zu den Aktionen, die Benutzer für jede Rolle ausführen können, finden Sie unter Aktionen und Rollen für Kontoverwaltungsservices.

Sicherheit und Compliance verwalten

Damit ein Benutzer die Sicherheit und Compliance über verwalten IBM Cloud Security and Compliance Center Workload Protection kann, müssen Sie die folgenden Zugriffsrichtlinien zuweisen:

  • Administrator- oder Redakteursrolle für IBM Cloud Security and Compliance Center Workload Protection
  • Benutzerdefinierte Rolle für das Unternehmen

Um die benutzerdefinierte Rolle mit den entsprechenden Berechtigungen zu erstellen, siehe Zugriffskontrolle durch IAM.

Erstellen und Zuweisen von unternehmensverwalteten IAM-Vorlagen

Um unternehmensverwaltete IAM-Vorlagen zu erstellen, müssen Sie die Rolle „Vorlagenadministrator“ für alle IAM-Kontoverwaltungsdienste zuweisen.

Um unternehmensverwaltete IAM-Vorlagen Unterkonten zuzuweisen, müssen Sie die Rolle „Template Assignment Administrator“ für alle IAM-Kontoverwaltungsdienste und -Richtlinien mit mindestens der Rolle „Viewer“ im Unternehmensdienst zuweisen.

Standardmäßig haben keine Benutzer diese Berechtigungen, auch nicht der Kontoinhaber.

Ausführliche Informationen zu den Aktionen, die Benutzer für jede Rolle ausführen können, finden Sie unter Aktionen und Rollen für Kontoverwaltungsservices.

Zugriffsberechtigungen in der Konsole zuweisen

Führen Sie die folgenden Schritte aus, um einem vorhandenen Benutzer im Unternehmenskonto eine Zugriffsrichtlinie zuzuweisen:

Sie können das Ziel der gewünschten Richtlinie für das gesamte Unternehmen, für eine bestimmte Kontogruppe, die den Zugriff auf enthaltenen Konten beinhalten kann, oder nur für ein bestimmtes Konto in einer Kontogruppe festlegen.

  1. Klicken Sie in der IBM Cloud-Konsole auf Verwalten > Zugriff (IAM) und wählen Sie Benutzer aus.
  2. Klicken Sie in der Zeile für den Benutzer, dem Sie Zugriff zuweisen möchten, auf das Symbol Aktionen Aktionen-Symbol und anschließend auf Zugriff zuweisen.
  3. Wählen Sie in den Services die Option Enterprise aus.
  4. Klicken Sie auf Weiter.
  5. Legen Sie den Zugriff auf eine Ressourcengruppe mit bestimmten untergeordneten Konten oder auf alle Konten im Unternehmen fest. Klicken Sie anschließend auf Weiter.
  6. Wählen Sie eine beliebige Kombination von Rollen oder Berechtigungen aus und klicken Sie auf Überprüfen.
  7. Klicken Sie auf Hinzufügen, um die Richtlinienkonfiguration zu Ihrer Richtlinienzusammenfassung hinzuzufügen.
  8. (Optional) Wiederholen Sie die Schritte, wenn Sie zusätzliche Zugriffsberechtigungen zuweisen möchten.
  9. Klicken Sie auf Zuweisen.

Weitere Informationen zu Rollen und Aktionen zur Zuweisung von Zugriffsrechten in einem Unternehmenskonto finden Sie unter „ Zugriffsrechte für Kontoverwaltungsdienste zuweisen “.

Zugriffsberechtigungen über die Befehlszeilenschnittstelle (CLI) zuweisen

Um eine neue Zugriffsrichtlinie für einen Benutzer zu erstellen, führen Sie den Befehl ibmcloud iam user-policy-create aus. Im Befehlsbeispiel wird eine JSON-Datei verwendet, um die Richtliniendetails anzugeben. Im Abschnitt Zugriff über die Anwendungsprogrammierschnittstelle (API) zuweisen finden Sie ein Beispiel für den erforderlichen Inhalt der JSON-Datei.

Erstellen Sie eine Benutzerrichtlinie:

ibmcloud iam user-policy-create name@example.com -f policy.json

Weitere Informationen finden Sie unter ibmcloud iam user-policy-create.

Zugriffsberechtigungen über die Anwendungsprogrammierschnittstelle (API) zuweisen

Das folgende Anforderungsbeispiel weist eine Richtlinie für einen Benutzer mit der Rolle "Bearbeiter" für den Unternehmensservice in einem Unternehmenskonto mit Bezug auf eine Kontogruppe zu. Dieser Richtlinientyp ist hierarchisch und gilt für alle untergeordneten Objekte in der Hierarchie, d. h. für alle Kontogruppen oder Konten innerhalb der angegebenen Zielkontogruppe.

curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{
  "type": "access",
  "description": "Editor role for SERVICE_NAME's RESOURCE_NAME",
  "subjects": [
    {
      "attributes": [
        {
          "name": "iam_id",
          "value": "IBMid-123453user"
        }
      ]
    }'
  ],
  "roles":[
    {
      "role_id": "crn:v1:bluemix:public:iam::::role:Editor"
    }
  ],
  "resources":[
    {
      "attributes": [
        {
          "name": "accountId",
          "value": "$ACCOUNT_ID"
        },
        {
          "name": "serviceName",
          "value": "$SERVICE_NAME"
        },
        {
          "name": "resource",
          "value": "$RESOURCE_NAME",
          "operator": "stringEquals"
        }
      ]
    }
  ]
}'
SubjectAttribute subjectAttribute = new SubjectAttribute.Builder()
        .name("iam_id")
        .value(EXAMPLE_USER_ID)
        .build();
PolicySubject policySubjects = new PolicySubject.Builder()
        .addAttributes(subjectAttribute)
        .build();
PolicyRole policyRoles = new PolicyRole.Builder()
        .roleId("crn:v1:bluemix:public:iam::::role:Viewer")
        .build();
ResourceAttribute accountIdResourceAttribute = new ResourceAttribute.Builder()
        .name("accountId")
        .value(exampleAccountId)
        .operator("stringEquals")
        .build();
ResourceAttribute serviceNameResourceAttribute = new ResourceAttribute.Builder()
        .name("serviceType")
        .value("service")
        .operator("stringEquals")
        .build();
ResourceTag policyResourceTag = new ResourceTag.Builder()
        .name("project")
        .value("prototype")
        .operator("stringEquals")
        .build();
PolicyResource policyResources = new PolicyResource.Builder()
        .addAttributes(accountIdResourceAttribute)
        .addAttributes(serviceNameResourceAttribute)
        .addTags(policyResourceTag)
        .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: exampleUserId,
      },
    ],
  },
];
const policyRoles = [
  {
    role_id: 'crn:v1:bluemix:public:iam::::role:Viewer',
  },
];
const accountIdResourceAttribute = {
  name: 'accountId',
  value: exampleAccountId,
  operator: 'stringEquals',
};
const serviceNameResourceAttribute = {
  name: 'serviceType',
  value: 'service',
  operator: 'stringEquals',
};
const policyResourceTag = {
  name: 'project',
  operator: 'stringEquals',
  value: 'prototype',
};
const policyResources = [
  {
    attributes: [accountIdResourceAttribute, serviceNameResourceAttribute],
    tags: [policyResourceTag],
  },
];
const params = {
  type: 'access',
  subjects: policySubjects,
  roles: policyRoles,
  resources: policyResources,
};
iamPolicyManagementService.createPolicy(params)
  .then(res => {
    examplePolicyId = res.result.id;
    console.log('createPolicy() result:\n' + JSON.stringify(res.result, null, 2));
  })
  .catch(err => {
    console.warn(err)
  });
policy_subjects = PolicySubject(
  attributes=[SubjectAttribute(name='iam_id', value=example_user_id)])
policy_roles = PolicyRole(
  role_id='crn:v1:bluemix:public:iam::::role:Viewer')
account_id_resource_attribute = ResourceAttribute(
  name='accountId', value=example_account_id)
service_name_resource_attribute = ResourceAttribute(
  name='serviceType', value='service')
policy_resource_tag = ResourceTag(
  name='project', value='prototype')
policy_resources = PolicyResource(
  attributes=[account_id_resource_attribute,
        service_name_resource_attribute],
  tags=[policy_resource_tag])
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: &exampleUserID,
}
policySubjects := &iampolicymanagementv1.PolicySubject{
  Attributes: []iampolicymanagementv1.SubjectAttribute{*subjectAttribute},
}
policyRoles := &iampolicymanagementv1.PolicyRole{
  RoleID: core.StringPtr("crn:v1:bluemix:public:iam::::role:Viewer"),
}
accountIDResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
  Name:     core.StringPtr("accountId"),
  Value:    core.StringPtr(exampleAccountID),
  Operator: core.StringPtr("stringEquals"),
}
serviceNameResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
  Name:     core.StringPtr("serviceType"),
  Value:    core.StringPtr("service"),
  Operator: core.StringPtr("stringEquals"),
}
policyResourceTag := &iampolicymanagementv1.ResourceTag{
  Name:     core.StringPtr("project"),
  Value:    core.StringPtr("prototype"),
  Operator: core.StringPtr("stringEquals"),
}
policyResources := &iampolicymanagementv1.PolicyResource{
  Attributes: []iampolicymanagementv1.ResourceAttribute{
    *accountIDResourceAttribute, *serviceNameResourceAttribute},
  Tags: []iampolicymanagementv1.ResourceTag{*policyResourceTag},
}
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))

Weitere Informationen finden Sie unter „ Richtlinie erstellen “.