الأسرار

السر هو زوج قيم المفاتيح الذي يخزن المواد السرية، مع اسم مفتاح فريد داخل نطاق سري. يقتصر كل نطاق على 1000 سر. الحد الأقصى المسموح به لحجم القيمة السرية هو 128 كيلوبايت.

راجع أيضا واجهة برمجة تطبيقات الأسرار.

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

أسماء البيانات السرية غير حساسة لحالة الأحرف.

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

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

لإنشاء سر في Azure Key Vault، يمكنك استخدام Azure Set Secret REST API أو واجهة مستخدم مدخل Microsoft Azure.

Azure Key Vault

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

لإنشاء سر في نطاق مدعوم من Databricks باستخدام Databricks CLI (الإصدار 0.205 وما فوق):

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 CLI؟.

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

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

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.

استخدام سر في خاصية تكوين Spark أو متغير البيئة

هام

هذه الميزة في المعاينة العامة.

إشعار

متوفر في Databricks Runtime 6.4 Extended Support وما فوق.

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

هام

ضع في اعتبارك الآثار الأمنية التالية عند الرجوع إلى الأسرار في خاصية تكوين Spark أو متغير البيئة:

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

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

  • لا يتم تنقيح الأسرار من سجل stdout برنامج تشغيل Spark وتدفقاتهstderr. لحماية البيانات الحساسة، بشكل افتراضي، لا يمكن عرض سجلات برنامج تشغيل Spark إلا من قبل المستخدمين الذين لديهم إذن CAN MANAGE في الوظيفة ووضع وصول مستخدم واحد ومجموعات وضع الوصول المشترك. للسماح للمستخدمين الذين لديهم الإذن CAN ATTACH TO أو CAN RESTART بعرض السجلات على هذه المجموعات، قم بتعيين خاصية تكوين Spark التالية في تكوين نظام المجموعة: spark.databricks.acl.needAdminPermissionToViewLogs false.

    في أنظمة مجموعات وضع الوصول المشترك للعزل، يمكن عرض سجلات برنامج تشغيل Spark من قبل المستخدمين الذين لديهم إذن CAN ATTACH TO أو CAN MANAGE. لتحديد من يمكنه قراءة السجلات للمستخدمين الذين لديهم إذن CAN MANAGE فقط، قم بتعيين spark.databricks.acl.needAdminPermissionToViewLogs إلى true.

المتطلبات والقيود

تنطبق المتطلبات والقيود التالية على الرجوع إلى الأسرار في خصائص تكوين Spark ومتغيرات البيئة:

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

بناء الجملة للإشارة إلى الأسرار في خاصية تكوين Spark أو متغير البيئة

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

يجب أن يكون {{secrets/<scope-name>/<secret-name>}}بناء جملة خاصية تكوين Spark أو قيمة متغير البيئة . يجب أن تبدأ القيمة ب {{secrets/ وتنتهي ب }}.

الأجزاء المتغيرة من خاصية تكوين Spark أو متغير البيئة هي:

  • <scope-name>: اسم النطاق الذي يرتبط فيه السر.
  • <secret-name>: الاسم الفريد للسر في النطاق.

على سبيل المثال، {{secrets/scope1/key1}}

إشعار

  • يجب ألا تكون هناك مسافات بين الأقواس المتعرجة. إذا كانت هناك مسافات، يتم التعامل معها كجزء من النطاق أو الاسم السري.

الرجوع إلى سر باستخدام خاصية تكوين Spark

يمكنك تحديد مرجع إلى سر في خاصية تكوين Spark بالتنسيق التالي:

spark.<property-name> {{secrets/<scope-name>/<secret-name>}}

يمكن لأي تكوين <property-name> Spark الرجوع إلى سر. يمكن لكل خاصية تكوين Spark الرجوع إلى سر واحد فقط، ولكن يمكنك تكوين خصائص Spark متعددة للإشارة إلى الأسرار.

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

يمكنك تعيين تكوين Spark للإشارة إلى سر:

spark.password {{secrets/scope1/key1}}

لإحضار البيانات السرية في دفتر الملاحظات واستخدامها:

Python

spark.conf.get("spark.password")

SQL

SELECT ${spark.password};

الرجوع إلى سر في متغير بيئة

يمكنك تحديد مسار سري في متغير بيئة بالتنسيق التالي:

<variable-name>={{secrets/<scope-name>/<secret-name>}}

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

يمكن الوصول إلى متغيرات البيئة التي تشير إلى الأسرار من برنامج نصي في مجال المجموعة. راجع تعيين متغيرات البيئة واستخدامها مع البرامج النصية init.

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

يمكنك تعيين متغير بيئة للإشارة إلى سر:

SPARKPASSWORD={{secrets/scope1/key1}}

لجلب السر في برنامج نصي init، قم بالوصول $SPARKPASSWORD باستخدام النمط التالي:

if [ -n "$SPARKPASSWORD" ]; then
  # code to use ${SPARKPASSWORD}
fi

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

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

إنشاء قائمة التحكم بالوصول (ACL) سرية

لإنشاء قائمة التحكم بالوصول (ACL) سرية لنطاق سري معين باستخدام Databricks CLI (قديم)

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

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

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

عرض قوائم التحكم بالوصول السرية

لعرض جميع قوائم التحكم بالوصول السرية لنطاق سري معين:

databricks secrets list-acls <scope-name>

للحصول على قائمة التحكم بالوصول (ACL) السرية المطبقة على أساس لنطاق سري معين:

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

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

حذف قائمة التحكم بالوصول (ACL) سرية

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

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