إدارة مفتاح Google (GCP KMS): دليل البداية

تأمين البيانات هو أحد أولويات أي منظمة، والتشفير هو واحد من أكثر الطرق فعالية لحماية البيانات. ولكن كيف بالضبط؟ توفر منصة Google Cloud Platform (GCP) خدمة إدارة مفاتيح تسمى خدمة إدارة مفاتيح Google (KMS)، التي تتيح لك إنشاء وإدارة مفاتيح التشفير بسرعة.

في هذا البرنامج التعليمي، ستتعلم كيفية إنشاء واستخدام مفتاح في خدمة GCP KMS. كما ستتناول بعض المفاهيم الهامة المتعلقة بإدارة المفاتيح، مثل المفاتيح وحلقات المفاتيح وإصدارات المفاتيح.

هل أنت جاهز؟ استمر في القراءة، وقم برفع أمان بياناتك إلى المستوى التالي!

الشروط المسبقة

سيكون هذا البرنامج التعليمي عرضًا عمليًا. لمتابعة الخطوات، تأكد من أن لديك حساب GCP مع فوترة نشطة، ولكن يمكنك استخدام الفترة التجريبية المجانية.

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.

لإنشاء مشروع جديد على Google Cloud:

1. افتح متصفح الويب المفضل لديك وسجل الدخول إلى واجهة تحكم GCP. مثل واجهة تحكم AWS، واجهة تحكم GCP هي واجهة مبنية على الويب لإدارة الموارد الخاصة بك في Google Cloud.

2. انتقل إلى صفحة إدارة الموارد على واجهة تحكم GCP الخاصة بك، حيث يمكنك رؤية وإدارة جميع المشاريع الحالية.

3. بعد ذلك، انقر فوق زر إنشاء المشروع لإنشاء مشروع جديد.

Creating a new Google Cloud project

وأخيرًا، قم بتكوين الإعدادات التالية لمشروعك الجديد، وانقر على إنشاء لإنشاء مشروعك.

  • اسم المشروع – أدخل اسمًا لمشروعك، والذي لا يلزم أن يكون فريدًا، ويمكن تغييره لاحقًا. اختيار هذا البرنامج التعليمي لاسم المشروع هو gcp-kms-demo.

  • الموقع – حدد المؤسسة الأم أو المجلد الذي ترغب في إنشاء هذا المشروع فيه. سيكون مشروعك الجديد الذي تم إنشاؤه في الأعلى. ولكن يمكنك تخطي هذا الحقل إذا لم يكن لديك مؤسسة.

قد لا يظهر حقل الموقع إذا كنت تستخدم حساب تجريبي.

Configuring a new Google Cloud project

إذا نجحت العملية، سترى مشروع Google Cloud الذي تم إنشاؤه حديثًا مدرجًا، كما هو موضح أدناه.

Viewing the newly-created Google Cloud project

تمكين واجهة برمجة تطبيقات Cloud KMS لمشروع Google Cloud

لقد قمت للتو بإنشاء مشروعك الأول في Google Cloud، وعادةً ما لا يمكنك تركه غير محمي. لا داعي للقلق! واجهة برمجة تطبيقات Cloud KMS هي مجموعة من واجهات برمجة التطبيقات المشفرة التي يمكنك استخدامها لحماية بياناتك.

لاستخدام واجهة برمجة تطبيقات Cloud KMS، يجب تمكينها لمشروعك:

1. انتقل إلى صفحة مُحدد المشروع في Google وحدد مشروع Google Cloud الخاص بك (gcp-kms-demo).

Selecting a project

2. بعد ذلك، انتقل إلى صفحة تمكين الوصول إلى واجهة برمجة التطبيقات وانقر على التالي لتأكيد تمكين واجهة برمجة التطبيقات للمشروع المحدد.

Confirming the selected Google Cloud project

3. الآن، انقر فوق تمكين لتمكين واجهة برمجة تطبيقات Cloud KMS.

Enabling the Cloud KMS API

في هذه النقطة، تم تمكين واجهة برمجة التطبيقات لخدمة Cloud KMS لمشروعك. يمكنك الآن البدء في استخدام واجهة برمجة التطبيقات لـ Cloud KMS لإنشاء وإدارة مفاتيح التشفير.

Verifying the Cloud KMS API is enabled

بدء Cloud Shell لإنشاء مفاتيح وحلقات المفاتيح

يعد تمكين واجهة برمجة التطبيقات لـ Cloud KMS استعدادًا لك لإنشاء مفاتيح وحلقات مفاتيح لتشفير وفك تشفير بياناتك. المفاتيح وحلقات المفاتيح هي المفاهيم الأساسية في خدمة 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.

ولكن قبل إنشاء مفاتيح وحلقات مفاتيح، يجب عليك أولاً بدء Cloud Shell. Cloud Shell هو قابل للتفاعل ومجاني يمكنك استخدامه لتشغيل الأوامر على منصة Google Cloud دون الحاجة إلى تثبيت أي أدوات على جهازك.

1. في واجهة GCP Console، انقر فوق زر تنشيط Cloud Shell (أعلى اليمين) كما هو موضح أدناه، لبدء Cloud Shell.

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. بعد ذلك، قم بتشغيل الأمر gcloud التالي في Cloud Shell لإنشاء حلقة مفاتيح جديدة (مفاتيح) تسمى kms-demo-keyring في الموقع العالمي.

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

–location “global”

عندما يُطلب منك ، انقر على السماح للمتابعة في تشغيل الأمر.

Authorizing access to the KSM API

يظهر هذا الإنذار لأول مرة عند تشغيل أمر gcloud في Cloud Shell ، حيث يُطلب منك تخويل أداة gcloud للوصول إلى واجه برمجة التطبيقات KSM.

Creating a new keyring

كما هو موضح أدناه ، لا توجد رسائل إخراج عند إنشاء keyring بنجاح.

ذات صلة:استخدم مفاتيح التشفير كمحترف مع إدارة مفاتيح AWS

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

يرجى ملاحظة أن الموقع (عالمي) يجب أن يكون نفسه الذي حددته لـ keyring.

–location “global” \

–keyring “kms-demo-keyring” \

Creating a key for encryption

–purpose “encryption”

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

في كل مرة تقوم فيها بإنشاء مفتاح أو تدويره ، يقوم Cloud KMS بإنشاء نسخة جديدة من المفتاح. تتيح لك هذه الميزة التمرير بسهولة إلى إصدار سابق إذا كان ذلك ضروريًا.

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

مثل إنشاء keyring ، لا توجد رسائل إخراج عند إنشاء المفتاح بنجاح.

ولكن في هذه النقطة ، لديك keyring ومفتاح يمكنك استخدامهما لتشفير وفك تشفير البيانات الخاصة بك.

4. الآن ، قم بتشغيل الأمر التالي لعرض قائمة المفاتيح في –keyring (kms-demo-keyring)

سترى نتيجة مشابهة للصورة أدناه مع المعلومات التالية:

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

تشفير وفك تشفير البيانات باستخدام GCP KMS

 التشفير خط دفاع حاسم لصد الأطراف الخبيثة عن الوصول إلى البيانات الحساسة. والآن بمجرد أن يكون لديك مفتاح تشفير، يمكنك استخدامه لتشفير بياناتك.
ls cat gcp-kms-demo.txt
 لتشفير البيانات باستخدام GCP KMS:
cat gcp-kms-demo.txt
Listing the text file and verifying the data

1. قم بتشغيل الأمر أدناه، الذي لا يقدم إخراجًا، ولكنه ينشئ ملف نصي (gcp-kms-demo.txt) ببعض النصوص لتشفيرها.

2. بعد ذلك، قم بتشغيل كل أمر أدناه لعرض (ls) ملف النص (gcp-kms-demo.txt) وعرض (cat) محتواه للتحقق من البيانات.

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

# قائمة الملف النصي

cat gcp-kms-demo.txt.encrypted

# عرض محتوى الملف النصي

3. بمجرد التحقق، قم بتشغيل الأمر أدناه لتشفير البيانات في ملفك (gcp-kms-demo.txt) باستخدام مفتاحك (kms-demo-key01). ستتم تخزين البيانات المشفرة بعد ذلك في ملف جديد يسمى 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

٤. الآن، قم بتشغيل الأمر التالي لمحاولة عرض بيانات الملف المشفرة (gcp-kms-demo.txt.encrypted).

سوف ترى رموز مكسورة وغريبة وغير قابلة للقراءة، كما هو موضح أدناه. يشير هذا الإخراج إلى أن الملف تم تشفيره بنجاح.

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

تحتاج إلى تخزين هذا الملف المشفر في مكان آمن. على سبيل المثال، يمكنك تخزين نسخ متعددة في AWS S3 أو GCP Cloud Storage أو Azure Blob Storage. لا يقوم Google Cloud بحفظ نسخة النص العادي من بياناتك. لذلك، إذا فقدت الملف المشفر، فإن فك تشفير الملف لاستعادة البيانات الأصلية مستحيل.

Listing all the key versions

ذات الصلة:كيفية تحميل الملف إلى S3 باستخدام AWS CLI

٥. بمجرد التشفير، قم بتشغيل الأمر أدناه لفك تشفير بياناتك (gcp-kms-demo.txt.encrypted) باستخدام نفس المفتاح (kms-demo-key01). ولكن هذه المرة، يتم تخزين البيانات المفككة في ملف جديد يسمى gcp-kms-demo.txt.decrypted.

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

مثل عملية التشفير، لا يوفر هذا الأمر إخراجًا، ولكن ستتحقق من عملية الفك تحقق في الخطوة التالية.

gcloud kms keys versions list

–location “global” \

–keyring “kms-demo-keyring” \

Verifying the key has been scheduled for destruction

–key “kms-demo-key01” \

Deleting the Google Cloud project

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

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

Confirming Google Cloud project deletion

6. أخيرًا، قم بتشغيل الأمر التالي لعرض (cat) الملف المفكّك (gcp-kms-demo.txt.decrypted) والتحقق من أن البيانات تم فك تشفيرها بنجاح.

أدناه، يمكنك رؤية البيانات الأصلية التي حفظتها في ملف نصي. تهانينا! لقد قمت بتشفير البيانات وفك تشفيرها بنجاح باستخدام Google Cloud KMS.

تنظيف موارد Google Cloud

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