Google Key Management (GCP KMS) : Aan de slag Gids

Het beveiligen van gegevens is een topprioriteit voor elke organisatie, en encryptie is een van de meest effectieve manieren om gegevens te beschermen. Maar hoe precies? Google Cloud Platform (GCP) biedt een sleutelbeheerservice genaamd Google Key Management Service (KMS), waarmee je snel encryptiesleutels kunt maken en beheren.

In deze handleiding leer je hoe je een sleutel kunt maken en gebruiken in GCP KMS. Je gaat ook door enkele belangrijke concepten met betrekking tot sleutelbeheer, zoals sleutels, sleutelringen en sleutelversies.

Klaar? Lees verder en breng je gegevensbeveiliging naar een hoger niveau!

Vereisten

Deze handleiding zal een praktische demonstratie zijn. Zorg ervoor dat je een GCP-account hebt met actieve facturering om mee te doen, maar een gratis proefversie zou voldoende zijn.

A Google Cloud Project is a collection of resources you create and manage in GCP. Note that you should create separate projects for each of your applications. Doing so lets you efficiently manage the resources for each application. In the end, you can delete all the resources associated with a project, which is helpful for clean-up.

Om een nieuw Google Cloud-project te maken:

1. Open je favoriete webbrowser en log in op de GCP Console. Net als de AWS-console is de GCP-console een op web gebaseerde interface voor het beheren van je resources in Google Cloud.

2. Navigeer op je GCP-console naar de pagina Resources beheren, waar je al je bestaande projecten kunt zien en beheren.

3. Klik vervolgens op de knop PROJECT MAKEN om een nieuw project te maken.

Creating a new Google Cloud project

Tenslotte, configureer de volgende instellingen voor je nieuwe project en klik op MAKEN om je project te maken.

  • Projectnaam – Voer een naam in voor je project, die niet uniek hoeft te zijn en later kan worden gewijzigd. De keuze van deze tutorial voor de projectnaam is gcp-kms-demo.

  • Locatie – Selecteer de hoofdorganisatie of map waarin je dit project wilt maken. Je nieuw gecreëerde project zal de bovenliggende ouder zijn. Maar je kunt dit veld overslaan als je geen organisatie hebt.

Het Locatieveld verschijnt mogelijk niet als je een proefaccount gebruikt.

Configuring a new Google Cloud project

Als het gelukt is, zie je je nieuw gecreëerde Google Cloud-project vermeld, zoals hieronder weergegeven.

Viewing the newly-created Google Cloud project

Het inschakelen van de Cloud KMS API voor het Google Cloud-project

Je hebt zojuist je eerste, als het gelukt is, zie je je nieuw gecreëerde Google Cloud-project vermeld zoals hieronder weergegeven, Cloud-project gemaakt, en meestal kun je het niet onbeschermd laten. Maak je geen zorgen! De Cloud KMS API is een set door Google geleverde versleutelings-API’s die je kunt gebruiken om je gegevens te beschermen.

Om de Cloud KMS API te gebruiken, moet je deze inschakelen voor je project:

1. Ga naar de pagina van de Google Project Selector, en selecteer je Google Cloud-project (gcp-kms-demo).

Selecting a project

2. Ga vervolgens naar de pagina API-toegang inschakelen, en klik op VOLGENDE om de API in te schakelen voor het geselecteerde project.

Confirming the selected Google Cloud project

3. Klik nu op INSCHAKELEN om de Cloud KMS API in te schakelen.

Enabling the Cloud KMS API

Op dit moment is de Cloud KMS API ingeschakeld voor uw project. U kunt nu beginnen met het gebruik van de Cloud KMS API om versleutelingssleutels te maken en beheren.

Verifying the Cloud KMS API is enabled

Het starten van de Cloud Shell om sleutels en sleutelringen te maken

Het inschakelen van de Cloud KMS API bereidt u voor om sleutels en sleutelringen te maken om uw gegevens te versleutelen en ontsleutelen. Sleutels en sleutelringen zijn de fundamentele concepten in Cloud KMS.

Key A key is an encryption key stored in a keyring that you can use to encrypt and decrypt your data. Each key has a name, and the name must be unique within the keyring. You can use IAM ( Identity and Access Management) policies to control who has access to keys.
Keyring A keyring is a container in Cloud KMS that holds a set of keys. You can think of the keyring as a folder on your computer that contains many files. But in essence, a keyring holds a set of keys in a specific Cloud KMS location.

Maar voordat u sleutels en sleutelringen maakt, moet u eerst de Cloud Shell starten. De Cloud Shell is een gratis interactieve shell die u kunt gebruiken om commando’s uit te voeren op het Google Cloud Platform zonder dat u tools op uw machine hoeft te installeren.

1. Klik in de GCP-console op de knop Cloud Shell activeren (rechtsboven), zoals hieronder weergegeven, om de Cloud Shell te starten.

Starting the Cloud Shell

A Cloud Shell session initializes, as shown below (at the bottom of the page), where you can run commands.

Viewing the Cloud Shell prompt

2. Voer vervolgens de volgende gcloud-opdracht uit. Dit venster verschijnt de eerste keer dat u de gcloud-opdracht uitvoert in de Cloud Shell en vraagt u om de gcloud-tool machtiging te verlenen om toegang te krijgen tot de KSM API.in de Cloud Shell om een nieuwe sleutelring (keyring) met de naam kms-demo-keyring in de wereldwijde locatie te maken.

gcloud kms keyrings create "kms-demo-keyring" \
--location "global"

–locatie “global”

Wanneer gevraagd, klik op AUTORISEREN om door te gaan met het uitvoeren van de opdracht.

Authorizing access to the KSM API

Deze prompt verschijnt de eerste keer dat je het gcloud-commando uitvoert in de Cloud Shell en vraagt je om de gcloud-tool te autoriseren om toegang te krijgen tot de KSM API.

Creating a new keyring

Zoals hieronder wordt getoond, zijn er geen uitvoerberichten wanneer de keyring succesvol is aangemaakt.

Gerelateerd:Gebruik Encryption Keys als een Professional met AWS Key Management

gcloud kms keys create "kms-demo-key01" \
  --location "global" \
  --keyring "kms-demo-keyring" \
  --purpose "encryption"

Merk op dat de locatie (global) hetzelfde moet zijn als wat je hebt ingesteld voor de keyring.

–location “global” \

–keyring “kms-demo-keyring” \

Creating a key for encryption

–purpose “encryption”

gcloud kms keys list --location "global" --keyring "kms-demo-keyring"

Elke keer dat je een sleutel maakt of roteert, maakt Cloud KMS een nieuwe versie van de sleutel. Deze functie stelt je in staat om eenvoudig terug te gaan naar een vorige versie indien nodig.

PURPOSE ENCRYPT_DECRYPT Indicates the purpose of the key (encryption and decryption).
ALGORITHM GOOGLE_SYMMETRIC_ENCRYPTION Indicates the key uses Google Symmetric Encryption, the default algorithm for Cloud KMS keys.
PROTECTION_LEVEL SOFTWARE Indicates the key is software-protected.
LABELS You can add labels to keys to categorize them or to add additional information.
PRIMARY ID 1 Indicates the key is the primary key for the keyring, which is what Cloud KMS uses by default when you do not specify a key.

Note that you can have only one primary key per keyring.

PRIMARY STATE ENABLED Shows the current status of the key. The ENABLED state indicates the key can be used for its specified purpose.
Listing the keys in a keyring

Net als bij het maken van een keyring zijn er geen uitvoerberichten wanneer de sleutel succesvol is aangemaakt.

Maar op dit punt heb je een keyring en een sleutel die je kunt gebruiken om je gegevens te versleutelen en ontsleutelen.

4. Voer nu het volgende commando uit om de sleutels in een –keyring (kms-demo-keyring) op te lijsten.

Je zult een uitvoer zien die vergelijkbaar is met de onderstaande schermafbeelding met de volgende informatie:

echo "This is some sensitive data that I want to encrypt." > gcp-kms-demo.txt

Gegevens versleutelen en ontsleutelen met GCP KMS

Versleuteling is een cruciale verdedigingslijn om de toegang van kwaadwillende partijen tot gevoelige gegevens te ontmoedigen. En nu je een versleutelingssleutel hebt, kun je deze gebruiken om je gegevens te versleutelen.
ls cat gcp-kms-demo.txt
Om gegevens te versleutelen met GCP KMS:
cat gcp-kms-demo.txt
Listing the text file and verifying the data

1. Voer de onderstaande opdracht uit, die geen uitvoer geeft, maar een tekstbestand (gcp-kms-demo.txt) met enkele teksten maakt om te versleutelen.

2. Voer vervolgens elke opdracht hieronder uit om het tekstbestand (gcp-kms-demo.txt) op te sommen (ls) en de inhoud te bekijken (cat) om de gegevens te verifiëren.

gcloud kms encrypt \
    --location "global" \
    --keyring "kms-demo-keyring" \
    --key "kms-demo-key01" \
    --plaintext-file ./gcp-kms-demo.txt \
    --ciphertext-file ./gcp-kms-demo.txt.encrypted
Encrypting data

# Lijst het tekstbestand op

cat gcp-kms-demo.txt.encrypted

# Bekijk de inhoud van het tekstbestand

3. Zodra geverifieerd, voer de onderstaande opdracht uit om de gegevens in je bestand (gcp-kms-demo.txt) te versleutelen met je sleutel (kms-demo-key01). De versleutelde gegevens worden vervolgens opgeslagen in een nieuw bestand genaamd gcp-kms-demo.txt.encrypted.

Verifying the file data is encrypted

–location “global” \

–keyring “kms-demo-keyring” \

gcloud kms decrypt \
  --location "global" \
  --keyring "kms-demo-keyring" \
  --key "kms-demo-key01" \
  --ciphertext-file ./gcp-kms-demo.txt.encrypted \
  --plaintext-file ./gcp-kms-demo.txt.decrypted
Decrypting encrypted data

–key “kms-demo-key01” \

cat gcp-kms-demo.txt.decrypted

–plaintext-file ./gcp-kms-demo.txt \

Verifying the encrypted file has been decrypted

–ciphertext-file ./gcp-kms-demo.txt.encrypted

4. Voer nu het volgende commando uit om te proberen de gegevens van het versleutelde bestand te bekijken (gcp-kms-demo.txt.encrypted).

Je zult gebroken, vreemde en onleesbare symbolen zien, zoals hieronder getoond. Deze uitvoer geeft aan dat het bestand succesvol is versleuteld.

gcloud kms keys versions list \
  --location "global" \
  --keyring "kms-demo-keyring" \
  --key "kms-demo-key01"

Je moet dit versleutelde bestand opslaan op een veilige locatie. Je kunt bijvoorbeeld meerdere kopieën opslaan in AWS S3, GCP Cloud Storage of Azure Blob Storage. Google Cloud slaat de tekstversie van je gegevens niet op. Dus als je het versleutelde bestand kwijtraakt, is het onmogelijk om het bestand te decoderen om de oorspronkelijke gegevens terug te krijgen.

Listing all the key versions

Gerelateerd:Hoe bestanden uploaden naar S3 met de AWS CLI

5. Eenmaal versleuteld, voer het onderstaande commando uit om je gegevens (gcp-kms-demo.txt.encrypted) te decoderen met dezelfde sleutel (kms-demo-key01). Maar deze keer worden de gedecodeerde gegevens opgeslagen in een nieuw bestand genaamd gcp-kms-demo.txt.decrypted.

gcloud kms keys versions destroy 1\
  --location "global" \
  --keyring "kms-demo-keyring" \
  --key "kms-demo-key01"

Net als bij versleuteling geeft dit commando geen uitvoer, maar je zult de decodering verifiëren in de volgende stap.

gcloud kms keys versions list

–locatie “globaal” \

–sleutelring “kms-demo-sleutelring” \

Verifying the key has been scheduled for destruction

–sleutel “kms-demo-sleutel01” \

Deleting the Google Cloud project

–ciphertext-bestand ./gcp-kms-demo.txt.encrypted \

–plaintext-bestand ./gcp-kms-demo.txt.decrypted

Confirming Google Cloud project deletion

6. Voer tot slot het volgende commando uit om het gedecodeerde bestand (gcp-kms-demo.txt.decrypted) te bekijken (cat) en controleer of de gegevens succesvol zijn gedecodeerd.

Hieronder kunt u de oorspronkelijke gegevens zien die u hebt opgeslagen in het tekstbestand. Gefeliciteerd! U hebt succesvol gegevens versleuteld en gedecodeerd met behulp van Google Cloud KMS.

Google Cloud Resources Opruimen

Source:
https://adamtheautomator.com/gcp-kms/