Blog
Wie man mit Berglas Geheimnisse in Google Cloud Platform speichert

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.
Unsere Ideen
Weitere Blogs
Contact



