Bagikan melalui


Otoriasi pengguna untuk Apache Ambari Views

Kluster HDInsight berkemampuan Enterprise Security Package (ESP) menyediakan kemampuan tingkat perusahaan, termasuk autentikasi berbasis ID Microsoft Entra. Anda dapat menyinkronkan pengguna baru yang ditambahkan ke grup Microsoft Entra yang telah disediakan akses ke kluster, memungkinkan pengguna tertentu tersebut melakukan tindakan tertentu. Bekerja dengan pengguna, grup, dan izin di Apache Ambari didukung untuk kluster ESP HDInsight dan kluster HDInsight standar.

Pengguna Active Directory dapat masuk ke simpul kluster menggunakan info masuk domain mereka. Mereka juga dapat menggunakan info masuk domain mereka untuk mengautentikasi interaksi kluster dengan titik akhir lain yang disetujui seperti Hue, Ambari Views, ODBC, JDBC, PowerShell, dan REST API.

Peringatan

Jangan mengubah kata sandi pengawas Ambari (hdinsightwatchdog) di kluster HDInsight berbasis Linux Anda. Pengubahan sandi mematahkan kemampuan untuk menggunakan tindakan skrip atau melakukan operasi penskalaan dengan kluster Anda.

Jika Anda belum melakukannya, ikuti petunjuk ini untuk memprovisikan kluster ESP baru.

Mengakses halaman manajemen Ambari

Untuk sampai ke halaman manajemen Ambari di Apache Ambari Web UI, telusuri ke https://CLUSTERNAME.azurehdinsight.net. Masukkan nama pengguna dan kata sandi administrator kluster yang Anda tentukan saat membuat kluster. Selanjutnya, dari dasbor Ambari, pilih Kelola Ambari di bawah menu admin:

Apache Ambari dashboard manage.

Tambah pengguna

Menambahkan pengguna melalui portal

  1. Dari halaman manajemen, pilih Pengguna.

    Apache Ambari management page users.

  2. Pilih + Buat Pengguna Lokal.

  3. Berikan Nama Pengguna dan kata sandi. Pilih Simpan.

Menambahkan pengguna melalui PowerShell

Edit variabel di bawah ini dengan mengganti CLUSTERNAME, NEWUSER, dan PASSWORD dengan nilai yang sesuai.

# 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

Menambahkan pengguna melalui Curl

Edit variabel di bawah ini dengan mengganti CLUSTERNAME, ADMINPASSWORD, NEWUSER, dan USERPASSWORD dengan nilai yang sesuai. Skrip ini dirancang untuk dieksekusi dengan bash. Prompt perintah Windows akan memerlukan sedikit modifikasi.

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"

Memberikan izin ke tampilan Apache Hive

Ambari hadir dengan instans tampilan untuk Apache Hive dan Apache TEZ, di antaranya. Untuk memberikan akses ke satu atau beberapa instans tampilan Apache Hive, buka halaman manajemen Ambari.

  1. Dari halaman manajemen, pilih tautan Tampilan di bawah judul menu Tampilan di sebelah kiri.

    Apache Ambari views view links.

  2. Pada halaman Tampilan, perluas baris HIVE. Ada satu tampilan Apache Hive default yang dibuat ketika layanan Apache Hive ditambahkan ke kluster. Anda juga dapat membuat lebih banyak instans tampilan Apache Hive sesuai kebutuhan. Pilih tampilan Apache Hive:

    HDInsight Views - Apache Hive view.

  3. Gulir ke bagian bawah halaman Tampilan. Di bawah bagian Izin, Anda memiliki dua opsi untuk memberikan izin kepada pengguna domain ke tampilan:

Berikan izin kepada pengguna iniGrant permission to these users.

Memberikan izin ke grup iniGrant permission to these groups.

  1. Untuk menambahkan pengguna, pilih tombol Tambahkan Pengguna.

    • Mulailah mengetik nama pengguna dan Anda akan melihat daftar dropdown nama yang ditentukan sebelumnya.

      Apache Ambari user auto completes.

    • Pilih, atau selesaikan mengetik, nama pengguna. Untuk menambahkan nama pengguna ini sebagai pengguna baru, pilih tombol Baru.

    • Untuk menyimpan perubahan Anda, pilih kotak centang biru.

      Apache Ambari grant user permissions.

  2. Untuk menambahkan grup, pilih tombol Tambahkan Grup.

    • Mulai mengetik nama grup. Proses memilih nama grup yang sudah ada, atau menambahkan grup baru, sama dengan menambahkan pengguna.

    • Untuk menyimpan perubahan Anda, pilih kotak centang biru.

      Apache Ambari grant permissions.

Menambahkan pengguna langsung ke tampilan berguna saat Anda ingin menetapkan izin kepada pengguna untuk menggunakan tampilan itu, tetapi tidak ingin mereka menjadi anggota grup yang memiliki izin tambahan. Untuk mengurangi jumlah biaya tambahan ministratif, mungkin lebih mudah untuk menetapkan izin ke grup.

Memberikan izin ke tampilan TEZ Apache

Instans tampilan Apache TEZ memungkinkan pengguna untuk memantau dan men-debug semua pekerjaan Tez, yang dikirimkan oleh kueri Apache Hive dan skrip Apache Pig. Ada satu instans tampilan Tez default yang dibuat saat kluster di-provisikan.

Untuk menetapkan pengguna dan grup ke instans tampilan Tez, perluas baris TEZ di halaman Tampilan, seperti yang dijelaskan sebelumnya.

HDInsight Views - Apache Tez view.

Untuk menambahkan pengguna atau grup, ulangi langkah 3 - 5 di bagian sebelumnya.

Menetapkan pengguna ke peran

Ada lima peran keamanan untuk pengguna dan grup, yang tercantum dalam rangka mengurangi izin akses:

  • Administrator Kluster
  • Operator Kluster
  • Administrator Layanan
  • Operator Layanan
  • Pengguna Kluster

Untuk mengelola peran, buka halaman manajemen Ambari, lalu pilih tautan Peran di dalam grup menu Kluster di sebelah kiri.

Apache Ambari roles menu links.

Untuk melihat daftar izin yang diberikan untuk setiap peran, klik tanda tanya biru di samping header tabel Peran di halaman Peran.

Apache Ambari roles menu link permissions.

Di halaman ini, ada dua tampilan berbeda yang bisa Anda gunakan untuk mengelola peran bagi pengguna dan grup: Blokir dan Daftar.

Tampilan blok

Tampilan Blok menampilkan setiap peran di barisnya sendiri, dan menyediakan opsi Tetapkan peran untuk pengguna ini dan Tetapkan peran ke grup ini seperti yang dijelaskan sebelumnya.

Apache Ambari roles block view.

Tampilan daftar

Tampilan Daftar menyediakan kapabilitas pengeditan cepat dalam dua kategori: Pengguna dan Grup.

  • Kategori Pengguna dari tampilan Daftar menampilkan daftar semua pengguna sehingga memungkinkan Anda memilih peran untuk setiap pengguna di daftar dropdown.

    Apache Ambari roles list view - users.

  • Kategori Grup dari tampilan Daftar menampilkan semua grup, dan peran yang ditetapkan untuk setiap grup. Dalam contoh kami, daftar grup disinkronkan dari grup Microsoft Entra yang ditentukan dalam properti Grup pengguna Access dari pengaturan Domain kluster. Lihat Membuat kluster HDInsight dengan ESP yang diaktifkan.

    Apache Ambari roles list view - groups.

    Pada gambar di atas, grup "hiveusers" ditetapkan peran Pengguna Kluster. Ini adalah peran baca-saja yang memungkinkan pengguna grup tersebut untuk melihat tetapi tidak mengubah konfigurasi layanan dan metrik kluster.

Masuk ke Ambari sebagai pengguna lihat-saja

Kami telah menetapkan izin "hiveuser1" pengguna domain Microsoft Entra kami ke tampilan Apache Hive dan Tez. Saat kami meluncurkan Ambari Web UI dan memasukkan kredensial domain pengguna ini (nama pengguna Microsoft Entra dalam format email, dan kata sandi), pengguna dialihkan ke halaman Tampilan Ambari. Dari sini, pengguna dapat memilih tampilan yang dapat diakses. Pengguna tidak dapat mengunjungi bagian lain dari situs, termasuk dasbor, layanan, host, pemberitahuan, atau halaman admin.

Apache Ambari user with views only.

Masuk ke Ambari sebagai pengguna kluster

Kami telah menetapkan pengguna domain Microsoft Entra kami "hiveuser2" ke peran Pengguna Kluster. Peran ini mampu mengakses dasbor dan semua item menu. Pengguna kluster memiliki lebih sedikit opsi yang diizinkan daripada administrator. Misalnya, hiveuser2 dapat melihat konfigurasi untuk setiap layanan, tetapi tidak dapat mengeditnya.

Apache Ambari dashboard display.

Langkah berikutnya