البدء
البدء
فعّل Tri-Secret Secure على حساب Snowflake الخاص بك باستخدام DuoKey XKS MPC
نظرة عامة
يوفّر Snowflake عملية تسجيل ذاتي لـ Tri-Secret Secure تستخدم سلسلة من دوال SYSTEM$. يرشدك هذا الدليل عبر كل خطوة — بدءًا من نشر DuoKey XKS Proxy الخاص بك وصولًا إلى تفعيل TSS على حساب Snowflake الخاص بك.
عملية التسجيل الذاتي لـ TSS
تفعيل Tri-Secret Secure مع DuoKey XKS خطوة بخطوة
المتطلبات المسبقة
المتطلبات المسبقة
- إصدار Snowflake Business Critical (أو أعلى) على AWS
- دور ACCOUNTADMIN في Snowflake
- الوصول إلى DuoKey Cockpit مع نشر XKS Proxy
- خزنة DuoKey MPC Vault تعمل بمفتاح AES-256 واحد على الأقل
- حساب AWS يمتلك أذونات KMS في نفس منطقة Snowflake
- الوصول إلى AWS CLI أو وحدة التحكم لعمليات KMS و IAM
يُعد Tri-Secret Secure قرارًا أمنيًا جوهريًا. بمجرد تفعيله، يعتمد حساب Snowflake الخاص بك على مفتاح CMK الخاص بك لجميع العمليات التشفيرية. تأكد من أن DuoKey XKS Proxy وخزنة MPC Vault جاهزان للإنتاج مع توافر عالٍ قبل المتابعة.
دليل خطوة بخطوة
الخطوة 1: نشر DuoKey XKS Proxy
قم بإعداد DuoKey XKS Proxy الخاص بك مع MPC Vault باعتبارها مدير المفاتيح الخلفي. هذه الخطوة مطابقة لعملية نشر DuoKey AWS XKS القياسية.
- نشر DuoKey XKS Proxy (نقطة نهاية عامة أو نقطة نهاية VPC)
- تكوين DuoKey Cockpit لتوجيه طلبات XKS إلى MPC Vault
- إنشاء مفتاح AES-256 في MPC Vault لـ Snowflake CMK
- التحقق من أن نقطة نهاية فحص صحة XKS Proxy تُرجع 200 OK
- تدوين External Key ID المُعيّن لمفتاحك
راجع دليل البدء مع AWS XKS للحصول على تعليمات مفصلة حول نشر XKS Proxy.
الخطوة 2: إنشاء CMK مدعوم بـ XKS في AWS KMS
أنشئ مفتاح AWS KMS يستخدم DuoKey XKS Proxy الخاص بك بصفته External Key Store.
-- 1. Create the External Key Store in AWS KMS (if not already done)
aws kms create-custom-key-store \
--custom-key-store-name "duokey-xks-snowflake" \
--custom-key-store-type "EXTERNAL_KEY_STORE" \
--xks-proxy-uri-endpoint "https://your-xks-proxy.example.com" \
--xks-proxy-uri-path "/kms/xks/v1" \
--xks-proxy-connectivity "PUBLIC_ENDPOINT" \
--xks-proxy-authentication-credential \
AccessKeyId=AKIAEXAMPLE,RawSecretAccessKey=your-secret
-- 2. Connect the key store
aws kms connect-custom-key-store \
--custom-key-store-id "cks-1234567890abcdef0"
-- 3. Create the CMK in the External Key Store
aws kms create-key \
--origin "EXTERNAL_KEY_STORE" \
--custom-key-store-id "cks-1234567890abcdef0" \
--xks-key-id "your-external-key-id-from-duokey"
سجّل Key ARN الذي يُرجعه create-key. ستحتاج إليه في الخطوة التالية.
الخطوة 3: تسجيل CMK في Snowflake
استخدم دالة SYSTEM$REGISTER_CMK_INFO لتسجيل مفتاح AWS KMS الخاص بك في Snowflake. يجب أن تمتلك دور ACCOUNTADMIN.
-- Switch to ACCOUNTADMIN role
USE ROLE ACCOUNTADMIN;
-- Register the CMK ARN
SELECT SYSTEM$REGISTER_CMK_INFO(
'arn:aws:kms:eu-west-1:123456789012:key/mrk-1234abcd5678efgh'
);
| المعامل | الوصف | مثال |
|---|---|---|
| Key ARN | المعرّف ARN الكامل لمفتاح AWS KMS المدعوم بـ XKS | arn:aws:kms:eu-west-1:123456789012:key/mrk-... |
| Region | يجب أن تطابق منطقة حساب Snowflake الخاص بك | eu-west-1 |
| Key Type | يجب أن يكون مفتاح تشفير متماثل AES-256 | SYMMETRIC_DEFAULT |
بعد التسجيل، يرسل Snowflake بريدًا إلكترونيًا للتأكيد يحتوي على CMK ARN ونافذة التفعيل التي تبلغ 72 ساعة:

الخطوة 4: الحصول على التكوين وتطبيق سياسة IAM
احصل على التكوين الخاص بـ Snowflake، ثم طبّق سياسة IAM على مفتاح AWS KMS الخاص بك حتى يتمكن Snowflake من استخدامه.
-- Get the required IAM configuration
SELECT SYSTEM$GET_CMK_CONFIG();
يُرجع هذا مستند JSON يحتوي على عبارة سياسة IAM التي يجب إرفاقها بمفتاح KMS الخاص بك. طبّقها في AWS:
{
"Sid": "AllowSnowflakeAccess",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::SNOWFLAKE_ACCOUNT_ID:root"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKeyWithoutPlaintext",
"kms:DescribeKey",
"kms:CreateGrant"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:ViaService": "snowflake.eu-west-1.amazonaws.com"
}
}
}
طبّق بالضبط السياسة التي يُرجعها SYSTEM$GET_CMK_CONFIG(). إن المعرّف ARN الخاص بالمُصرّح له والشروط فريدان لحساب Snowflake الخاص بك.
الخطوة 5: التحقق من الاتصال
تأكد من أن Snowflake يمكنه الوصول إلى CMK الخاص بك عبر AWS KMS و DuoKey XKS Proxy:
SELECT SYSTEM$VERIFY_CMK_INFO();
| النتيجة | المعنى | الإجراء |
|---|---|---|
| PASSED | يمكن لـ Snowflake استخدام CMK الخاص بك بنجاح | انتقل إلى الخطوة 6 |
| FAILED — Key not found | المعرّف ARN لمفتاح AWS KMS غير صحيح | تحقق من ARN في REGISTER_CMK_INFO |
| FAILED — Access denied | لم تُطبّق سياسة IAM بشكل صحيح | أعد تطبيق السياسة من GET_CMK_CONFIG |
| FAILED — Connection error | XKS Proxy غير قابل للوصول أو غير سليم | تحقق من حالة DuoKey XKS Proxy |
عند نجاح التحقق، تعرض ورقة عمل Snowflake "Verification successful":

الخطوة 6: الانتظار 72 ساعة
يفرض Snowflake فترة انتظار إلزامية مدتها 72 ساعة بين التسجيل والتفعيل. هذا إجراء أمني لمنع الإغلاق العرضي. لا يمكنك تخطي هذه الخطوة.
يمكنك التحقق من الحالة الحالية باستخدام SYSTEM$GET_CMK_INFO() — فهي تؤكد أن CMK مُسجّل مسبقًا وتعرض أقرب تاريخ للتفعيل:

خلال فترة الانتظار:
- تحقق من أن DuoKey XKS Proxy مستقر ومُراقَب
- اختبر إجراءات إبطال المفاتيح واستعادتها
- تأكد من أن فريق العمليات لديك يفهم اعتمادية TSS
- قم بإعداد التنبيهات لصحة XKS Proxy وزمن الاستجابة
الخطوة 7: تفعيل Tri-Secret Secure
بعد فترة الانتظار البالغة 72 ساعة، فعّل TSS:
USE ROLE ACCOUNTADMIN;
SELECT SYSTEM$ACTIVATE_CMK_INFO();
تُرجع الدالة: "Key rotation has started. Account admins will receive a notification email when rekeying is complete."

ورقة عمل Snowflake تُظهر التفعيل الناجح لـ Tri-Secret Secure عبر SYSTEM$ACTIVATE_CMK_INFO()
بمجرد التفعيل، سيبدأ Snowflake بإعادة تشفير جميع البيانات باستخدام المفتاح الرئيسي المركّب. هذه العملية تلقائية وشفافة، ولكن يجب أن يبقى CMK الخاص بك قابلًا للوصول طوال فترة إعادة التشفير بأكملها.
ما بعد التفعيل
بمجرد اكتمال إعادة التشفير، يرسل Snowflake بريدًا إلكترونيًا للتأكيد يؤكد أن Tri-Secret Secure مُفعّل بالكامل وأنه تمت إعادة تشفير حسابك بـ CMK المُفعّل:

بريد التأكيد من Snowflake — تم تفعيل TSS وإعادة تشفير الحساب بـ CMK
التحقق من حالة TSS
SELECT SYSTEM$GET_CMK_INFO();
بعد التفعيل الناجح، تُرجع الدالة: "CMK with ARN: arn:aws:kms:... is activated for Tri-Secret Secure":

ورقة عمل Snowflake — SYSTEM$GET_CMK_INFO() تؤكد أن CMK مُفعّل لـ Tri-Secret Secure
يؤكد هذا:
- المعرّف ARN لـ CMK والمنطقة
- حالة التفعيل
- أن Tri-Secret Secure يعمل بالكامل
مفتاح الإيقاف قيد العمل — تعطيل XKS Proxy
إحدى أقوى ميزات Tri-Secret Secure مع DuoKey XKS هي القدرة على إبطال وصول Snowflake إلى بياناتك على الفور عن طريق قطع الاتصال بـ External Key Store. إليك عرضًا حقيقيًا لما يحدث عند تعطيل XKS Proxy.
الخطوة 1: قطع الاتصال بـ External Key Store في AWS KMS
من وحدة تحكم AWS KMS، اقطع الاتصال بـ External Key Store الذي يرتبط بـ DuoKey XKS Proxy. تتغير حالة الاتصال إلى "Disconnected":

وحدة تحكم AWS KMS — تم قطع الاتصال بـ External Key Store بنجاح، مما يقطع الرابط مع DuoKey XKS Proxy
الخطوة 2: يُغلق Snowflake على الفور
مع قطع الاتصال بـ XKS Proxy، لم يعد بإمكان Snowflake الوصول إلى CMK. تصبح جميع البيانات غير قابلة للوصول تمامًا — يرى المستخدمون خطأ رفض الوصول ولا يمكنهم الاستعلام عن أي بيانات:

Snowflake مُغلق بالكامل — "Access is denied to the customer managed key (CMK) for this account"
يوضح هذا القوة الحقيقية للتشفير الخاضع لسيطرة العميل: بمجرد قطع الاتصال بـ XKS Proxy، تجعل جميع بيانات Snowflake غير قابلة للقراءة. لا حاجة لحذف أي بيانات — هذا هو التمزيق التشفيري (crypto-shredding) قيد العمل. تؤدي إعادة توصيل مخزن المفاتيح إلى استعادة الوصول على الفور.
دروس من اختراق Snowflake عام 2024: في منتصف عام 2024، استخدم المهاجمون بيانات اعتماد مسروقة للوصول إلى أكثر من 165 حساب عميل Snowflake (بما في ذلك AT&T و Ticketmaster و Santander)، وتسريب مئات الملايين من السجلات. لو كان هؤلاء العملاء قد فعّلوا Tri-Secret Secure مع DuoKey XKS، لكانت نقرة واحدة لقطع الاتصال بـ External Key Store قد أغلقت الباب أمام المهاجمين على الفور — مما يجعل جميع البيانات غير قابلة للوصول تشفيريًا، تمامًا كما هو موضح أعلاه. راجع تحليل الاختراق الكامل للتفاصيل.
إجراءات الطوارئ
لمنع Snowflake على الفور من الوصول إلى بياناتك:
- DuoKey Cockpit: عطّل مفتاح CMK في DuoKey MPC Vault — تأثير فوري
- AWS KMS: عطّل مفتاح KMS — يسري خلال ثوانٍ
- AWS IAM: أزل سياسة IAM الخاصة بـ Snowflake — تسري خلال دقائق
بعد الإبطال، لا يمكن لـ Snowflake إنشاء مفاتيح رئيسية مركّبة جديدة. ستنتهي صلاحية المفاتيح المخزّنة مؤقتًا الحالية، مما يجعل جميع البيانات غير قابلة للوصول.
المراقبة
| ما يجب مراقبته | أين | عتبة التنبيه |
|---|---|---|
| صحة XKS Proxy | DuoKey Cockpit | أي استجابة غير 200 |
| زمن استجابة XKS Proxy | DuoKey Cockpit / CloudWatch | أكثر من 100ms في المتوسط |
| حالة مفتاح KMS | AWS KMS Console / CloudTrail | المفتاح معطّل أو في انتظار الحذف |
| عمليات CMK | AWS CloudTrail | استدعاءات Decrypt أو Encrypt غير متوقعة |
| حالة MPC Vault | DuoKey Cockpit | عقدة غير متصلة أو فقدان النصاب |