Logo Oracle Deutschland   DBA Community  -  November 2015
Cloud Control 12c: Named Credentials und Rollen
von Ralf Durben, Oracle Deutschland B.V. & Co. KG

Named Credentials stellen in Oracle Enterprise Manager Cloud Control ein wichtiges Instrument zur Zugriffskontrolle dar. Mit ihnen können Credentials (z.B. Benutzernamen und Passwörter oder SSH Keys) zentral gespeichert werden. Die Nutzung dieser Credentials kann den EM Benutzern derart ermöglicht werden, dass diese den Inhalt des Credentials, also zum Beispiel das Passwort, nicht einsehen können (siehe Community Tipp: Mehr Sicherheit durch Named Credentials).

Typischerweise können EM Benutzer in verschiedene Benutzerklassen eingeteilt werden, und so werden dann auch Privilegien, wie zum Beispiel das Arbeiten mit einer Zieldatenbank, nicht direkt, sondern über Rollen vergeben. Die Rollen stellen also ein Mittel der Bündelung verschiedener Privilegien dar, die dann in einem Schritt in der GUI oder einem Kommando mit EMCLI an einen EM Benutzer vergeben werden. Dieses ist vor allem auch sinnvoll, um das Anlegen neuer EM Benutzer zu vereinfachen.

Das Konzept von Rollen ist den Kennern der Oracle Datenbank sicher bekannt, es sei hier aber klargestellt, dass im Folgenden von Rollen in Cloud Control die Rede sein wird. Dabei gibt es vorgefertigte Rollen, die auch nicht verändert werden können, mit denen eine spezielle Nutzung verknüpft ist. Als Beispiel sei die Rolle "EM_SSA_USER" genannt, die für Benutzer der Self Service Anwendung im Rahmen einer Private Cloud Lösung verwendet wird. Daneben können zusätzliche Rollen erstellt werden, seit Release 4 von Cloud Control 12c auch sogenannte "Private Rollen". Um hier eine Unterscheidung zu treffen werden im Folgenden benutzerdefinierte Rollen, die nicht private Rollen sind, als "Normale Rollen" bezeichnet.

Bei der Vergabe von Rechten über Rollen war bis Release 3 von Cloud Control (also 12.1.0.3) eine wichtige Form von Privilegien davon ausgenommen: die Named Credentials. Diese konnten nur direkt an EM Benutzer vergeben werden. Seit Release 4 (also 12.1.0.4) können Sie das Nutzungsrecht für Named Credentials auch an Rollen vergeben, allerdings nur an die neue Form von Rollen (die mit Release 4 eingeführt wurde): Private Rollen. Diese legen Sie an, indem Sie im ersten Schritt des Wizards zum Anlegen einer neuen Rolle das Häkchen bei "Private Role" aktivieren.



In einem Beispiel habe ich in der vorliegenden Umgebung zwei Rollen definiert:

  • Normale Rolle: TESTROLLE1
  • Private Rolle: TESTROLLE2
Im nächsten Schritt soll das Zugriffsrecht eines Named Credentials an eine Rolle vergeben werden. Dazu wird das Named Credential unter "Setup -> Security -> Named Credentials" aufgerufen. Dann klicken Sie auf den Button "Manage Access" und dann auf "Add Grant". Es werden als Rollen nur private Rollen angeboten, hier die Rolle "TESTROLLE2".



Das Nutzungsrecht für Named Credentials kann also nur an private Rollen vergeben werden! Diese wiederum können nur von EM Benutzern erstellt werden, die das Privileg "CREATE ROLE" besitzen, und werden von diesem Benutzer (Owner) verwaltet. Die Verwaltung einer Rolle kann jedoch auch an andere EM Benutzer vergeben werden, indem das Zugriffsrecht mit "ADMIN OPTION" vergeben wird. Dieses funktioniert jedoch nicht in der GUI, sondern nur über EMCLI (Enterprise Manager Command Line Interface) mit dem Kommando
emcli grant_roles -name="benutzer_der_das_recht_bekommen_soll" -roles="TESTROLLE2:WITH_ADMIN;TESTROLLE1"
Im obigen Beispiel wird für die private Rolle "TESTROLLE2" das Administrationsrecht und für die Rolle "TESTROLLE1" das Nutzungsrecht vergeben.

Hinweis: Zum Zeitpunkt der Erstellung dieses Tipps ist die obige Syntax leider nicht im Handbuch zu finden. Sie können in EMCLI aber jederzeit mit
emcli help grant_roles
  emcli grant_roles
        -name="username/rolename"
        -roles="role1;role2;..."
        [-separator="separator:attribute_name:character"]
        [-subseparator="subseparator:attribute_name:character"]

  Description
    Grants roles to an existing Enterprise Manager user or Enterprise Manager role.

  Options
    -name
        User name or role name to which roles will be assigned.
    -roles
        Roles, which will be granted to an Enterprise Manager user or role.
        You can specify this option more than once.
        WITH_ADMIN should be suffixed in the role name if the role needs to be granted by the WITH_ADMIN option.
    -separator
        By default multi value input attributes use semicolon (;) character as separator. 
        Specifying this option overrides the default separator value.  
        Example: separator=""  
            where attribute_name is name of the attribute for which you wish to override separator character and 
            sep_char is new separator character
        Example: separator="att=#"
    -subseparator
        By default multi value input attributes use colon (:) character as sub-separator. 
        Specifying this option overrides the default sub-separator value. 
        Example: subseparator="" 
        attribute_name is name of the attribute for which you wish to override separator character and 
        sep_char is new sub-separator character
        Example: subseparator="att=#"

  Exit Codes
      0  On success
         Non-zero value means verb processing was not successful.

  Examples
    1. emcli grant_roles
       -name="user1"
       -roles="EM_ALL_VIEWER"
    
    2. emcli grant_roles
       -name="Role1"
       -roles="BLACKOUT_ADMIN;MAINTAIN_TARGET"
    
    3. emcli grant_roles
       -name="user1"
       -roles="private_role1:WITH_ADMIN;private_role2"
    
       Grant private_role1 to user1 with_admin option and private_role2 without admin option

die jeweils aktuelle Hilfe für jedes einzelne EMCLI Kommando (auch Verb genannt) aufrufen.

Migration

Das Attribut "Private" einer Rolle wird zum Zeitpunkt ihrer Erstellung festgelegt. Für eine existierende Rolle können Sie dieses Attribut nicht setzen. So stellt sich die Frage, wie Sie in einer gewachsenen EM-Umgebung vorgehen, in der es schon ein Benutzer/Rollenkonzept gibt und die Rollen nicht "Privat" sind. Dazu ist es sinnvoll, weitere Eigenschaften von privaten Rollen zu beleuchten. Eine wichtige Frage ist zum Beispiel, ob es Unterschiede bei der weiteren Verwendung von Rollen gibt. Und in der Tat gibt es einen solchen:

  • Eine normale Rolle kann an eine private Rolle gegranted werden
  • Eine private Rolle kann nicht an eine normale Rolle gegranted werden
  • Eine private Rolle kann an eine private Rolle gegranted werden
Wenn Sie also mit einer Hierarchie von Rollen arbeiten und diese auf private Rollen umstellen möchten, müssten Sie ggf. alle Rollen neu als "Privat" erstellen. Dieser Vorgang kann sehr umfangreich werden. Eine komplette Umstellung ist auch von der Ausführung her nicht ganz einfach, denn EMCLI (Enterprise Manager Command Line Interface) bietet hierzu leider nicht die Möglichkeit die Definition einer bestehenden Rolle auszulesen. Auch der Versuch eines einfachen "Create like" in der GUI von Cloud Control scheitert, da in diesem Fall das Attribut "Private" oder "Normal" nicht verändert werden kann. Es bleibt also nur der Weg, die neuen privaten Rollen per Hand komplett neu zu erstellen und mit Rechten zu füllen.

Ein einfacherer Weg ist es, speziell für die Zuweisung von Named Credentials, zusätzliche private Rollen zu erstellen, die entweder parallel zu den existierenden Rollen an die Benutzer vergeben oder vorgeschaltet plaziert werden.

Beispiel

Es existiert eine normale Rolle "R_DBA_D" für DBAs in Düsseldorf. Diese Rolle enthält alle Rechte für den Zugriff auf Datenbanken, jedoch keine Rechte für Named Credentials. Erstellen Sie eine neue private Rolle "R_DBAS_D_NC" und vergeben Sie die Nutzungsrechte an Named Credentials an diese neue Rolle.
  • Variante 1

    Vergeben Sie das Nutzungsrecht für die neue Rolle an die EM Benutzer (DBAs aus Düsseldorf). Nachteil dieser Variante: Wenn Sie einen neuen EM Benutzer erstellen, müssen Sie zwei Rollenzuweisungen durchführen, nämlich die bestehende normale Rolle und die neue private Rolle.
  • Variante 2

    Vergeben Sie das Nutzungsrecht für die neue Rolle an die EM Benutzer (DBAs aus Düsseldorf). Vergeben Sie dann das Nutzungsrecht für die existierende Rolle "R_DBA_D" an die neue Rolle "R_DBA_D_NC" und entfernen die Zuweisungen an die EM Benutzer. Jeder neue EM Benutzer bekommt so nur die private Rolle zugewiesen.

Fazit

Mit den privaten Rollen in Cloud Control (seit 12.1.0.4) können Sie auch die Nutzung von Named Credentials gebündelt über Rollen vergeben und so die Verwaltung von EM Benutzern stark vereinfachen. Bei einer bestehenden Cloud Control Umgebung mit bestehenden Rollen können Sie den Umstieg mit zusätzlichen privaten Rollen realisieren.

Lizenzhinweis

Die Nutzung von Rollen in Cloud Control ist Bestandteil der Basisfunktionalität und nicht separat lizenzpflichtig. Die Nutzung von Privilegien, die im Zusammenhang mit separat lizenzierungspflichtigen Management Packs stehen, bleibt auch dann lizenzierungspflichtig, wenn diese mit Rollen verwaltet werden.


Zurück zum Anfang des Artikels

Zurück zur Community-Seite