Kullanıcıları Apache Ambari Görünümleri için yetkilendirme
Kurumsal Güvenlik Paketi (ESP) özellikli HDInsight kümeleri , Microsoft Entra ID tabanlı kimlik doğrulaması da dahil olmak üzere kurumsal düzeyde özellikler sağlar. Kümeye erişim sağlanan Microsoft Entra gruplarına eklenen yeni kullanıcıları eşitleyerek belirli kullanıcıların belirli eylemleri gerçekleştirmesini sağlayabilirsiniz. Apache Ambari'de kullanıcılar, gruplar ve izinlerle çalışırken hem ESP HDInsight kümeleri hem de standart HDInsight kümeleri için desteklenir.
Active Directory kullanıcıları etki alanı kimlik bilgilerini kullanarak küme düğümlerinde oturum açabilir. Ayrıca Hue, Ambari Görünümleri, ODBC, JDBC, PowerShell ve REST API'leri gibi onaylı diğer uç noktalarla küme etkileşimlerinin kimliğini doğrulamak için etki alanı kimlik bilgilerini kullanabilirler.
Uyarı
Linux tabanlı HDInsight kümenizde Ambari watchdog (hdinsightwatchdog) parolasını değiştirmeyin. Parolanın değiştirilmesi, betik eylemlerini kullanma veya kümenizle ölçeklendirme işlemleri gerçekleştirme özelliğini bozar.
Henüz yapmadıysanız, yeni bir ESP kümesi sağlamak için bu yönergeleri izleyin.
Ambari yönetim sayfasına erişme
Apache Ambari Web kullanıcı arabiriminde Ambari yönetim sayfasına ulaşmak için https://CLUSTERNAME.azurehdinsight.net
adresine gidin. Kümeyi oluştururken tanımladığınız küme yöneticisi kullanıcı adını ve parolasını girin. Ardından Ambari panosundan yönetici menüsünün altında Ambari'yi Yönet'i seçin:
Kullanıcı ekle
Portal üzerinden kullanıcı ekleme
Yönetim sayfasında Kullanıcılar'ı seçin.
+ Yerel Kullanıcı Oluştur'u seçin.
Kullanıcı adı ve parola girin. Kaydet'i seçin.
PowerShell aracılığıyla kullanıcı ekleme
, NEWUSER
ve PASSWORD
değerlerini uygun değerlerle değiştirerek CLUSTERNAME
aşağıdaki değişkenleri düzenleyin.
# 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 aracılığıyla kullanıcı ekleme
, , ADMINPASSWORD
NEWUSER
ve USERPASSWORD
değerlerini uygun değerlerle değiştirerek CLUSTERNAME
aşağıdaki değişkenleri düzenleyin. Betik bash ile yürütülecek şekilde tasarlanmıştır. Windows komut istemi için küçük değişiklikler gerekebilir.
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 görünümlerine izin verme
Ambari, Diğerlerinin yanında Apache Hive ve Apache TEZ için görünüm örnekleriyle birlikte gelir. Bir veya daha fazla Hive görünümü örneğine erişim vermek için Ambari yönetim sayfasına gidin.
Yönetim sayfasından soldaki Görünümler menü başlığının altındaki Görünümler bağlantısını seçin.
Görünümler sayfasında HIVE satırını genişletin. Hive hizmeti kümeye eklendiğinde oluşturulan bir varsayılan Hive görünümü vardır. Gerektiğinde daha fazla Hive görünümü örneği de oluşturabilirsiniz. Hive görünümü seçin:
Görünüm sayfasının en altına doğru kaydırın. İzinler bölümünde, etki alanı kullanıcılarına görünüm izinleri vermek için iki seçeneğiniz vardır:
Bu kullanıcılara izin ver
Bu gruplara izin ver
Kullanıcı eklemek için Kullanıcı Ekle düğmesini seçin.
Kullanıcı adını yazmaya başladığınızda, önceden tanımlanmış adların bir açılan listesini görürsünüz.
Kullanıcı adını seçin veya yazmayı tamamlayın. Bu kullanıcı adını yeni kullanıcı olarak eklemek için Yeni düğmesini seçin.
Değişikliklerinizi kaydetmek için mavi onay kutusunu seçin.
Grup eklemek için Grup Ekle düğmesini seçin.
Grup adını yazmaya başlayın. Mevcut bir grup adını seçme veya yeni grup ekleme işlemi, kullanıcı ekleme işlemiyle aynıdır.
Değişikliklerinizi kaydetmek için mavi onay kutusunu seçin.
Kullanıcıları doğrudan görünüme eklemek, bir kullanıcıya bu görünümü kullanması için izinler atamak istediğinizde, ancak ek izinlere sahip bir grubun üyesi olmalarını istemediğinizde yararlıdır. Yönetim yükü miktarını azaltmak için gruplara izin atamak daha kolay olabilir.
Apache TEZ görünümlerine izin verme
Apache TEZ görünüm örnekleri, kullanıcıların Apache Hive sorguları ve Apache Pig betikleri tarafından gönderilen tüm Tez işlerini izlemesine ve hatalarını ayıklamasına olanak tanır. Küme sağlandığında oluşturulan bir varsayılan Tez görünümü örneği vardır.
Kullanıcıları ve grupları Bir Tez görünümü örneğine atamak için, daha önce açıklandığı gibi Görünümler sayfasındaki TEZ satırını genişletin.
Kullanıcı veya grup eklemek için önceki bölümde 3- 5. adımları yineleyin.
Rollere kullanıcı atama
Kullanıcılar ve gruplar için erişim izinlerini azaltma sırasına göre listelenen beş güvenlik rolü vardır:
- Küme Yöneticisi
- Küme İşleci
- Hizmet Yöneticisi
- Hizmet İşleci
- Küme Kullanıcısı
Rolleri yönetmek için Ambari yönetim sayfasına gidin ve soldaki Kümeler menü grubunda Roller bağlantısını seçin.
Her role verilen izinlerin listesini görmek için Roller sayfasındaki Roller tablosu üst bilgisinin yanındaki mavi soru işaretine tıklayın.
Bu sayfada, kullanıcılar ve gruplar için rolleri yönetmek için kullanabileceğiniz iki farklı görünüm vardır: Engelle ve Listele.
Blok görünümü
Blok görünümü her rolü kendi satırında görüntüler ve daha önce açıklandığı gibi ve *Assign roles to these groups
seçeneklerini sağlarAssign roles to these users
.
Liste görünümü
Liste görünümü iki kategoride hızlı düzenleme özellikleri sağlar: Kullanıcılar ve Gruplar.
Liste görünümünün Kullanıcılar kategorisi, tüm kullanıcıların listesini görüntüleyerek açılan listedeki her kullanıcı için bir rol seçmenize olanak tanır.
Liste görünümünün Gruplar kategorisi tüm grupları ve her gruba atanan rolü görüntüler. Örneğimizde grup listesi, kümenin Etki Alanı ayarlarının Access kullanıcı grubu özelliğinde belirtilen Microsoft Entra gruplarından eşitlenir. Bkz. ESP etkinken HDInsight kümesi oluşturma.
Yukarıdaki görüntüde, hive kullanıcıları grubuna Küme Kullanıcısı rolü atanır. Bu, söz konusu grubun kullanıcılarının hizmet yapılandırmalarını ve küme ölçümlerini görüntülemesine ancak değiştirmesine izin veren salt okunur bir roldür.
Ambari'de yalnızca görüntüleme kullanıcısı olarak oturum açma
Microsoft Entra etki alanı kullanıcı "hiveuser1" izinlerimizi Hive ve Tez görünümlerine atadık. Ambari Web kullanıcı arabirimini başlatıp bu kullanıcının etki alanı kimlik bilgilerini (e-posta biçiminde Microsoft Entra kullanıcı adı ve parola) girdiğimizde, kullanıcı Ambari Görünümleri sayfasına yönlendirilir. Buradan, kullanıcı herhangi bir erişilebilir görünümü seçebilir. Kullanıcı pano, hizmetler, konaklar, uyarılar veya yönetici sayfaları dahil olmak üzere sitenin başka bir bölümünü ziyaret edemez.
Ambari'de küme kullanıcısı olarak oturum açma
Microsoft Entra etki alanı kullanıcımız "hiveuser2" öğesini Küme Kullanıcısı rolüne atadık. Bu rol panoya ve tüm menü öğelerine erişebilir. Küme kullanıcılarının izin verilen seçenekleri yöneticiden daha azdır. Örneğin hiveuser2, hizmetlerin her birinin yapılandırmalarını görüntüleyebilir, ancak düzenleyemez.