تخويل المستخدمين لطرق عرض Apache Ambari

توفر مجموعات HDInsight الممكنة لحزمة أمان المؤسسة (ESP) قدرات على مستوى المؤسسة، بما في ذلك المصادقة المستندة إلى معرف Microsoft Entra. يمكنك مزامنة المستخدمين الجدد الذين تمت إضافتهم إلى مجموعات Microsoft Entra التي تم توفير الوصول إليها، مما يسمح لهؤلاء المستخدمين المحددين بتنفيذ إجراءات معينة. يتم دعم العمل مع المستخدمين والمجموعات والأذونات في Apache Ambari لكل من أنظمة مجموعات ESP HDInsight وأنظمة مجموعات HDInsight القياسية.

يمكن لمستخدمي Active Directory تسجيل الدخول إلى عقد نظام المجموعة باستخدام بيانات اعتماد المجال الخاصة بهم. كما يمكنهم استخدام بيانات اعتماد المجال الخاصة بهم لمصادقة تفاعلات نظام المجموعة مع نقاط النهاية الأخرى المعتمدة مثل Hue وAmbari Views وODBC وJDBC وPowerShell وREST APIs.

تحذير

لا تغير كلمة المرور الخاصة بجهاز مراقبة Ambari (hdinsightwatchdog) على نظام مجموعة HDInsight المستند إلى Linux. يؤدي تغيير كلمة المرور إلى الإضرار بالقدرة على استخدام إجراءات البرنامج النصي أو تنفيذ عمليات التحجيم باستخدام نظام المجموعة.

إذا لم تكن قد فعلت ذلك بالفعل، اتبع هذه الإرشادات لتوفير نظام مجموعة ESP جديد.

الوصول إلى صفحة إدارة Ambari

للوصول إلى صفحة إدارة Ambari على واجهة مستخدم ويب Apache Ambari، استعرض إلى https://CLUSTERNAME.azurehdinsight.net. أدخل اسم المستخدم وكلمة المرور مسؤول نظام المجموعة الذي عرّفته عند إنشاء نظام المجموعة. بعد ذلك، من لوحة معلومات Ambari، حدد إدارة Ambari أسفل قائمة المسؤول:

Apache Ambari dashboard manage.

إضافة مستخدمين

إضافة مستخدمين من خلال البوابة

  1. من صفحة الإدارة، حدد المستخدمون.

    Apache Ambari management page users.

  2. حدد + إنشاء مستخدم محلي.

  3. وفر اسم مستخدم وكلمة مرور. حدد حفظ.

إضافة مستخدمين من خلال PowerShell

حرر المتغيرات أدناه من خلال استبدال CLUSTERNAME وNEWUSER وPASSWORD بالقيم المناسبة.

# Set-ExecutionPolicy Unrestricted

# Begin user input; update values
$clusterName="CLUSTERNAME"
$user="NEWUSER"
$userpass='PASSWORD'
# End user input

$adminCredentials = Get-Credential -UserName "admin" -Message "Enter admin password"

$clusterName = $clusterName.ToLower()
$createUserUrl="https://$($clusterName).azurehdinsight.net/api/v1/users"

$createUserBody=@{
    "Users/user_name" = "$user"
    "Users/password" = "$userpass"
    "Users/active" = "$true"
    "Users/admin" = "$false"
} | ConvertTo-Json

# Create user
$statusCode =
Invoke-WebRequest `
    -Uri $createUserUrl `
    -Credential $adminCredentials `
    -Method POST `
    -Headers @{"X-Requested-By" = "ambari"} `
    -Body $createUserBody | Select-Object -Expand StatusCode

if ($statusCode -eq 201) {
    Write-Output "User is created: $user"
}
else
{
    Write-Output 'User is not created'
    Exit
}

$grantPrivilegeUrl="https://$($clusterName).azurehdinsight.net/api/v1/clusters/$($clusterName)/privileges"

$grantPrivilegeBody=@{
    "PrivilegeInfo" = @{
        "permission_name" = "CLUSTER.USER"
        "principal_name" = "$user"
        "principal_type" = "USER"
    }
} | ConvertTo-Json

# Grant privileges
$statusCode =
Invoke-WebRequest `
    -Uri $grantPrivilegeUrl `
    -Credential $adminCredentials `
    -Method POST `
    -Headers @{"X-Requested-By" = "ambari"} `
    -Body $grantPrivilegeBody | Select-Object -Expand StatusCode

if ($statusCode -eq 201) {
    Write-Output 'Privilege is granted'
}
else
{
    Write-Output 'Privilege is not granted'
    Exit
}

Write-Host "Pausing for 100 seconds"
Start-Sleep -s 100

$userCredentials = "$($user):$($userpass)"
$encodedUserCredentials = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($userCredentials))
$zookeeperUrlHeaders = @{ Authorization = "Basic $encodedUserCredentials" }
$getZookeeperurl="https://$($clusterName).azurehdinsight.net/api/v1/clusters/$($clusterName)/services/ZOOKEEPER/components/ZOOKEEPER_SERVER"

# Perform query with new user
$zookeeperHosts =
Invoke-WebRequest `
    -Uri $getZookeeperurl `
    -Method Get `
    -Headers $zookeeperUrlHeaders

Write-Output $zookeeperHosts

إضافة مستخدمين من خلال Curl

حرر المتغيرات أدناه من خلال استبدال CLUSTERNAME وADMINPASSWORD وNEWUSER وUSERPASSWORD بالقيم المناسبة. تم تصميم البرنامج النصي ليتم تنفيذه باستخدام bash. ستكون هناك حاجة إلى تعديلات طفيفة لموجه أوامر Windows.

export CLUSTER_NAME="CLUSTERNAME"
export ADMIN_PASSWORD='ADMINPASSWORD'
export USER="NEWUSER"
export USER_PASSWORD='USERPASSWORD'

# create user
curl -k -u admin:$ADMIN_PASSWORD -H "X-Requested-By: ambari" -X POST \
-d "{\"Users/user_name\":\"$USER\",\"Users/password\":\"$USER_PASSWORD\",\"Users/active\":\"true\",\"Users/admin\":\"false\"}" \
https://$CLUSTER_NAME.azurehdinsight.net/api/v1/users

echo "user created: $USER"

# grant permissions
curl -k -u admin:$ADMIN_PASSWORD -H "X-Requested-By: ambari" -X POST \
-d '[{"PrivilegeInfo":{"permission_name":"CLUSTER.USER","principal_name":"'$USER'","principal_type":"USER"}}]' \
https://$CLUSTER_NAME.azurehdinsight.net/api/v1/clusters/$CLUSTER_NAME/privileges

echo "Privilege is granted"

echo "Pausing for 100 seconds"
sleep 10s

# perform query using new user account
curl -k -u $USER:$USER_PASSWORD -H "X-Requested-By: ambari" \
-X GET "https://$CLUSTER_NAME.azurehdinsight.net/api/v1/clusters/$CLUSTER_NAME/services/ZOOKEEPER/components/ZOOKEEPER_SERVER"

منح الأذونات إلى طرق عرض Apache Hive

يرد Ambari مع مثيلات عرض لـ Apache Hive وApache TEZ، من بين أمور أخرى. لمنح حق الوصول إلى مثيل واحد أو أكثر من مثيلات طريقة عرض Hive، انتقل إلى صفحة إدارة Ambari.

  1. من صفحة الإدارة، حدد الارتباط طرق العرض أسفل عنوان القائمة طرق العرض على اليسار.

    Apache Ambari views view links.

  2. في الصفحة طرق العرض، وسّع الصف HIVE. هناك طريقة عرض Hive افتراضية واحدة يتم إنشاؤها عند إضافة خدمة Hive إلى نظام المجموعة. يمكنك أيضًا إنشاء المزيد من مثيلات طريقة عرض Hive حسب الحاجة. حدد طريقة عرض Hive:

    HDInsight Views - Apache Hive view.

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

منح الإذن لهؤلاء المستخدمينGrant permission to these users.

منح الإذن لهذه المجموعاتGrant permission to these groups.

  1. لإضافة مستخدم، حدد زر إضافة مستخدم.

    • ابدأ بكتابة اسم المستخدم وسترى قائمة منسدلة بالأسماء المعرفة مسبقًا.

      Apache Ambari user auto completes.

    • حدد اسم المستخدم أو أكمل كتابته. لإضافة اسم المستخدم هذا كمستخدم جديد، حدد الزر جديد.

    • لحفظ التغييرات، حدد مربع الاختيار الأزرق.

      Apache Ambari grant user permissions.

  2. لإضافة مجموعة، حدد الزر إضافة مجموعة.

    • ابدأ بكتابة اسم المجموعة. عملية تحديد اسم مجموعة موجودة أو إضافة مجموعة جديدة هي نفسها الخاصة بإضافة مستخدمين.

    • لحفظ التغييرات، حدد مربع الاختيار الأزرق.

      Apache Ambari grant permissions.

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

منح الأذونات إلى طرق عرض Apache TEZ

تسمح مثيلات طريقة عرض Apache TEZ للمستخدمين بمراقبة وتصحيح جميع مهام Tez، المقدمة بواسطة استعلامات Apache Hive ونصوص Apache Pig. هناك مثيل طريقة عرض Tez افتراضي واحد يتم إنشاؤه عند توفير نظام المجموعة.

لتعيين مستخدمين ومجموعات لمثيل طريقة عرض Tez، قم بتوسيع صف TEZ في صفحة طرق العرض، كما هو موضح سابقًا.

HDInsight Views - Apache Tez view.

لإضافة مستخدمين أو مجموعات، كرر الخطوات من 3 إلى 5 في القسم السابق.

تعيين مستخدمين إلى أدوار

هناك خمسة أدوار أمان للمستخدمين والمجموعات، مدرجة حسب ترتيب تقليل أذونات الوصول:

  • مسؤول نظام المجموعة
  • عامل تشغيل نظام المجموعة
  • مسؤول الخدمة
  • عامل تشغيل الخدمة
  • مستخدم نظام المجموعة

لإدارة الأدوار، انتقل إلى صفحة إدارة Ambari، ثم حدد الارتباط الأدوار ضمن مجموعة قوائم نظام المجموعة على اليسار.

Apache Ambari roles menu links.

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

Apache Ambari roles menu link permissions.

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

طريقة عرض الحظر

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

Apache Ambari roles block view.

طريقة عرض القائمة

توفر طريقة عرض القائمة إمكانيات تحرير سريعة في فئتين: المستخدمون والمجموعات.

  • تعرض فئة المستخدمين في طريقة العرض القائمة قائمة بجميع المستخدمين، مما يسمح لك بتحديد دور لكل مستخدم في القائمة المنسدلة.

    Apache Ambari roles list view - users.

  • تعرض فئة المجموعات في طريقة العرض القائمة جميع المجموعات والدور المعين لكل مجموعة. في مثالنا، تتم مزامنة قائمة المجموعات من مجموعات Microsoft Entra المحددة في خاصية مجموعة مستخدم Access لإعدادات المجال الخاصة بالمجموعة. راجع إنشاء نظام مجموعة HDInsight مع تمكين ESP.

    Apache Ambari roles list view - groups.

    في الصورة أعلاه، يتم تعيين مجموعة دور مستخدم نظام المجموعة لمجموعة «hiveusers». هذا هو دور للقراءة فقط يسمح لمستخدمي تلك المجموعة بعرض تكوينات الخدمة ومقاييس نظام المجموعة ولكن عدم تغييرها.

تسجيل الدخول إلى Ambari كمستخدم لطريقة العرض فقط

لقد قمنا بتعيين أذونات "hiveuser1" لمستخدم مجال Microsoft Entra إلى طرق عرض Hive وTez. عند تشغيل واجهة مستخدم ويب Ambari وإدخال بيانات اعتماد مجال هذا المستخدم (اسم مستخدم Microsoft Entra بتنسيق البريد الإلكتروني وكلمة المرور)، تتم إعادة توجيه المستخدم إلى صفحة طرق عرض Ambari. من هنا، يمكن للمستخدم تحديد أي طريقة عرض يمكن الوصول إليها. لا يمكن للمستخدم زيارة أي جزء آخر من الموقع، بما في ذلك صفحات لوحة المعلومات أو الخدمات أو المضيفين أو التنبيهات أو المسؤول.

Apache Ambari user with views only.

تسجيل الدخول إلى Ambari كمستخدم نظام مجموعة

لقد قمنا بتعيين مستخدم مجال Microsoft Entra "hiveuser2" لدور مستخدم نظام المجموعة. بإمكان هذا الدور الوصول إلى لوحة المعلومات وجميع عناصر القائمة. مستخدم نظام المجموعة لديه خيارات مسموح بها أقل من المسؤول. على سبيل المثال، يمكن لـ hiveuser2 عرض التكوينات لكل من الخدمات ولكن لا يمكن تحريرها.

Apache Ambari dashboard display.

الخطوات التالية