مشاركة عبر


إدارة البيانات السرية

في بعض الأحيان يتطلب الوصول إلى البيانات المصادقة على مصادر البيانات الخارجية من خلال JDBC. بدلا من إدخال بيانات الاعتماد الخاصة بك مباشرة في دفتر ملاحظات، يمكنك استخدام أسرار Azure Databricks لتخزين بيانات الاعتماد الخاصة بك والإشارة إليها في دفاتر الملاحظات والوظائف. توفر هذه المقالة نظرة عامة على أسرار Azure Databricks.

نظرة عامة على الأسرار

لتكوين البيانات السرية واستخدامها، يمكنك:

  1. إنشاء نطاق للبيانات السرية. النطاق السري هو مجموعة من الأسرار التي تم تحديدها بواسطة اسم.
  2. إضافة أسرار إلى النطاق
  3. تعيين أذونات على النطاق السري.
  4. الوصول إلى الأسرار باستخدام Databricks Utilities، راجع الأداة المساعدة الأسرار (dbutils.secrets).

للحصول على مثال شامل حول كيفية استخدام البيانات السرية في مهام سير العمل، راجع البرنامج التعليمي: إنشاء سر Databricks واستخدامه. لاستخدام سر في خاصية تكوين Spark أو متغير البيئة، راجع استخدام سر في خاصية تكوين Spark أو متغير البيئة.

تحذير

يمكن للمسؤولين ومنشئي البيانات السرية والمستخدمين الذين تم منحهم الإذن قراءة أسرار Azure Databricks. بينما تبذل Databricks جهدا لتنقية القيم السرية التي قد يتم عرضها في دفاتر الملاحظات، لا يمكن منع هؤلاء المستخدمين من قراءة الأسرار. راجع Redaction السري.

إدارة النطاقات السرية

النطاق السري هو مجموعة من الأسرار التي تم تحديدها بواسطة اسم. توصي Databricks بمحاذاة النطاقات السرية مع الأدوار أو التطبيقات بدلا من الأفراد.

هناك نوعان من النطاق السري:

  • مدعوم من Azure Key Vault: يمكنك الرجوع إلى الأسرار المخزنة في Azure Key Vault باستخدام نطاقات البيانات السرية المدعومة من Azure Key Vault. النطاق السري المدعوم من Azure Key Vault هو واجهة للقراءة فقط إلى Key Vault. يجب إدارة الأسرار في نطاقات البيانات السرية المدعومة من Azure Key Vault في Azure.
  • مدعوم من Databricks: يتم تخزين نطاق سري مدعوم من Databricks في قاعدة بيانات مشفرة مملوكة وتديرها Azure Databricks.

بعد إنشاء نطاق سري، يمكنك تعيين أذونات لمنح المستخدمين حق الوصول إلى نطاقات scret وكتابتها وإدارتها.

إنشاء نطاق سري مدعوم من Azure Key Vault

يصف هذا القسم كيفية إنشاء نطاق سري مدعوم من Azure Key Vault باستخدام مدخل Microsoft Azure وواجهة مستخدم مساحة عمل Azure Databricks. يمكنك أيضا إنشاء نطاق سري مدعوم من Azure Key Vault باستخدام Databricks CLI.

المتطلبات

  • يجب أن يكون لديك مثيل Azure key vault. إذا لم يكن لديك مثيل key vault، فاتبع الإرشادات الواردة في إنشاء Key Vault باستخدام مدخل Microsoft Azure.
  • يجب أن يكون لديك دور المساهم في Key Vault أو المساهم أو المالك في مثيل Azure key vault الذي تريد استخدامه لدعم النطاق السري.

إشعار

يتطلب إنشاء نطاق سري مدعوم من Azure Key Vault دور المساهم أو المالك في مثيل Azure key vault حتى إذا تم منح خدمة Azure Databricks سابقا حق الوصول إلى مخزن المفاتيح.

إذا كان مخزن المفاتيح موجودا في مستأجر مختلف عن مساحة عمل Azure Databricks، يجب أن يكون لدى مستخدم Azure AD الذي ينشئ النطاق السري إذنا لإنشاء أساسيات الخدمة في مستأجر مخزن المفاتيح. وإلا، يحدث الخطأ التالي:

Unable to grant read/list permission to Databricks service principal to KeyVault 'https://xxxxx.vault.azure.net/': Status code 403, {"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."},"requestId":"XXXXX","date":"YYYY-MM-DDTHH:MM:SS"}}

تكوين مثيل Azure key vault ل Azure Databricks

  1. سجل الدخول إلى مدخل Microsoft Azure، وابحث عن مثيل Azure key vault وحدده.

  2. ضمن الإعدادات، انقر فوق علامة التبويب تكوين Access.

  3. تعيين نموذج الإذن إلى نهج الوصول إلى Vault.

    إشعار

    إنشاء دور نطاق سري مدعوم من Azure Key Vault يمنح أذونات Get و List لمعرف التطبيق لخدمة Azure Databricks باستخدام نهج الوصول إلى مخزن المفاتيح. نموذج إذن التحكم في الوصول المستند إلى الدور Azure غير مدعوم مع Azure Databricks.

  4. ضمن الإعدادات، حدد الشبكات.

  5. في جدران الحماية والشبكات الظاهرية ، قم بتعيين السماح بالوصول من: إلى السماح بالوصول العام من شبكات ظاهرية محددة وعناوين IP.

    ضمن استثناء، حدد السماح خدمات Microsoft الموثوق بها بتجاوز جدار الحماية هذا.

    إشعار

    يمكنك أيضا تعيين السماح بالوصول من: إلى السماح بالوصول العام من جميع الشبكات.

إنشاء نطاق سري مدعوم بـ Azure Key Vault

  1. انتقل إلى https://<databricks-instance>#secrets/createScope. استبدل <databricks-instance> بعنوان URL لمساحة العمل لنشر Azure Databricks. عنوان URL هذا حساس لحالة الأحرف. على سبيل المثال، scope createScope في يجب استخدام أحرف كبيرة S).

    إنشاء نطاق

  2. أدخل اسم النطاق السري. أسماء نطاقات البيانات السرية غير حساسة لحالة الأحرف.

  3. في Manage Principal حدد Creator أو All workspace users لتحديد المستخدمين الذين لديهم إذن MANAGE في النطاق السري.

    يسمح إذن MANAGE للمستخدمين بقراءة الأذونات وكتابتها ومنحها على النطاق. يجب أن يحتوي حسابك على خطة Premium لاختيار منشئ.

  4. أدخل اسم DNS (على سبيل المثال، https://databrickskv.vault.azure.net/) ومعرف المورد، على سبيل المثال:

    /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKV
    

    تتوفر هذه الخصائص من علامة التبويب خصائص الإعدادات > في Azure Key Vault في مدخل Microsoft Azure.

  5. انقر فوق Create.

  6. استخدم الأمر Databricks CLI databricks secrets list-scopes للتحقق من إنشاء النطاق بنجاح.

إنشاء نطاق سري مدعوم من Databricks

يصف هذا القسم كيفية إنشاء نطاق سري باستخدام ما هو Databricks CLI؟ (الإصدار 0.205 وما فوق). يمكنك أيضا استخدام واجهة برمجة تطبيقات الأسرار.

أسماء النطاقات السرية:

  • يجب أن يكون فريدا داخل مساحة عمل.
  • يجب أن تتكون من أحرف أبجدية رقمية والشرطات والتسطير السفلي @والنقاط، ولا يمكن أن تتجاوز 128 حرفا.
  • غير حساسة لحالة الأحرف.

تعتبر أسماء النطاقات السرية غير حساسة ويمكن لجميع المستخدمين قراءتها في مساحة العمل.

لإنشاء نطاق باستخدام Databricks CLI:

databricks secrets create-scope <scope-name>

بشكل افتراضي، يتم إنشاء النطاقات بإذن MANAGE للمستخدم الذي أنشأ النطاق. بعد إنشاء نطاق سري مدعوم من Databricks، يمكنك إضافة أسرار إليه.

سرد النطاقات السرية

لسرد النطاقات الموجودة في مساحة عمل باستخدام CLI:

databricks secrets list-scopes

يمكنك أيضا سرد النطاقات السرية باستخدام واجهة برمجة تطبيقات الأسرار.

حذف نطاق سري

يؤدي حذف نطاق سري إلى حذف جميع الأسرار وقوائم التحكم في الوصول المطبقة على النطاق. لحذف نطاق باستخدام CLI، قم بتشغيل ما يلي:

databricks secrets delete-scope <scope-name>

يمكنك أيضا حذف نطاق سري باستخدام واجهة برمجة تطبيقات الأسرار.

إدارة الأسرار

السر هو زوج قيم المفاتيح الذي يخزن المواد الحساسة باستخدام اسم مفتاح فريد ضمن نطاق سري.

يصف هذا القسم كيفية إنشاء نطاق سري باستخدام ما هو Databricks CLI؟ (الإصدار 0.205 وما فوق). يمكنك أيضا استخدام واجهة برمجة تطبيقات الأسرار. أسماء البيانات السرية غير حساسة لحالة الأحرف.

إنشاء بيانات سرية

تعتمد طريقة إنشاء بيانات سرية على ما إذا كنت تستخدم نطاقا مدعوما من Azure Key Vault أو نطاقا مدعوما من Databricks.

إنشاء سر في نطاق مدعوم من Azure Key Vault

لإنشاء سر في Azure Key Vault، يمكنك استخدام مدخل Azure أو Azure Set Secret REST API. على سبيل المثال، راجع الخطوة 4: إضافة سر العميل إلى Azure Key Vault.

Azure Key Vault

إنشاء سر في نطاق مدعوم من Databricks

يصف هذا القسم كيفية إنشاء بيانات سرية باستخدام ما هو Databricks CLI؟ (الإصدار 0.205 وما فوق). يمكنك أيضا استخدام واجهة برمجة تطبيقات الأسرار. أسماء البيانات السرية غير حساسة لحالة الأحرف.

عند إنشاء سر في نطاق مدعوم من Databricks، يمكنك تحديد القيمة السرية بإحدى الطرق الثلاث:

  • حدد القيمة كسلسلة باستخدام العلامة -string-value.
  • أدخل البيانات السرية عند مطالبتك بشكل تفاعلي (أسرار سطر واحد).
  • تمرير البيانات السرية باستخدام الإدخال القياسي (أسرار متعددة الأسطر).

على سبيل المثال:

databricks secrets put-secret --json '{
  "scope": "<scope-name>",
  "key": "<key-name>",
  "string_value": "<secret>"
}'

إذا كنت تقوم بإنشاء سر متعدد الأسطر، يمكنك تمرير السر باستخدام الإدخال القياسي. على سبيل المثال:

(cat << EOF
this
is
a
multi
line
secret
EOF
) | databricks secrets put-secret <secret_scope> <secret_key>

قائمة بالبيانات السرية

لسرد البيانات السرية في نطاق معين:

databricks secrets list-secrets <scope-name>

تعرض الاستجابة معلومات بيانات التعريف حول الأسرار، مثل أسماء مفاتيح الأسرار. يمكنك استخدام الأداة المساعدة Secrets (dbutils.secrets) في دفتر ملاحظات أو مهمة لسرد بيانات التعريف هذه. على سبيل المثال:

dbutils.secrets.list('my-scope')

قراءة سر

يمكنك إنشاء أسرار باستخدام واجهة برمجة تطبيقات REST أو CLI، ولكن يجب عليك استخدام الأداة المساعدة Secrets (dbutils.secrets) في دفتر ملاحظات أو مهمة لقراءة سر.

حذف سر

لحذف سر من نطاق باستخدام Databricks CLI:

databricks secrets delete-secret <scope-name> <key-name>

يمكنك أيضا استخدام واجهة برمجة تطبيقات الأسرار.

لحذف سر من نطاق مدعوم من Azure Key Vault، استخدم واجهة برمجة تطبيقات Azure SetSecret REST أو واجهة مستخدم مدخل Azure.

إدارة أذونات النطاق السري

بشكل افتراضي، يتم منح المستخدم الذي ينشئ النطاقات السرية إذن MANAGE. يسمح هذا لمنشئ النطاق بقراءة البيانات السرية في النطاق، وكتابة الأسرار إلى النطاق، وإدارة الأذونات على النطاق.

إشعار

قوائم التحكم بالوصول السرية على مستوى النطاق. إذا كنت تستخدم النطاقات المدعومة من Azure Key Vault، فإن المستخدمين الذين يتم منحهم حق الوصول إلى النطاق لديهم حق الوصول إلى جميع الأسرار في Azure Key Vault. لتقييد الوصول، استخدم مثيلات مخزن مفاتيح Azure منفصلة.

يصف هذا القسم كيفية إدارة التحكم في الوصول السري باستخدام ما هو Databricks CLI؟ (الإصدار 0.205 وما فوق). يمكنك أيضا استخدام واجهة برمجة تطبيقات الأسرار. للحصول على مستويات الأذونات السرية، راجع قوائم التحكم في الوصول السرية

منح أذونات المستخدم على نطاق سري

لمنح أذونات المستخدم على نطاق سري باستخدام Databricks CLI:

databricks secrets put-acl <scope-name> <principal> <permission>

يؤدي إجراء طلب وضع لكيان لديه إذن مطبق بالفعل إلى الكتابة فوق مستوى الأذونات الموجود.

principal يحدد الحقل كيان Azure Databricks موجود. يتم تحديد مستخدم باستخدام عنوان بريده الإلكتروني، ومدير الخدمة باستخدام applicationId قيمته، ومجموعة تستخدم اسم مجموعته. لمزيد من المعلومات، راجع الأساسي.

عرض أذونات النطاق السري

لعرض كافة أذونات النطاق السري لنطاق سري معين:

databricks secrets list-acls <scope-name>

للحصول على أذونات النطاق السري المطبقة على أساس لنطاق سري معين:

databricks secrets get-acl <scope-name> <principal>

إذا لم يكن هناك ACL للمدير والنطاق المحددين، يفشل هذا الطلب.

حذف إذن نطاق سري

لحذف إذن نطاق سري مطبق على أساس لنطاق سري معين:

databricks secrets delete-acl <scope-name> <principal>

تغيير البيانات السرية

تخزين بيانات الاعتماد كأسرار Azure Databricks يجعل من السهل حماية بيانات الاعتماد الخاصة بك عند تشغيل دفاتر الملاحظات والوظائف. ومع ذلك، من السهل طباعة سر عن طريق الخطأ إلى المخازن المؤقتة القياسية للإخراج أو عرض القيمة أثناء تعيين المتغير.

لمنع ذلك، يقوم Azure Databricks بتكرار جميع القيم السرية التي تتم قراءتها باستخدام dbutils.secrets.get(). عند عرضها في إخراج خلية دفتر الملاحظات، يتم استبدال القيم السرية ب [REDACTED].

على سبيل المثال، إذا قمت بتعيين متغير إلى قيمة سرية باستخدام dbutils.secrets.get() ثم طباعة هذا المتغير، يتم استبدال هذا المتغير ب [REDACTED].

تحذير

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