AWS Certified CloudOps Engineer - Associate

تصنيف البيانات وAmazon Macie

كيف تبني مخطّط تصنيف يصمد أمام أسطول S3 حقيقي: مستويات تحمل قواعد تعامل فعلية، والوسوم مقبضاً للفرض، وAmazon Macie ليجد البيانات الحساسة التي لم تعلنها وسومك.

متوسط 24 دقائق 6 أهداف التعلّم
  1. اشرح ما مخطّط تصنيف البيانات ولماذا الإفراط في التصنيف فشل لا احتياط
  2. اربط خطوات التصنيف الخمس بخدمات AWS التي تحمل كلاً منها
  3. استخدم الوسوم مقبضاً يصل مستوى التصنيف بصلاحية فعلية
  4. فرّق بين نتائج السياسة ونتائج البيانات الحساسة في Macie واعرف ما يطلق كلاً منهما
  5. اختر بين الاكتشاف الآلي ومهمة اكتشاف البيانات الحساسة لمتطلّب معطى
  6. اضبط Macie عبر منظمة كاملة مع مراعاة سلوكه الإقليمي وقواعد المسؤول المفوَّض

في منظمتك 3,200 bucket في S3. ويسأل أحدهم في فريق الامتثال سؤالاً معقولاً: أيها يحمل بيانات شخصية لعملاء؟ والإجابة الصادقة في أغلب الحسابات أن لا أحد يعرف.

وليست الفجوة مشكلة تدقيق فحسب. فكل ضابط قد تطبّقه له كلفة. التشفير بمفتاح تديره أنت، وتفعيل أحداث بيانات CloudTrail على مستوى الكائن، وتقييد المشاركة عبر الحسابات، وتثبيت البيانات في مناطق معتمدة: طبّق ذلك كله في كل مكان فتصير الفاتورة والاحتكاك بلا احتمال. واتركه كله فيُنهي bucket واحد أسبوع الشركة يوماً ما.

وتصنيف البيانات هو مخرجك من هذا الفخّ. تطلب منك المهارة 4.2.1 في دليل الاختبار تطبيق مخطّط تصنيف وفرضه، وهما عملان لا عمل واحد. فالتطبيق تعريف المستويات ووسم البيانات. أما الفرض فأن يغيّر الوسم فعلاً ما تسمح به AWS.

المستوى مجموعة قواعد تعامل لا ملصق

مخطّط التصنيف عدد صغير من المستويات، يرتبط كل منها بخطّ أساس من الضوابط. وشكله الشائع كالتالي:

المستوىأمثلة البياناتخطّ أساس التعامل
Publicمواد تسويقية، وثائق منشورةالتشفير الافتراضي، بلا قيود وصول تتجاوز السلامة
Internalكتيّبات تشغيل، قياسات غير حساسةوصول محصور بالحساب، SSE-S3، احتفاظ قياسي
Confidentialسجلات العملاء، العقودمفتاح KMS يديره العميل، بلا مشاركة عبر الحسابات، تسجيل أحداث البيانات
Restrictedبيانات الدفع، السجلات الصحيةمفتاح مخصّص بسياسة ضيّقة، تثبيت المنطقة، وصول بقائمة معتمدة

وأسماء المستويات أقلّ أهمية من العمودين الثاني والثالث. فالملصق بلا قواعد تعامل زينة. وقاعدة التعامل بلا ملصق تلتصق به لا شيء تنطبق عليه.

وهنا يخطئ الفريق خطأً متوقّعاً. يغري تصنيفُ كل شيء عند أعلى مستوى على أساس أن زيادة الحماية لا تضرّ. وتقول AWS العكس صراحة: الإفراط في التصنيف يجلب إنفاقاً بلا مبرّر عبر ضوابط باهظة، ويعطّل سير العمل، ويصرف الانتباه عن مجموعات البيانات التي تحتاجه فعلاً. وتوصي هيئات المعايير ومنها ISO وNIST بالمخطّطات المتدرّجة لهذا السبب بعينه، وتنصح ضدّ الممارسات التي تعامل كل البيانات معاملة واحدة. فإن وضع مخطّطك 90% من الأسطول في المستوى الأعلى، فقد فشل المخطّط وإن بدت كل مجموعة بيانات "محمية".

الخطوات الخمس، وأين تتعلّق خدمات AWS

تصف AWS التصنيف عملية متكرّرة لا مشروعاً لمرة واحدة. ولكل خطوة خدمة تحملها:

  1. أنشئ كتالوج بيانات. اجرد أنواع البيانات التي تحتفظ بها، وكيف تُستخدم، وأيها تحكمه لائحة تنظيمية. ويخزّن AWS Glue Data Catalog تلك البيانات الوصفية ويشاركها مع تتبّع تغيّر المخطّطات.
  2. قيّم الأهمية للعمل والأثر. لكل نوع بيانات: ماذا يحدث للعمل إن كُشف أو عُدّل أو فُقد؟ هذه الخطوة تقرّر المستوى، وهي ليست خطوة تقنية.
  3. علّم المعلومات. اربط المستوى بالموارد الفعلية. وعلى AWS هذا وسم، وسيأتي بعد قليل.
  4. تعامل مع الأصول بحسب مستواها. تصير ضوابط العمود الثالث سياسات ومفاتيح وإعدادات حقيقية.
  5. راقب باستمرار. تحقّق أن الملصقات ما زالت تطابق الواقع وأن التعامل ما زال مطبَّقاً. وهنا يسكن Macie وAWS Config.

والخطوتان 3 و5 هما الزوج الذي تخطئ فيه أغلب المخطّطات. فالوسم إعلان يصدره من أنشأ المورد. والمراقبة تحقّق من ذلك الإعلان مقابل البايتات المخزّنة فعلاً. والمخطّط الذي فيه وسم بلا تحقّق مخطّط مبنيّ على الأمل.

الوسوم هي المقبض الذي يمسكه المخطّط

الملصق العملي على AWS وسم، ومفتاح وسم واحد مستخدَم باتّساق أثمن من تصنيف متشعّب لا يطبّقه أحد. شيء مثل DataClassification بقيم public وinternal وconfidential وrestricted.

وسبب توحيد المفتاح أن الوسم يصير شرطاً في السياسة. فسياسة الـ bucket تستطيع اشتراط وسم مطابق على الكيان المنادي:

{
  "Sid": "RestrictedDataNeedsMatchingClearance",
  "Effect": "Deny",
  "Principal": "*",
  "Action": "s3:GetObject",
  "Resource": "arn:aws:s3:::example-data-lake/*",
  "Condition": {
    "StringNotEquals": {
      "aws:PrincipalTag/DataClearance": "restricted"
    }
  }
}

وتعمل الفكرة نفسها على سياسة مفتاح KMS، فلا يستطيع استخدام مفتاح المستوى confidential إلا الكيانات الحاملة لوسم التصريح المطابق. وهذا هو التحكّم في الوصول القائم على السمات مطبَّقاً على مخطّط تصنيف، وهو الفرق بين ملصق وضابط.

وآليتان تُبقيان الوسوم صادقة:

  • الوقاية. سياسة SCP بشرط aws:RequestTag ترفض إنشاء المورد حين يغيب وسم التصنيف، في الخدمات التي تدعم الوسم وقت الإنشاء. وهذا يمنع ظهور موارد بلا وسم.
  • الكشف. قاعدة AWS Config المُدارة required-tags تؤشّر على الموارد التي يغيب عنها الوسم، وتستطيع حمل إجراء معالجة آلي. وهذا يلتقط ما فات الوقاية.

ولا تستطيع أي منهما إخبارك هل الوسم صحيح. فالـ bucket الموسوم internal الذي يجمع بهدوء أرقام جوازات سفر ينجح في الفحصين معاً. وتلك البقعة العمياء بالذات هي ما وُجد Macie ليغلقها.

يبدأ Macie بجرد لا بمسح

فعّل Amazon Macie في حساب فأول ما يفعله إنشاء جرد لـ buckets الأغراض العامة لديك في S3 وصيانته، ثم تقييمها ومراقبتها أمنياً ومن ناحية التحكّم في الوصول. ولا يُقرأ أي محتوى كائن بعد. فهذه المرحلة بيانات وصفية: إعدادات الوصول العام، وإعدادات التشفير، والمشاركة، والنسخ المتماثل، وعدد الكائنات، وكم من الـ bucket يستطيع Macie تحليله لو طُلب منه.

وحين تتغيّر إعدادات bucket على نحو يقلّل أمانه أو خصوصيته، يكتب Macie نتيجة سياسة (policy finding):

نوع نتيجة السياسةما الذي تغيّر
Policy:IAMUser/S3BlockPublicAccessDisabledعُطّلت كل إعدادات حجب الوصول العام على مستوى الـ bucket
Policy:IAMUser/S3BucketPublicصارت قائمة ACL أو سياسة الـ bucket تسمح للمجهولين أو لكل هويات IAM الموثّقة
Policy:IAMUser/S3BucketSharedExternallyصارت قائمة ACL أو سياسة الـ bucket تشاركه مع حساب خارج منظمتك
Policy:IAMUser/S3BucketSharedWithCloudFrontصارت سياسة الـ bucket تشاركه مع OAI أو OAC في CloudFront
Policy:IAMUser/S3BucketReplicatedExternallyصار النسخ المتماثل يرسل الكائنات إلى bucket في حساب خارجي
Policy:IAMUser/S3BucketEncryptionDisabledأُعيدت إعدادات التشفير الافتراضي إلى سلوك S3 الأساسي

وخاصية واحدة في نتائج السياسة توقع الناس باستمرار، فسمّها قبل أن تلدغك: لا يولّد Macie نتيجة سياسة إلا إن وقع التغيير بعد تفعيلك Macie للحساب. فالـ bucket الذي كانت إعدادات حجب الوصول العام فيه معطّلة أصلاً حين شغّلت Macie، وبقيت كذلك، لا ينتج أي نتيجة إطلاقاً. فMacie يترصّد التغييرات لا يدقّق خطّ أساس. ولرؤية الحالة السابقة تقرأ جرد الـ buckets وتفصيل وصولها العام، ولهذا الجرد ميزة من الدرجة الأولى لا أثر جانبي.

وتُخزَّن نتائج السياسة 90 يوماً. وإن تكرّرت نتيجة سياسة، يحدّث Macie النتيجة القائمة ويزيد عدّاد التكرار بدل إنشاء نتيجة جديدة.

طريقتان للنظر داخل الكائنات

قراءة محتوى الكائنات نشاط منفصل ومحاسَب، ويعطيك Macie فيه طريقتين مختلفتَي المهمّة فعلاً.

والاكتشاف الآلي للبيانات الحساسة خيار الاتّساع. يقيّم Macie جرد الـ buckets لديك باستمرار، ويستخدم أخذ العيّنات لانتقاء كائنات ممثّلة ويحلّلها، بدورة واحدة في اليوم. ويغطّي افتراضياً كل bucket أغراض عامة في S3، ويشمل ذلك لمسؤول Macie الـ buckets المملوكة للحسابات الأعضاء. وتضيّقه باستبعاد buckets بعينها، وهذا يستحقّ الفعل مع الـ buckets التي لا تحمل إلا سجلات. ويستخدم افتراضياً مجموعة معرّفات البيانات المُدارة التي توصي بها AWS للاكتشاف الآلي، وتستطيع استبدالها بمعرّفات مُدارة بعينها أو بمعرّفاتك المخصّصة أو بكليهما. ومخرجاته نتائج بيانات حساسة، ودرجات حساسية لكل bucket، وخريطة حرارية تفاعلية للأسطول.

ومهام اكتشاف البيانات الحساسة خيار العمق. تحدّد الـ buckets وعمق العيّنة ومعايير مستمدّة من خصائص الكائنات، ثم تشغّل المهمة مرة لتقييم عند الطلب أو بجدول متكرّر.

وحدّ التكلفة يستحقّ الحفظ لأنه يصوغ إجابة أسئلة السيناريو. فحين تفعّل Macie أول مرة، يُسجَّل الحساب في فترة تجريبية مجانية مدتها 30 يوماً تغطّي تقييم الـ buckets، وتغطّي الاكتشاف الآلي بحسب إعدادات الحساب. ومهام الاكتشاف غير مشمولة في الفترة المجانية. فإن ذكر سؤال فريقاً فعّل Macie ولم يرَ رسوماً ثم فوجئ بفاتورة، فمهمة اكتشاف هي المتّهم المعتاد.

ما الذي يبحث عنه Macie وما الذي يتجاهله

ثلاثة مكوّنات تقرّر سطح الاكتشاف:

  • معرّفات البيانات المُدارة معايير AWS المدمجة، وتعمل بتعلّم الآلة ومطابقة الأنماط. وتغطّي قائمة كبيرة ومتنامية من أنواع البيانات الحساسة عبر بلدان ومناطق كثيرة: أنواعاً متعدّدة من PII، وبيانات مالية، وبيانات اعتماد.
  • معرّفات البيانات المخصّصة ملكك. تعبير نمطي يعرّف نمط نصّ، ويُصقَل اختيارياً بسلاسل حروف وقاعدة قرب. وهكذا تكتشف المعرّفات الخاصة أو الأسماء الرمزية الداخلية أو صيغة رقم حساب داخلية.
  • قوائم السماح تعرّف نصوصاً وأنماط نصوص ينبغي لـ Macie تجاهلها. واستخدامها المعتاد أرقام هواتف منظمتك المعلنة وأسماء ممثّليها، أو بيانات اختبار تُطلق كاشفات PII في كل تشغيل.

وقوائم السماح هي مقبض الضبط الذي ينسى الناس وجوده. فإن اشتعل نوع نتيجة مراراً على بيانات معلَنة عمداً، فالعلاج قائمة سماح لا قواعد كتم مكدّسة فوق كاشف صاخب.

وحين يجد Macie شيئاً، يكتب نتيجة بيانات حساسة (sensitive data finding) تسمّي الفئة:

نوع نتيجة البيانات الحساسةالمحتوى
SensitiveData:S3Object/Personalبيانات PII مثل أرقام جوازات السفر أو رخص القيادة، أو بيانات PHI مثل أرقام التأمين الصحي
SensitiveData:S3Object/Financialأرقام حسابات بنكية، أرقام بطاقات ائتمان
SensitiveData:S3Object/Credentialsمفاتيح وصول سرّية لـ AWS، مفاتيح خاصة
SensitiveData:S3Object/CustomIdentifierنصّ يطابق واحداً أو أكثر من معرّفاتك المخصّصة
SensitiveData:S3Object/Multipleأكثر من فئة مما سبق في الكائن نفسه

وخلافاً لنتائج السياسة، تُعامَل كل نتيجة بيانات حساسة على أنها جديدة وفريدة، حتى للكائن نفسه عبر عدة تشغيلات. وتُخزَّن هي أيضاً 90 يوماً، وهذا سقف احتفاظ خطّط له: إن احتاج الدليل أن يعيش أكثر من 90 يوماً، صدّره عبر EventBridge أو Security Hub إلى تخزين تتحكّم فيه أنت.

Macie عبر منظمة

يتكامل Macie مع AWS Organizations، وقواعده محدّدة بما يكفي لتكون مادة اختبار.

يعيّن حساب إدارة المنظمة مسؤول Macie المفوَّض، وحساب الإدارة وحده يستطيع إجراء ذلك التعيين أو تغييره أو إزالته. وللمنظمة مسؤول Macie واحد بالضبط، ولا يستطيع حساب أن يكون مسؤولاً وعضواً في الوقت نفسه.

ثم الخاصية التي توقع الإعدادات متعدّدة المناطق: Macie خدمة إقليمية، وAWS Organizations عالمية. فتعيين المسؤول لكل منطقة. وإن عيّن حساب الإدارة مسؤولاً في us-east-1، فذلك المسؤول يدير الحسابات الأعضاء في us-east-1 وحدها. وتغطية 4 مناطق تعني الدخول إلى كل منها وتعيين المسؤول 4 مرات. والحساب المعيَّن يجب أن يكون نفسه في كل منطقة، لكن التعيين نفسه يُكرَّر.

وثلاث قواعد أخرى تستحقّ الحمل:

  • يرتبط مسؤول Macie بما لا يزيد على 10,000 حساب عضو في كل منطقة.
  • لا يستطيع المسؤول تفعيل Macie لحساب إدارة المنظمة. فإن أردت حساب الإدارة عضواً، فعلى مستخدم في ذلك الحساب تفعيل Macie فيه أولاً.
  • ولا يستطيع الحساب العضو فكّ ارتباطه بنفسه. فالمسؤول وحده يزيله، والإزالة تترك Macie مفعّلاً في الحساب حساباً مستقلاً بدل إطفائه.

إغلاق الحلقة من النتيجة إلى الضابط

النتيجة التي لا يتصرّف عليها أحد نسخة أبطأ من عدم النظر أصلاً. وينشر Macie نتائجه إلى Amazon EventBridge أحداثاً، فتوجَّه إلى أهداف مثل دوالّ Lambda وموضوعات SNS للمعالجة في وقت شبه فوري. وتستطيع أيضاً ضبط Macie لينشر نتائجه إلى AWS Security Hub CSPM، فيجمّعها بجوار نتائج GuardDuty وInspector وبقية الخدمات، ويدعم التجميع عبر المناطق في منطقة واحدة.

ونمط الفرض الذي يحقّق المهارة 4.2.1 يبدو من طرف إلى طرف هكذا:

  1. يجد الاكتشاف الآلي في Macie نتيجة SensitiveData:S3Object/Financial في bucket موسوم DataClassification=internal.
  2. تهبط النتيجة على EventBridge، وتلتقطها قاعدة ترشّح على نوع النتيجة وخطورتها.
  3. يعيد هدف Lambda وسم الـ bucket إلى confidential ويفتح تذكرة تسمّي المالك من وسم المالك على الـ bucket.
  4. ولأن سياسة الـ bucket وسياسة مفتاح KMS مربوطتان أصلاً بـ DataClassification، تسري قواعد تعامل المستوى لحظة تغيّر الوسم.

والخطوة 4 هي المقصد كله. فإن لم يكن الوسم موصولاً بشيء، فالأتمتة أعادت تسمية مشكلة لا غير.

نصائح الاختبار

  • تقول المهارة 4.2.1 تطبيق وفرض. فالإجابة التي تكتفي بالكشف والتبليغ ناقصة حين يوجد خيار آخر يصل الملصق بصلاحية.
  • الإفراط في التصنيف إجابة خاطئة لا إجابة حذرة. فانتبه للخيارات التي تقترح أشدّ ضابط لكل البيانات.
  • يحلّل Macie buckets الأغراض العامة في Amazon S3. فإن كان السؤال عن محتوى في RDS أو EBS أو DynamoDB، فليس Macie الجواب.
  • نتائج السياسة تشتعل للتغييرات الواقعة بعد تفعيل Macie وحدها. والضعف السابق يظهر في جرد الـ buckets لا نتيجةً.
  • الاكتشاف الآلي = واسع، مستمرّ، بعيّنات، كل الـ buckets افتراضياً، مشمول في الفترة المجانية 30 يوماً. ومهمة الاكتشاف = مستهدَفة، عند الطلب أو بجدول، بعمق تضبطه، وغير مشمولة في الفترة المجانية.
  • معرّف البيانات المخصّص = تعبير نمطي لشيء لا تعرفه AWS. وقائمة السماح = نصّ يُتجاهَل. وهما في اتجاهين متعاكسين.
  • تُخزَّن فئتا النتائج 90 يوماً. ونتائج السياسة تُحدَّث في مكانها عند التكرار، ونتائج البيانات الحساسة جديدة دائماً.
  • Macie إقليمي. فتعيين المسؤول المفوَّض وارتباطات الأعضاء وحصّة الـ 10,000 عضو كلها لكل منطقة، وحساب إدارة المنظمة وحده يعيّن المسؤول.
  • تصل النتائج إلى الأتمتة عبر EventBridge، وإلى عرض موحّد للوضع الأمني عبر Security Hub CSPM.

الشيء الوحيد الذي تحمله معك: التصنيف هو ما يجعل كل ضابط لاحق في هذا الموضوع محتمَل الكلفة. فالتشفير وسياسات المفاتيح ونطاق الشهادات وتدوير الأسرار كلها تصير أرخص وأحدّ حين تنطبق على المجموعة الفرعية الصحيحة بدل أن تنطبق على كل شيء. والدرس التالي يأخذ قاعدة تعامل المستوى confidential على محمل الجدّ ويبنيها بـ KMS.