Zugriff mit IAM steuern

In diesem Dokument wird beschrieben, wie Sie in Dataform Folgendes tun:

Hinweis

    Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

Dataform den erforderlichen Zugriff gewähren

In diesem Abschnitt erfahren Sie, wie Sie die IAM-Rollen (Identity and Access Management) zuweisen, die Dataform-Dienstkonten und benutzerdefinierte Dienstkonten zum Ausführen von Workflows in BigQuery benötigen.

Benutzerdefinierte Dienstkonten und Dataform-Dienst-Agents

Sie können benutzerdefinierte Dienstkonten so konfigurieren, dass Workflows in Ihrem Namen ausgeführt werden:

Wenn Sie ein Dataform-Repository oder eine Workflow-Konfiguration erstellen, können Sie ein beliebiges Dienstkonto auswählen, für das Sie Berechtigungen zum Ausführen als haben. Sie müssen die erforderlichen „Act-as“-Berechtigungen für alle Dienstkonten konfigurieren, die Ihren Dataform-Ressourcen zugeordnet sind.

Wenn Sie Ihr erstes Dataform-Repository erstellen, wird automatisch ein Dienst-Agent generiert. Dataform verwendet den Dienst-Agent, um in Ihrem Namen mit BigQuery zu interagieren.

Ihre Dataform-Dienst-Agent-ID hat das folgende Format:

service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com

Ersetzen Sie PROJECT_NUMBER durch die numerische ID IhresGoogle Cloud -Projekts. Sie finden Ihre Google Cloud Projekt-ID imGoogle Cloud Console-Dashboard. Weitere Informationen finden Sie unter Projektname, -nummer und -ID ermitteln.

Erforderliche Rollen für Dataform-Dienst-Agents, benutzerdefinierte Dienstkonten und Google-Konten

Für die Authentifizierung in Dataform verwendete Dataform-Dienst-Agents, benutzerdefinierte Dienstkonten und Nutzeranmeldedaten für ein Google-Konto (Vorabversion) benötigen die folgenden BigQuery-IAM-Rollen, um Workflows in BigQuery ausführen zu können:

Weisen Sie dem Dataform-Dienst-Agent außerdem die folgenden Rollen für das effektive Dienstkonto für die Workflowkonfiguration zu. Diese Rollen sind erforderlich, damit der strikte „Act-as“-Modus funktioniert.

Für automatische Repository-Releases und automatische Workflow-Ausführungen gewähren Sie dem Dataform-Dienst-Agent die Berechtigung iam.serviceAccounts.actAs für das effektive Dienstkonto.

Sicherheitsaspekte

Wenn Sie einem Dataform-Dienst-Agent, einem benutzerdefinierten Dienstkonto oder dem Google-Konto eines Nutzers (Vorschau) die von Dataform benötigten Rollen zuweisen, sind die folgenden Sicherheitsaspekte zu berücksichtigen:

  • Jedes benutzerdefinierte Dienstkonto, dem die erforderlichen Rollen zugewiesen wurden, kann unabhängig von VPC Service Controls auf BigQuery oder Secret Manager in dem Projekt zugreifen, zu dem das Dienstkonto gehört. Wenn Dataform ein benutzerdefiniertes Dienstkonto zum Ausführen von Workflows verwendet, werden die Dataform-Anfragen so behandelt, als würden sie innerhalb des VPC Service Controls-Perimeters des Projekts stammen, das Ihr Repository enthält. Daher wird die Kommunikation zwischen Dataform und anderen Diensten wie BigQuery oder Secret Manager nicht durch VPC Service Controls blockiert, wenn sich diese Ressourcen im selben Dienstperimeter befinden.

    Weitere Informationen zum Verwalten dieser Sicherheitsgrenzen finden Sie unter VPC Service Controls konfigurieren.

  • Jeder Nutzer mit der IAM-Berechtigung dataform.repositories.create kann Code mit dem Dataform-Dienst-Agent und allen Berechtigungen ausführen, die diesem Dienst-Agent oder Dienstkonto gewährt wurden.

    Weitere Informationen finden Sie unter Sicherheitsaspekte für Dataform-Berechtigungen.

  • Um ein sicheres Berechtigungsmodell aufrechtzuerhalten, sollten Sie die Rollenbindungen des Dataform-Dienstkontos regelmäßig prüfen. Eine ausführliche Anleitung zur Überwachung finden Sie unter Dienst-Agent-Berechtigungen mit Security Command Center überwachen.

Wenn Sie die Daten einschränken möchten, die ein Nutzer, Dienst-Agent oder Dienstkonto in BigQuery lesen oder schreiben kann, können Sie ausgewählten BigQuery-Datasets oder -Tabellen detaillierte BigQuery-IAM-Berechtigungen erteilen. Weitere Informationen finden Sie unter Zugriff auf Datasets steuern und Zugriff auf Tabellen und Ansichten steuern.

Damit Nutzer keine Aktionen ausführen können, während sie die Anmeldedaten für das Google-Konto eines anderen Nutzers verwenden, gelten die folgenden Einschränkungen:

  • Wenn Sie eine Workflowkonfiguration mit den Nutzeranmeldedaten eines anderen Google-Kontos ändern möchten, müssen Sie die Nutzeranmeldedaten für Ihr eigenes Google-Konto an die Workflowkonfiguration anhängen oder die Workflowkonfiguration so ändern, dass die Authentifizierung mit einem benutzerdefinierten Dienstkonto erfolgt.
  • Sie können ein Kompilierungsergebnis für eine Release-Konfiguration nicht ändern, wenn Workflow-Konfigurationen auf die Release-Konfiguration verweisen, an die die Anmeldedaten eines anderen Google-Kontonutzers angehängt sind.
  • Sie können keine Workflow-Konfiguration festlegen, die sich mit Nutzeranmeldedaten für Google-Konten authentifiziert und auf eine Release-Konfiguration mit einem Zeitplan verweist. Diese Einschränkung hat folgende Konsequenzen:

    • Sie können eine Releasekonfiguration nicht so aktualisieren, dass ein Zeitplan verwendet wird, wenn Workflowkonfigurationen, die auf die Releasekonfiguration verweisen, für die Authentifizierung mit Google-Konto-Nutzeranmeldedaten festgelegt sind.
    • Sie können keine Workflowkonfiguration erstellen, die sich mit Google-Konto-Nutzeranmeldedaten authentifiziert und auf eine Releasekonfiguration mit einem Zeitplan verweist.
    • Sie können keine Workflowkonfiguration erstellen oder aktualisieren, die Nutzeranmeldedaten für Google-Konten verwendet und auf eine Releasekonfiguration mit einem Zeitplan verweist.

Erforderliche BigQuery-Rollen zuweisen

So weisen Sie Ihrem Dataform-Dienst-Agent, einem benutzerdefinierten Dienstkonto, das Sie in Dataform verwenden möchten, oder dem Google-Konto eines Nutzers, das Sie zur Authentifizierung in Dataform verwenden möchten (Vorschau), die erforderlichen BigQuery-IAM-Rollen zu:

  1. Rufen Sie in der Google Cloud Console die Seite Dataform auf.

    Zu Dataform

  2. Wählen Sie ein Repository aus oder erstellen Sie eines.

  3. Rufen Sie in der Google Cloud Console die Seite IAM auf.

    IAM aufrufen

  4. Klicken Sie auf Zugriff gewähren.

  5. Geben Sie im Feld Neue Hauptkonten die Dienst-Agent-ID, die Dienstkonto-ID oder die E-Mail-Adresse des Google-Kontos des Nutzers ein (Vorschau).

  6. Wählen Sie in der Liste Rolle auswählen die Rolle BigQuery Job User aus.

  7. Klicken Sie auf Weitere Rolle hinzufügen und wählen Sie in der Liste Rolle auswählen die Rolle BigQuery-Datenbearbeiter aus.

  8. Klicken Sie auf Weitere Rolle hinzufügen und wählen Sie in der Liste Rolle auswählen die Rolle BigQuery Data Viewer aus.

  9. Klicken Sie auf Speichern.

Für automatische Workflows erforderliche Rollen zuweisen

Damit ein benutzerdefiniertes Dienstkonto in Dataform verwendet werden kann, muss der Dataform-Dienst-Agent darauf zugreifen können. So kann Dataform Ihre Workflows mit den Berechtigungen ausführen, die für Ihr benutzerdefiniertes Dienstkonto und nicht für das Konto des Dienst-Agents definiert sind.

Um diesen Zugriff zu gewähren, müssen Sie dem Dataform-Dienst-Agenten als Hauptkonto die Rolle „Ersteller von Dienstkonto-Tokens“ (roles/iam.serviceAccountTokenCreator) zuweisen. So kann der Dataform-Dienst-Agent die Identität des Dienstkontos übernehmen, indem er kurzlebige Anmeldedaten (Tokens) erstellt. Diese Tokens sind erforderlich, damit Dataform Workflows mit der Identität des benutzerdefinierten Dienstkontos ausführen kann.

Außerdem müssen Sie dem Dataform-Dienst-Agent die Rolle „Dienstkontonutzer“ (roles/iam.serviceAccountUser) zuweisen. Dadurch kann der Dataform-Dienst-Agent neue automatische Workflowausführungen für Workflowkonfigurationen starten, die vom benutzerdefinierten Dienstkonto ausgeführt werden.

So gewähren Sie dem Dataform-Dienst-Agent Zugriff auf ein benutzerdefiniertes Dienstkonto:

  1. Rufen Sie in der Google Cloud Console die Seite IAM > Dienstkonten auf.

    Zur Seite „Dienstkonten“

  2. Wählen Sie das Google Cloud Projekt aus, in dem sich Ihr benutzerdefiniertes Dienstkonto befindet.

  3. Wählen Sie auf der Seite Dienstkonten für das Projekt „PROJECT_NAME Ihr benutzerdefiniertes Dienstkonto aus.

  4. Rufen Sie Hauptkonten mit Zugriff auf und klicken Sie auf Zugriff gewähren.

  5. Geben Sie im Feld Neue Hauptkonten die ID Ihres Dataform-Dienst-Agents ein.

    Ihre Dataform-Dienst-Agent-ID hat das folgende Format:

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
  6. Wählen Sie in der Liste Rolle auswählen die Rolle Ersteller von Dienstkonto-Tokens und die Rolle Dienstkontonutzer aus.

  7. Klicken Sie auf Speichern.

Das benutzerdefinierte Dienstkonto kann jetzt in Ihrem Dataform-Repository konfiguriert werden.

Dienstkontokonfigurationen prüfen

In diesem Abschnitt erfahren Sie, wie Sie Ihre Dataform-Ressourcen prüfen, um die richtige Verwendung von Dienstkonten und die Erteilung von Berechtigungen sicherzustellen. Die Überwachung ist besonders wichtig, wenn benutzerdefinierte Dienstkonten verwendet werden, da für den Dataform-Dienst-Agent bestimmte Berechtigungen erforderlich sind.

Wenn Sie ein benutzerdefiniertes Dienstkonto für ein Dataform-Repository oder eine Workflowkonfiguration verwenden, müssen Sie prüfen, ob der Dataform-Dienst-Agent die Rolle Dienstkontonutzer (roles/iam.serviceAccountUser) für das benutzerdefinierte Dienstkonto hat. Diese Rolle gewährt die Berechtigung iam.serviceAccounts.actAs, mit der geplante Ausführungen, die vom Dataform-Dienst-Agent initiiert werden, die Identität des benutzerdefinierten Dienstkontos übernehmen können. Prüfen Sie außerdem, ob der Dataform-Dienst-Agent die Rolle Ersteller von Dienstkonto-Tokens (roles/iam.serviceAccountTokenCreator) für das effektive Dienstkonto hat.

Dienstkonten für Repositorys überprüfen

Identifizieren Sie zuerst die dataform.Repository-Assets, die für die eigene Planung und Ausführung von Dataform infrage kommen. Prüfen Sie dann die Dienstkontokonfigurationen für diese Repositorys.

  1. Verwenden Sie Cloud Asset Inventory, um alle Ressourcen des Typs dataform.Repository aufzulisten. Weitere Informationen

  2. Prüfen Sie für jedes Repository in der Cloud Asset Inventory-Ausgabe das Feld resource.data.labels, um festzustellen, ob es im Umfang enthalten ist. Der genaue Pfad kann je nach Exportformat leicht variieren.

  3. Nicht berücksichtigte Repositories lassen sich anhand des Schlüssels single-file-asset-type in der Label-Zuordnung identifizieren. Das Vorhandensein dieses Schlüssels weist darauf hin, dass das Repository von einem BigQuery-Feature verwendet wird. Wenn der Wert sql oder data_canvas ist, kann das Repository von den Berechtigungsprüfungen des Dienstkontos ausgeschlossen werden.

    Die verbleibenden Repositories, in denen dieser Schlüssel oder diese Werte fehlen, sind im Bereich der Berechtigungsprüfungen für Dienstkonten.

  4. Prüfen Sie für jedes Repository, das in den Anwendungsbereich fällt, das Feld resource.data.serviceAccount in der Ausgabe von Cloud Asset Inventory, um festzustellen, ob ein benutzerdefiniertes Dienstkonto konfiguriert ist:

    • Wenn das Feld resource.data.serviceAccount vorhanden ist und sein Wert sich von der E-Mail-Adresse des Dataform-Dienst-Agents des Projekts unterscheidet, wird im Repository ein benutzerdefiniertes Dienstkonto verwendet.
    • Wenn das Feld resource.data.serviceAccount fehlt oder der Wert des Felds mit dem Dataform-Dienstkonto des Projekts übereinstimmt, wird das Dienstkonto für das Repository verwendet.

  5. Wenn ein benutzerdefiniertes Dienstkonto verwendet wird, prüfen Sie, ob der Dataform-Dienst-Agent für dieses benutzerdefinierte Dienstkonto sowohl die Rolle „Dienstkontonutzer“ (roles/iam.serviceAccountUser) als auch die Rolle „Ersteller von Dienstkonto-Tokens“ (roles/iam.serviceAccountTokenCreator) hat.

Dienstkonten für die Workflowkonfiguration prüfen

Die Verwendung dedizierter benutzerdefinierter Dienstkonten für Dataform-Workflowkonfigurationen ist eine Best Practice für die Sicherheit, die dem Prinzip der geringsten Berechtigung entspricht.

So prüfen Sie die Verwendung von Dienstkonten für dataform.WorkflowConfig resources:

  1. Verwenden Sie Cloud Asset Inventory, um alle Ressourcen des Typs dataform.WorkflowConfig aufzulisten.

  2. Untersuchen Sie für jede Workflowkonfiguration die Cloud Asset Inventory-Ausgabe, um das effektive Dienstkonto zu ermitteln:

    • Wenn das Feld resource.data.serviceAccount vorhanden ist, ist dieser Wert die E-Mail-Adresse des Dienstkontos, das explizit in der Workflowkonfiguration festgelegt wurde.
    • Wenn das Feld resource.data.serviceAccount fehlt, übernimmt die Workflowkonfiguration das Dienstkonto aus dem übergeordneten Repository. Sehen Sie in der Konfiguration des übergeordneten Repositorys nach, um das effektive Dienstkonto zu ermitteln.
  3. Prüfen Sie, ob ein benutzerdefiniertes Dienstkonto verwendet wird, indem Sie die E-Mail-Adresse des effektiven Dienstkontos mit der E-Mail-Adresse des Dataform-Dienst-Agents des Projekts vergleichen. Wenn sie sich unterscheiden, wird ein benutzerdefiniertes Dienstkonto verwendet.

  4. Wenn ein benutzerdefiniertes Dienstkonto verwendet wird, muss dem Dataform-Dienst-Agenten für dieses benutzerdefinierte Dienstkonto sowohl die Rolle „Dienstkontonutzer“ (roles/iam.serviceAccountUser) als auch die Rolle „Ersteller von Dienstkonto-Tokens“ (roles/iam.serviceAccountTokenCreator) zugewiesen sein. Mit diesen Berechtigungen kann der Dataform-Dienst-Agent Workflow-Ausführungen starten, indem er die Identität des benutzerdefinierten Dienstkontos übernimmt.

Berechtigungen von Dienst-Agents mit Security Command Center überwachen

Um die Einhaltung des Prinzips der geringsten Berechtigung zu gewährleisten, sollten Sie Ihr Projekt in Security Command Center aktiv auf Ergebnisse im Zusammenhang mit Dienstkonten und Dienst-Agents mit zu vielen Berechtigungen überwachen.

Eine Anleitung zum Prüfen und Anwenden von Empfehlungen zur Fehlerbehebung in Security Command Center finden Sie unter IAM Recommender-Ergebnisse und Identitätsergebnisse in der Console untersuchen.

Wenn Sie einen SERVICE_AGENT_GRANTED_BASIC_ROLE-Befund für einen Dataform-Dienst-Agent beheben, ersetzen Sie die Rolle mit den nicht erforderlichen Berechtigungen durch eine vordefinierte Rolle mit den minimal erforderlichen Berechtigungen, die auf die jeweilige Ressource beschränkt sind. Weisen Sie beispielsweise die Rolle „Dienstkontonutzer“ (roles/iam.serviceAccountUser) für ein bestimmtes Dienstkonto zu.

Zugriff auf Dataform mit IAM steuern

In diesem Abschnitt werden die Optionen zur Zugriffssteuerung für Dataform beschrieben. Außerdem erfahren Sie, wie Sie Dataform-Rollen aufrufen und zuweisen. Dataform verwendet Identity and Access Management (IAM) für die Zugriffssteuerung. Weitere Informationen zu Rollen und Berechtigungen in IAM finden Sie im Index für IAM-Rollen und -Berechtigungen.

Vordefinierte Dataform-Rollen

In der folgenden Tabelle sind die vordefinierten Rollen aufgeführt, die den Zugriff auf Dataform-Ressourcen ermöglichen:

Role Permissions

(roles/dataform.admin)

Full access to all Dataform resources.

dataform.*

  • dataform.commentThreads.create
  • dataform.commentThreads.delete
  • dataform.commentThreads.get
  • dataform.commentThreads.list
  • dataform.commentThreads.update
  • dataform.comments.create
  • dataform.comments.delete
  • dataform.comments.get
  • dataform.comments.list
  • dataform.comments.update
  • dataform.compilationResults.create
  • dataform.compilationResults.get
  • dataform.compilationResults.list
  • dataform.compilationResults.query
  • dataform.config.get
  • dataform.config.update
  • dataform.folders.addContents
  • dataform.folders.create
  • dataform.folders.delete
  • dataform.folders.deleteTree
  • dataform.folders.get
  • dataform.folders.getIamPolicy
  • dataform.folders.move
  • dataform.folders.queryContents
  • dataform.folders.setIamPolicy
  • dataform.folders.update
  • dataform.locations.get
  • dataform.locations.list
  • dataform.operations.cancel
  • dataform.operations.delete
  • dataform.operations.get
  • dataform.operations.list
  • dataform.releaseConfigs.create
  • dataform.releaseConfigs.delete
  • dataform.releaseConfigs.get
  • dataform.releaseConfigs.list
  • dataform.releaseConfigs.update
  • dataform.repositories.commit
  • dataform.repositories.computeAccessTokenStatus
  • dataform.repositories.create
  • dataform.repositories.delete
  • dataform.repositories.fetchHistory
  • dataform.repositories.fetchRemoteBranches
  • dataform.repositories.get
  • dataform.repositories.getIamPolicy
  • dataform.repositories.list
  • dataform.repositories.move
  • dataform.repositories.queryDirectoryContents
  • dataform.repositories.readFile
  • dataform.repositories.scheduleRelease
  • dataform.repositories.scheduleWorkflow
  • dataform.repositories.setIamPolicy
  • dataform.repositories.update
  • dataform.teamFolders.create
  • dataform.teamFolders.delete
  • dataform.teamFolders.deleteTree
  • dataform.teamFolders.get
  • dataform.teamFolders.getIamPolicy
  • dataform.teamFolders.setIamPolicy
  • dataform.teamFolders.update
  • dataform.workflowConfigs.create
  • dataform.workflowConfigs.delete
  • dataform.workflowConfigs.get
  • dataform.workflowConfigs.list
  • dataform.workflowConfigs.update
  • dataform.workflowInvocations.cancel
  • dataform.workflowInvocations.create
  • dataform.workflowInvocations.delete
  • dataform.workflowInvocations.get
  • dataform.workflowInvocations.list
  • dataform.workflowInvocations.query
  • dataform.workspaces.commit
  • dataform.workspaces.create
  • dataform.workspaces.delete
  • dataform.workspaces.fetchFileDiff
  • dataform.workspaces.fetchFileGitStatuses
  • dataform.workspaces.fetchGitAheadBehind
  • dataform.workspaces.get
  • dataform.workspaces.getIamPolicy
  • dataform.workspaces.installNpmPackages
  • dataform.workspaces.list
  • dataform.workspaces.makeDirectory
  • dataform.workspaces.moveDirectory
  • dataform.workspaces.moveFile
  • dataform.workspaces.pull
  • dataform.workspaces.push
  • dataform.workspaces.queryDirectoryContents
  • dataform.workspaces.readFile
  • dataform.workspaces.removeDirectory
  • dataform.workspaces.removeFile
  • dataform.workspaces.reset
  • dataform.workspaces.searchFiles
  • dataform.workspaces.setIamPolicy
  • dataform.workspaces.writeFile

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataform.editor)

Edit access to Workspaces and Read-only access to Repositories.

dataform.commentThreads.get

dataform.commentThreads.list

dataform.comments.get

dataform.comments.list

dataform.compilationResults.*

  • dataform.compilationResults.create
  • dataform.compilationResults.get
  • dataform.compilationResults.list
  • dataform.compilationResults.query

dataform.config.get

dataform.folders.get

dataform.folders.getIamPolicy

dataform.folders.queryContents

dataform.locations.*

  • dataform.locations.get
  • dataform.locations.list

dataform.operations.get

dataform.operations.list

dataform.releaseConfigs.get

dataform.releaseConfigs.list

dataform.repositories.computeAccessTokenStatus

dataform.repositories.fetchHistory

dataform.repositories.fetchRemoteBranches

dataform.repositories.get

dataform.repositories.getIamPolicy

dataform.repositories.list

dataform.repositories.queryDirectoryContents

dataform.repositories.readFile

dataform.teamFolders.get

dataform.teamFolders.getIamPolicy

dataform.workflowConfigs.get

dataform.workflowConfigs.list

dataform.workflowInvocations.*

  • dataform.workflowInvocations.cancel
  • dataform.workflowInvocations.create
  • dataform.workflowInvocations.delete
  • dataform.workflowInvocations.get
  • dataform.workflowInvocations.list
  • dataform.workflowInvocations.query

dataform.workspaces.commit

dataform.workspaces.create

dataform.workspaces.delete

dataform.workspaces.fetchFileDiff

dataform.workspaces.fetchFileGitStatuses

dataform.workspaces.fetchGitAheadBehind

dataform.workspaces.get

dataform.workspaces.getIamPolicy

dataform.workspaces.installNpmPackages

dataform.workspaces.list

dataform.workspaces.makeDirectory

dataform.workspaces.moveDirectory

dataform.workspaces.moveFile

dataform.workspaces.pull

dataform.workspaces.push

dataform.workspaces.queryDirectoryContents

dataform.workspaces.readFile

dataform.workspaces.removeDirectory

dataform.workspaces.removeFile

dataform.workspaces.reset

dataform.workspaces.searchFiles

dataform.workspaces.writeFile

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataform.viewer)

Read-only access to all Dataform resources.

dataform.commentThreads.get

dataform.commentThreads.list

dataform.comments.get

dataform.comments.list

dataform.compilationResults.get

dataform.compilationResults.list

dataform.compilationResults.query

dataform.config.get

dataform.folders.get

dataform.folders.getIamPolicy

dataform.folders.queryContents

dataform.locations.*

  • dataform.locations.get
  • dataform.locations.list

dataform.operations.get

dataform.operations.list

dataform.releaseConfigs.get

dataform.releaseConfigs.list

dataform.repositories.computeAccessTokenStatus

dataform.repositories.fetchHistory

dataform.repositories.fetchRemoteBranches

dataform.repositories.get

dataform.repositories.getIamPolicy

dataform.repositories.list

dataform.repositories.queryDirectoryContents

dataform.repositories.readFile

dataform.teamFolders.get

dataform.teamFolders.getIamPolicy

dataform.workflowConfigs.get

dataform.workflowConfigs.list

dataform.workflowInvocations.get

dataform.workflowInvocations.list

dataform.workflowInvocations.query

dataform.workspaces.fetchFileDiff

dataform.workspaces.fetchFileGitStatuses

dataform.workspaces.fetchGitAheadBehind

dataform.workspaces.get

dataform.workspaces.getIamPolicy

dataform.workspaces.list

dataform.workspaces.queryDirectoryContents

dataform.workspaces.readFile

dataform.workspaces.searchFiles

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataform.codeCommenter)

Permissions to comment, at the repository level. Grants CRUD access over commentThread and comment resources.

dataform.commentThreads.*

  • dataform.commentThreads.create
  • dataform.commentThreads.delete
  • dataform.commentThreads.get
  • dataform.commentThreads.list
  • dataform.commentThreads.update

dataform.comments.*

  • dataform.comments.create
  • dataform.comments.delete
  • dataform.comments.get
  • dataform.comments.list
  • dataform.comments.update

dataform.folders.get

dataform.folders.queryContents

dataform.locations.get

dataform.repositories.get

dataform.repositories.readFile

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataform.codeCreator)

Access only to private and shared code resources. The permissions in the Code Creator let you create and list code in Dataform, and access only the code that you created and code that was explicitly shared with you.

dataform.commentThreads.get

dataform.commentThreads.list

dataform.comments.get

dataform.comments.list

dataform.folders.create

dataform.locations.*

  • dataform.locations.get
  • dataform.locations.list

dataform.repositories.create

dataform.repositories.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/dataform.codeEditor)

Edit access code resources.

dataform.commentThreads.*

  • dataform.commentThreads.create
  • dataform.commentThreads.delete
  • dataform.commentThreads.get
  • dataform.commentThreads.list
  • dataform.commentThreads.update

dataform.comments.*

  • dataform.comments.create
  • dataform.comments.delete
  • dataform.comments.get
  • dataform.comments.list
  • dataform.comments.update

dataform.compilationResults.*

  • dataform.compilationResults.create
  • dataform.compilationResults.get
  • dataform.compilationResults.list
  • dataform.compilationResults.query

dataform.folders.addContents

dataform.folders.create

dataform.folders.get

dataform.folders.getIamPolicy

dataform.folders.queryContents

dataform.locations.*

  • dataform.locations.get