Kerberos für Dataproc Metastore-gRPC-Endpunkte konfigurieren

Auf dieser Seite wird erläutert, wie Sie Kerberos Dataproc Metastore-Dienst, der das gRPC-Endpunktprotokoll verwendet. Wenn Ihr Dataproc Metastore-Dienst das Thrift-Endpunktprotokoll verwendet, finden Sie weitere Informationen unter Kerberos für Thrift-Endpunkte konfigurieren

Hinweise

  • Verstehen Sie die Grundlagen der Kerberos:

    In dieser Anleitung verwenden Sie einen Dataproc-Cluster, um die folgenden Kerberos-Assets verwenden:

    • Eine Keytab-Datei.
    • Eine krb5.conf-Datei
    • Ein Kerberos-Hauptkonto.

    Weitere Informationen zur Funktionsweise dieser Kerberos-Assets mit einem Dataproc Metastore-Dienst: Informationen zu Kerberos

  • Erstellen und hosten Sie Ihr eigenes Kerberos-KDC oder lernen Sie, wie Sie das lokale KDC eines Dataproc-Cluster:

  • Erstellen Sie einen Cloud Storage-Bucket oder greifen Sie auf einen vorhandenen zu. Ich muss die Datei krb5.conf in diesem Bucket speichern.

Erforderliche Rollen

Um die Berechtigung zu erhalten, die Sie zum Erstellen eines mit Kerberos konfigurierten Dataproc Metastores benötigen, bitten Sie Ihren Administrator, Ihnen folgende IAM-Rollen für Ihr Projekt basierend auf dem Prinzip der geringsten Berechtigung:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigung metastore.services.create, die erforderlich, um einen mit Kerberos konfigurierten Dataproc Metastore zu erstellen .

Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Weitere Informationen zu bestimmten Dataproc Metastore-Rollen und -Berechtigungen finden Sie unter Zugriff mit IAM verwalten.

Weitere Informationen finden Sie unter Dataproc Metastore-IAM und -Zugriffssteuerung.

Kerberos für Dataproc Metastore konfigurieren

In der folgenden Anleitung erfahren Sie, wie Sie Kerberos Dataproc Metastore-Dienst, der den gRPC-Endpunkt verwendet.

Zuerst erstellen Sie einen Dataproc Metastore, der das gRPC- Endpunkt. Anschließend erstellen Sie einen Dataproc-Cluster, der mit Kerberos und eine Verbindung zu ihr herstellen.

Dataproc Metastore-Dienst mit dem gRPC-Endpunkt erstellen

Führen Sie den folgenden Befehl aus, um einen Dataproc Metastore zu erstellen, der den gRPC-Endpunkt verwendet. den folgenden gcloud metastore services create-Befehl:

gcloud

gcloud metastore services create SERVICE \
     --instance-size=medium \
     --endpoint-protocol=grpc

Ersetzen Sie:

  • SERVICE: Der Name Ihres Dataproc Metastore-Dienst

Dataproc-Cluster erstellen und Verbindung zum Dienst herstellen

Führen Sie folgenden Befehl aus, um eine mit Kerberos konfigurierte Dataproc zu erstellen. gcloud dataproc clusters create-Befehl.

In diesem Befehl wird mit der Option --enable-kerberos das Kerberos-Protokoll erstellt. Keytab-Datei, krb5.conf-Datei und Hauptkonto. Diese Werte werden alle mit Standardnamen und -einstellungen, die vom Dataproc-Cluster festgelegt werden.

gcloud

gcloud dataproc clusters create CLUSTER_NAME \
    --project PROJECT_ID \
    --region REGION \
    --image-version 2.0-debian10 \
    --dataproc-metastore DATAPROC_METASTORE_NAME \
    --enable-kerberos \
    --scopes 'https://www.googleapis.com/auth/cloud-platform'

Ersetzen Sie:

  • CLUSTER_NAME ist der Name Ihres Dataproc-Clusters.
  • PROJECT_ID: Ihre Google Cloud-Projekt-ID.
  • REGION: die Google Cloud-Region, die Sie erstellen möchten Dataproc-Cluster aufgenommen.
  • DATAPROC_METASTORE_NAME: der Name des den Dataproc Metastore-Dienst, den Sie an den Cluster anhängen, im folgenden Format: projects/<my_project>/locations/<location>/services/<service_id>.

Dataproc vor dem Senden von Jobs konfigurieren

So führen Sie Ihre Dataproc-Jobs aus: müssen Sie den Nutzer hive zur allowed.system.users-Property im Hadoop-Datei container-executor.cfg So können Nutzende Abfragen ausführen, um auf Daten zuzugreifen, wie select * from.

In der folgenden Anleitung erfahren Sie, wie Sie eine SSH-Verbindung zu Ihrem primären Dataproc herstellen. der mit Ihrem Dataproc Metastore-Dienst verknüpft ist, und Aktualisieren Sie die Datei container-executor.cfg.

  1. Rufen Sie in der Google Cloud Console die VM Instanzen.
  2. Klicken Sie in der Liste der VM-Instanzen auf SSH in der Zeile des Primärer Dataproc-Knoten (your-cluster-name-m)

    In Ihrem Stammverzeichnis des Knotens wird ein Browserfenster geöffnet.

  3. Öffnen Sie in der SSH-Sitzung die Hadoop-Datei container-executor.cfg.

    sudo vim /etc/hadoop/conf/container-executor.cfg
    

    Fügen Sie auf jedem Dataproc-Knoten die folgende Zeile hinzu.

    allowed.system.users=hive
    

Kerberos-Ticket sichern

In der folgenden Anleitung erfahren Sie, wie Sie ein Kerberos-Ticket generieren.

  1. Generieren Sie in der Dataproc-Cluster-SSH-Sitzung einen Kerberos und stellen Sie eine Verbindung zu Ihrem Dataproc Metastore-Dienst her.

    Dieser Befehl verwendet den Standard-Keytab-Namen, der von Ihrem Dataproc-Cluster

    sudo klist -kte /etc/security/keytab/hive.service.keytab
    sudo kinit -kt /etc/security/keytab/hive.service.keytab hive/_HOST@${realm}
    sudo klist # gets the ticket information.
    

    Der Wert _HOST wird abgerufen, wenn der Keytab-Datei wird mit dem Befehl klist -kte aufgelistet. Es enthält die den Hostnamen des primären Knotens.

Optional: Neues Hauptkonto hinzufügen

  1. Führen Sie den folgenden Befehl aus, um ein neues Hauptkonto hinzuzufügen.

    sudo kadmin.local -q "addprinc -randkey PRINCIPAL"
    sudo kadmin.local -q "ktadd -k /etc/security/keytab/hive.service.keytab PRINCIPAL"
    
  2. Hol dir das Kerberos-Ticket.

    sudo klist -kte /etc/security/keytab/hive.service.keytab
    sudo kinit -kt /etc/security/keytab/hive.service.keytab PRINCIPAL
    sudo klist
    sudo hive
    

Nächste Schritte