Datenprodukte verwalten

Dieses Dokument richtet sich an Inhaber von Datenprodukten, die Datenprodukte in Knowledge Catalog (früher Dataplex Universal Catalog) aktualisieren, löschen und Zugriff darauf gewähren möchten.

Weitere Informationen zur Architektur und zu den wichtigsten Konzepten von Datenprodukten finden Sie unter Datenprodukte.

Hinweis

  1. Aktivieren Sie die Dataplex- und BigQuery-APIs.

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

    APIs aktivieren

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, damit Sie die nötigen Berechtigungen zum Verwalten von Datenprodukten haben:

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

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Verwalten von Datenprodukten erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um Datenprodukte zu verwalten:

  • Bearbeiten Sie den Systemaspekttyp overview: dataplex.entryGroups.useOverviewAspect
  • Bearbeiten Sie den Systemaspekttyp refresh cadence: dataplex.entryGroups.useRefreshCadenceAspect
  • Zugriffsanfrage für ein Datenprodukt genehmigen: dataplex.dataProducts.approve

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

Zugriffssteuerung für BigQuery-Modelle

Der Zugriff auf BigQuery-Modelle in einem Datenprodukt wird über IAM-Bedingungen verwaltet, die auf die IAM-Richtlinie des übergeordneten Datasets angewendet werden.

Wenn Sie ein BigQuery-Modell löschen und dann mit demselben Namen neu erstellen, werden die Berechtigungen, die Google-Gruppen oder Dienstkonten zuvor über das Datenprodukt gewährt wurden, im Knowledge Catalog wiederhergestellt.

Berechtigungen festlegen, damit Datenprodukte auffindbar sind

Damit potenzielle Nutzer nach einem Datenprodukt suchen, es aufrufen und Zugriff darauf anfordern können, müssen Datenprodukteigentümer dafür sorgen, dass das Produkt auffindbar ist. Dazu müssen sie die entsprechenden IAM-Rollen für die Datenproduktressource zuweisen:

  • Nach Datenprodukten suchen, sie ansehen und Zugriff darauf anfordern: Dataplex Data Product Consumer (dataplex.dataProductsConsumer)

  • Definitionen und Metadaten von Datenprodukten ansehen (schreibgeschützter Zugriff): Dataplex Data Product Viewer (dataplex.dataProductsViewer)

Zugriffsanfragen für Datenprodukte verwalten

Wenn ein Nutzer eines Datenprodukts Zugriff anfordert, erhält der Inhaber des Datenprodukts eine E-Mail-Benachrichtigung. Inhaber können diese Anfragen entweder über die Google Cloud Console oder die API prüfen, genehmigen oder ablehnen.

Console

Zugriffsanfragen für ein bestimmtes Datenprodukt prüfen

  1. Rufen Sie in der Google Cloud Console die Seite Datenprodukte des Knowledge Catalog auf.

    Zu Datenprodukten

  2. Klicken Sie auf das Datenprodukt, für das Sie Zugriffsanfragen prüfen möchten.

  3. Klicken Sie auf den Tab Zugriffsanfragen verwalten.

  4. Wählen Sie den Antragsteller aus, dessen Antrag Sie prüfen möchten.

  5. Klicken Sie auf  Aktionen und dann auf Genehmigen oder Ablehnen.

  6. Klicken Sie auf Speichern.

Zugriffsanfragen für mehrere Datenprodukte prüfen

  1. Rufen Sie in der Google Cloud Console die Seite Governance-Workflows des Knowledge Catalog auf.

    Governance-Workflows aufrufen

  2. Klicken Sie auf den Tab Ausstehende Genehmigungen.

  3. Optional: Filtern Sie die Liste nach dem Namen des jeweiligen Datenprodukts, um die Anfragen zu isolieren.

  4. Wählen Sie die Zielanfrage aus und klicken Sie auf Genehmigen oder Ablehnen.

  5. Klicken Sie auf Speichern.

Verhalten nach der Genehmigung

  • Nutzeranfragen: Nutzer, die Zugriff für ihre Nutzeridentität angefordert haben, werden automatisch als Mitglieder der Google-Gruppe hinzugefügt, die der Zugriffsgruppe zugeordnet ist.

  • Dienstkontoanfragen: Nutzern, die Zugriff für ein Dienstkonto angefordert haben, werden Berechtigungen zum Übernehmen der Identität des Dienstkontos des Datenproduzenten gewährt, das der Zugriffsgruppe zugeordnet ist.

Nach der Verarbeitung wird der Anfragestatus automatisch aktualisiert und der Eintrag wird auf den Tab Genehmigungsprotokoll verschoben.

REST

Alle ausstehenden Zugriffsanfragen auflisten

Wenn Sie alle Zugriffsanfragen auflisten möchten, die in einem bestimmten Projekt und an einem bestimmten Standort noch nicht von Ihnen geprüft wurden, senden Sie eine GET-Anfrage mit der benutzerdefinierten Sammlungsmethode :listReviewable:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/changeRequests:listReviewable"

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID Ihres Google Cloud -Projekts

  • LOCATION: Die Region, in der das Datenprodukt vorhanden ist, z. B. us-central1

Zugriffsanfrage genehmigen

Data Product Owners mit der Berechtigung dataplex.dataProducts.approve können eine ausstehende Anfrage genehmigen, indem sie eine POST-Anfrage an die benutzerdefinierte Methode :approve senden:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/changeRequests/CHANGE_REQUEST_ID:approve"

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID Ihres Google Cloud -Projekts

  • LOCATION: Die Region, in der das Datenprodukt vorhanden ist, z. B. us-central1

  • CHANGE_REQUEST_ID: die eindeutige ID der Zugriffsanfrage, die Sie genehmigen möchten

Anders als bei konsolenbasierten Genehmigungen werden beim Genehmigen einer Änderungsanfrage über die REST API nicht automatisch Google-Gruppenmitgliedschaften geändert oder die Identitätsübernahme von Dienstkontotokens konfiguriert. Sie müssen die folgenden Schritte zur Verwaltung des Downstream-Zugriffs manuell ausführen:

  • Bei Zugriffsanfragen für Nutzeridentitäten: Fügen Sie den Datenproduktnutzer der zugeordneten Google-Gruppe hinzu. Weitere Informationen finden Sie unter Einer Google-Gruppe eine Mitgliedschaft hinzufügen.

  • Für Zugriffsanfragen für Dienstkonten: Weisen Sie dem Dienstkonto des Datenproduktnutzers die IAM-Rolle Ersteller von Dienstkonto-Tokens (roles/iam.serviceAccountTokenCreator) für die Ressource zu, indem Sie den folgenden Befehl ausführen:

    gcloud iam service-accounts add-iam-policy-binding PRODUCER_SERVICE_ACCOUNT \
      --member="serviceAccount:CONSUMER_SERVICE_ACCOUNT" \
      --role="roles/iam.serviceAccountTokenCreator"
    

    Ersetzen Sie Folgendes:

    • PRODUCER_SERVICE_ACCOUNT: die voll qualifizierte E-Mail-Adresse des Dienstkontos, das der Zugriffsgruppe des Datenprodukts zugeordnet ist.

    • CONSUMER_SERVICE_ACCOUNT: die voll qualifizierte E-Mail-Adresse des Dienstkontos des Nutzers, der Zugriff anfordert.

Zugriffsanfrage ablehnen

Inhaber von Datenprodukten mit der Berechtigung dataplex.dataProducts.approve können eine ausstehende Anfrage ablehnen, indem sie eine POST-Anfrage an die benutzerdefinierte Methode :reject zusammen mit einer Begründungsnutzlast senden:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
  "comment": "REJECTION_REASON"
}' \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/changeRequests/CHANGE_REQUEST_ID:reject"

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID Ihres Google Cloud -Projekts

  • LOCATION: Die Region, in der das Datenprodukt vorhanden ist, z. B. us-central1

  • CHANGE_REQUEST_ID: die eindeutige ID Ihres Zugriffsantrags, den Sie ablehnen möchten

Datenprodukt aktualisieren

Sie können die grundlegenden Details (z. B. Name des Datenprodukts, Beschreibung, Inhaberdetails), Assets, Zugriffsgruppen, Berechtigungen, Vertrag, Aspekte und zusätzliche Dokumentation für ein vorhandenes Datenprodukt aktualisieren.

Grundlegende Details eines Datenprodukts aktualisieren

Console

  1. Rufen Sie in der Google Cloud Console die Seite Datenprodukte des Knowledge Catalog auf.

    Zu Datenprodukten

  2. Klicken Sie auf das Datenprodukt, das Sie aktualisieren möchten.

  3. Klicken Sie auf Bearbeiten.

  4. Aktualisieren Sie bei Bedarf den Namen des Datenprodukts, das Symbol des Datenprodukts, die Beschreibung, die E‑Mail-Adresse des/der Datenproduktinhaber(s), die E‑Mail-Adresse des/der Datenproduktgenehmiger(s) und die Labels.

  5. Klicken Sie auf Speichern.

C#

C#

Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für C# in der Knowledge Catalog-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Knowledge Catalog C# API.

Richten Sie zur Authentifizierung bei Knowledge Catalog die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

using Google.Cloud.Dataplex.V1;
using Google.LongRunning;
using Google.Protobuf.WellKnownTypes;

public sealed partial class GeneratedDataProductServiceClientSnippets
{
    /// <summary>Snippet for UpdateDataProduct</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void UpdateDataProductRequestObject()
    {
        // Create client
        DataProductServiceClient dataProductServiceClient = DataProductServiceClient.Create();
        // Initialize request argument(s)
        UpdateDataProductRequest request = new UpdateDataProductRequest
        {
            DataProduct = new DataProduct(),
            UpdateMask = new FieldMask(),
            ValidateOnly = false,
        };
        // Make the request
        Operation<DataProduct, OperationMetadata> response = dataProductServiceClient.UpdateDataProduct(request);

        // Poll until the returned long-running operation is complete
        Operation<DataProduct, OperationMetadata> completedResponse = response.PollUntilCompleted();
        // Retrieve the operation result
        DataProduct result = completedResponse.Result;

        // Or get the name of the operation
        string operationName = response.Name;
        // This name can be stored, then the long-running operation retrieved later by name
        Operation<DataProduct, OperationMetadata> retrievedResponse = dataProductServiceClient.PollOnceUpdateDataProduct(operationName);
        // Check if the retrieved long-running operation has completed
        if (retrievedResponse.IsCompleted)
        {
            // If it has completed, then access the result
            DataProduct retrievedResult = retrievedResponse.Result;
        }
    }
}

Go

Go

Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Go in der Knowledge Catalog-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Knowledge Catalog Go API.

Richten Sie zur Authentifizierung bei Knowledge Catalog die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


//go:build examples

package main

import (
	"context"

	dataplex "cloud.google.com/go/dataplex/apiv1"
	dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := dataplex.NewDataProductClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &dataplexpb.UpdateDataProductRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#UpdateDataProductRequest.
	}
	op, err := c.UpdateDataProduct(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}

	resp, err := op.Wait(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Java

Java

Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Java in der Knowledge Catalog-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Knowledge Catalog Java API.

Richten Sie zur Authentifizierung bei Knowledge Catalog die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

import com.google.cloud.dataplex.v1.DataProduct;
import com.google.cloud.dataplex.v1.DataProductServiceClient;
import com.google.cloud.dataplex.v1.UpdateDataProductRequest;
import com.google.protobuf.FieldMask;

public class SyncUpdateDataProduct {

  public static void main(String[] args) throws Exception {
    syncUpdateDataProduct();
  }

  public static void syncUpdateDataProduct() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (DataProductServiceClient dataProductServiceClient = DataProductServiceClient.create()) {
      UpdateDataProductRequest request =
          UpdateDataProductRequest.newBuilder()
              .setDataProduct(DataProduct.newBuilder().build())
              .setUpdateMask(FieldMask.newBuilder().build())
              .setValidateOnly(true)
              .build();
      DataProduct response = dataProductServiceClient.updateDataProductAsync(request).get();
    }
  }
}

Node.js

Node.js

Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Node.js in der Knowledge Catalog-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Knowledge Catalog Node.js API.

Richten Sie zur Authentifizierung bei Knowledge Catalog die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. The data product to update.
 *  The data product's `name` field is used to identify the data product to
 *  update.
 */
// const dataProduct = {}
/**
 *  Optional. The list of fields to update.
 *  If this is empty or not set, then all the fields will be updated.
 */
// const updateMask = {}
/**
 *  Optional. Validates the request without actually updating the data product.
 *  Default: false.
 */
// const validateOnly = true

// Imports the Dataplex library
const {DataProductServiceClient} = require('@google-cloud/dataplex').v1;

// Instantiates a client
const dataplexClient = new DataProductServiceClient();

async function callUpdateDataProduct()