Blog

Wie man mit Berglas Geheimnisse in Google Cloud Platform speichert

Mark van Holsteijn

Aktualisiert Oktober 21, 2025
3 Minuten

In diesem Blog zeigen wir Ihnen, wie Sie mit Berglas Geheimnisse in Google Cloud Platform speichern können. Berglas kombiniert
die Funktionen von Google Cloud Storage, Google Key Management Service und Google Identity and Access Management, um einen geheimen Speicher zu erstellen.
Er speichert Geheimnisse sicher und benötigt eine explizite Autorisierung, um auf sie zuzugreifen. Google Cloud Platform protokolliert jeden Zugriff auf die Geheimnisse im Audit Trail.
Nach dem Download und der Installation von Berglas beginnen Sie mit der Erstellung eines geheimen Speichers.

Einen geheimen Speicher erstellen

Um einen geheimen Speicher in Ihrem GCP-Projekt zu erstellen, geben Sie ein:

berglas bootstrap 
           --project ${PROJECT_ID} 
           --bucket ${BUCKET_ID}

Dadurch wird der Bucket erstellt, in dem die Geheimnisse gespeichert werden, sowie ein KMS-Schlüssel, um sie zu verschlüsseln. Der Name des Schlüssels lautet berglas-key. Der Bucket wird versioniert und der Zugriff für Projektbearbeiter und -betrachter wird gesperrt. Jetzt können Sie ein Geheimnis hinzufügen.

Hinzufügen eines Geheimnisses

Um ein Geheimnis zum Speicher hinzuzufügen, geben Sie ein:

berglas create 
 ${BUCKET_ID}/oracle/scott/password tiger 
     --key projects/${PROJECT_ID}/locations/global/keyRings/berglas/cryptoKeys/berglas-key

Um den Inhalt anzuzeigen, geben Sie ein:

$ berglas access ${BUCKET_ID}/oracle/scott/password
tiger

Das Geheimnis ist noch für niemanden zugänglich.

Zugang gewähren

Um Zugriff zu gewähren, geben Sie ein:

$ berglas grant 
 ${BUCKET_ID}/oracle/scott/password 
 --member domain:binx.io
Successfully granted permission on [oracle/scott/password] to: 
- domain:binx.io

Sie können jeder authentifizierten Identität von Google IAM Zugriff auf dieses Geheimnis gewähren.
Um zu sehen, wer Lesezugriff erhalten hat, geben Sie ein:

$ gsutil acl get gs://${BUCKET_ID}/oracle/scott/password
[
  {
    "email": "markvanholsteijn@binx.io",
    "entity": "user-markvanholsteijn@binx.io",
    "role": "OWNER"
  },
  {
    "domain": "binx.io",
    "entity": "domain-binx.io",
    "role": "READER"
  }
]

Der Befehl grant bindet auch die Entschlüsselungsrolle an die Domäne auf dem KMS-Schlüssel:

$ gcloud kms keys get-iam-policy berglas-key 
 --location global --keyring berglas
bindings:
- members:
  - domain:binx.io
  role: roles/cloudkms.cryptoKeyDecrypter
etag: BwWPi725v10=
version: 1

Jetzt kann also jeder in der Domäne binx.io das Objekt lesen und seinen Inhalt entschlüsseln. Wenn
jemand aus der Domäne binx.io das Geheimnis gelesen hat, protokolliert GCS dies im Prüfprotokoll.

Den Prüfpfad anzeigen

Um zu sehen, wer auf Ihre Geheimnisse zugegriffen hat, können Sie das Protokoll der Datenzugriffe einsehen:

$ gcloud logging read projects/${PROJECT_ID}/logs/cloudaudit.googleapis.com%2Fdata_access
---
insertId: ezqliye5onps
logName: projects/******-***/logs/cloudaudit.googleapis.com%2Fdata_access
protoPayload:
  '@type': type.googleapis.com/google.cloud.audit.AuditLog
  authenticationInfo:
    principalEmail: markvanholsteijn@binx.io
  authorizationInfo:
  - granted: true
    permission: storage.objects.get
    resource: projects/_/buckets/******-***-secrets/objects/oracle/scott/password
    resourceAttributes: {}
  - granted: true
    permission: storage.objects.getIamPolicy
    resource: projects/_/buckets/******-***-secrets/objects/oracle/scott/password
    resourceAttributes: {}
  methodName: storage.objects.get
  requestMetadata:
    callerIp: ****:***:***f:*:****:d***:****:d***
    callerSuppliedUserAgent: berglas/0.2.0 (+https://github.com/GoogleCloudPlatform/berglas),gzip(gfe)
    destinationAttributes: {}
    requestAttributes: {}
  resourceLocation:
    currentLocations:
    - us
  resourceName: projects/_/buckets/******-***-secrets/objects/oracle/scott/password
  serviceName: storage.googleapis.com
  status: {}
receiveTimestamp: '2019-08-07T19:28:14.495129561Z'

Um von einer Anwendung aus auf das Geheimnis zuzugreifen, bietet berglas verschiedene Integrationen an.

Anwendungsintegrationen

Berglas bietet eine einfache Integration für Anwendungen in App Engine, Cloud Run,
Cloud Functions, Cloud Build und Kubernetes. Wir empfehlen einen Blick auf die
verschiedenen Beispiele für Berglas-Integrationen

Fazit

Wie Sie gesehen haben, kombiniert Berglas
die Funktionen von Google Cloud Storage, Google Key Management Service und Google Identity and Access Management, um einen geheimen Speicher zu erstellen.
Er speichert Geheimnisse sicher und benötigt eine ausdrückliche Autorisierung, um auf sie zuzugreifen. Google Cloud Platform protokolliert jeden Zugriff auf die Geheimnisse im Audit Trail.

Verfasst von

Mark van Holsteijn

Mark van Holsteijn is a senior software systems architect at Xebia Cloud-native solutions. He is passionate about removing waste in the software delivery process and keeping things clear and simple.

Contact

Let’s discuss how we can support your journey.