# GCP verbinden

# GCP verbinden

Costfluent liest Google-Cloud-Kosten aus Ihrem BigQuery-Abrechnungsexport. Es erstellt für Ihre
Organisation ein Dienstkonto in seinem eigenen Google-Cloud-Projekt, und Sie gewähren diesem Konto
Lesezugriff auf das Export-Dataset. Es wird kein Schlüssel erstellt oder ausgetauscht, und in Ihrer
Cloud entsteht nichts außer dieser einen Freigabe.

Verbinden Sie ein Rechnungskonto, kein Projekt. Sein Export enthält bereits die Kosten aller
Projekte, die das Rechnungskonto bezahlt, sodass eine Verbindung alle abdeckt. Beim Verbinden werden
bis zu sechs zurückliegende Monate importiert, so weit der Export Daten enthält.

## Was Costfluent gewährt wird

**BigQuery Data Viewer** auf dem Export-Dataset, sonst nichts. Costfluent führt seine Abfragen in
seinem eigenen Projekt aus und bezahlt sie dort. Es braucht daher keine Rolle in Ihrem Projekt und
kann weder andere Datasets sehen noch Jobs auf Ihre Rechnung ausführen oder etwas ändern.

## Den Export vorbereiten

1. Wählen Sie ein Projekt für die Abrechnungsdaten. Ein eigenes Projekt hält den Zugriff eng.
2. Erstellen Sie ein BigQuery-Dataset in der Multi-Region **US** oder **EU**.
3. Aktivieren Sie unter **Abrechnung**, dann **Abrechnungsexport**, den Export **Detaillierte
   Nutzungskosten** in dieses Dataset. Dem Standardexport fehlen die Felder pro Ressource, die
   Costfluent liest. Google kann einige Stunden brauchen, bis die ersten Zeilen geschrieben sind.

## Das Dataset freigeben

Öffnen Sie **Einstellungen**, dann **Integrationen**, wählen Sie **Google Cloud Platform** und dann
**Add Billing Account**. Costfluent zeigt das Dienstkonto, das es für Ihre Organisation erstellt hat,
mit einer Schaltfläche zum Kopieren. Die E-Mail-Adresse ist bei jedem Öffnen des Dialogs dieselbe.

Gewähren Sie dieser Adresse in den Freigabeeinstellungen des Datasets die Rolle **BigQuery Data
Viewer**. Beschränkt Ihre Organisation Freigaben auf bekannte Domains, erlauben Sie zuerst die
Organisations-ID und die Kunden-ID, die Costfluent neben der Adresse anzeigt.

Das veröffentlichte Terraform-Modul erstellt dieselbe Freigabe:

```hcl
module "costfluent" {
  source  = "costfluent/cost-access/gcp"
  version = "~> 0.2"

  project_id                       = "<Projekt mit dem Export>"
  billing_dataset_id               = "<Export-Dataset>"
  billing_account_id               = "<Rechnungskonto-ID>"
  costfluent_service_account_email = "<die Adresse aus Add Billing Account>"
}
```

Mit dem Costfluent-Terraform-Provider liefert die Ressource `costfluent_gcp_service_account` dieselbe
Adresse, sodass die ganze Verbindung im Code leben kann.

## Die Verbindung hinzufügen

Geben Sie im selben Dialog die Rechnungskonto-ID (`012345-ABCDEF-678901`), die Projekt-ID und den
Dataset-Namen ein, dann **Test Connection** oder **Connect**. Costfluent prüft die Abfrage, die es
ausführen wird, bevor es etwas speichert. Eine Verbindung, die sich speichern lässt, kann also Ihre
Kosten lesen.

Fehlt die Freigabe, meldet der Test, dass das Dataset noch nicht für das Dienstkonto freigegeben
ist. Eine neue Freigabe kann einige Minuten brauchen, versuchen Sie es also kurz danach erneut. Ein
Dataset ohne Exporttabelle erhält eine eigene Meldung: Google hat die ersten Zeilen noch nicht
geschrieben.

## Nach dem Verbinden

Der Tab **Verwalten** listet die Verbindung mit Rechnungskonto-ID, Projekt und Dataset. Über das
Zahnradsymbol daneben sehen Sie, ob das Dataset noch lesbar ist, welche Workspaces die Verbindung
speist und welche Abrechnungsmonate importiert wurden.

**Prüfungen ausführen** auf der Verbindungsseite führt die Prüfungen auf Anfrage erneut aus und
meldet jede einzeln, sodass ein Fehler den fehlgeschlagenen Schritt benennt.

## Zugriff rotieren oder entfernen

Es gibt keinen Schlüssel zu rotieren. Um die Verbindung aufzugeben, entfernen Sie sie in Costfluent
und entziehen dem Dienstkonto die Freigabe auf dem Dataset. Wird eine Costfluent-Organisation
gelöscht, wird ihr Dienstkonto mit gelöscht.
