Küme yapılandırmaları için ayrıntılı rol tabanlı erişime geçme
Hassas bilgiler elde etmek için daha ayrıntılı rol tabanlı erişimi desteklemek için bazı önemli değişiklikler sunuyoruz. Bu değişikliklerin bir parçası olarak, etkilenen varlıklardan/senaryolardan birini kullanıyorsanız 3 Eylül 2019'a kadar bazı eylemler gerekebilir.
Değişenler
Daha önce, sahip, katkıda bulunan veya Okuyucu Azure rollerine sahip olan küme kullanıcıları, izni olan herkes */read
tarafından kullanılabildikleri için gizli diziler HDInsight API'si aracılığıyla alınabiliyordu. Gizli diziler, kullanıcının rolünün izin vermesi gerekenden daha fazla yükseltilmiş erişim elde etmek için kullanılabilecek değerler olarak tanımlanır. Bunlar küme ağ geçidi HTTP kimlik bilgileri, depolama hesabı anahtarları ve veritabanı kimlik bilgileri gibi değerleri içerir.
3 Eylül 2019'da bu gizli dizilere erişim izni gerektirir Microsoft.HDInsight/clusters/configurations/action
ve kullanıcı Okuyucu rolüyle bu gizli diziye erişemez. Bu izne sahip roller Katkıda Bulunan, Sahip ve yeni HDInsight Küme Operatörü rolüdür.
Katkıda Bulunan veya Sahip'in yönetim izinleri verilmeden gizli dizileri alabilen yeni bir HDInsight Küme Operatörü rolü de sunuyoruz. Özetlemek gerekirse:
Rol | Önceden | İleriYe Doğru |
---|---|---|
Okuyucu | - Gizli diziler de dahil olmak üzere okuma erişimi. | - Gizli diziler hariç okuma erişimi |
HDInsight Küme operatörü (Yeni Rol) |
Geçersiz | - Gizli diziler de dahil olmak üzere okuma/yazma erişimi |
Katılımcı | - Gizli diziler de dahil olmak üzere okuma/yazma erişimi. - Tüm Azure kaynağı türlerini oluşturun ve yönetin. - Betik eylemlerini yürütür. |
Değişiklik yok |
Sahip | - Gizli diziler dahil okuma/yazma erişimi. - Tüm kaynaklara tam erişim - Başkalarına erişim yetkisi verin. - Betik eylemlerini yürütür. |
Değişiklik yok |
Küme gizli dizilerine okuma/yazma erişimi vermek üzere bir kullanıcıya HDInsight Küme Operatörü rol atamasının nasıl ekleneceği hakkında bilgi için aşağıdaki Kullanıcıya HDInsight Küme Operatörü rol ataması ekleme bölümüne bakın.
Bu değişikliklerden etkileniyor muyum?
Aşağıdaki varlıklar ve senaryolar etkilenir:
- API: veya
/configurations/{configurationName}
uç noktalarını kullanan/configurations
kullanıcılar. - Visual Studio için Azure HDInsight Araçları 1.1.1 sürümü ya da üzeri.
- IntelliJ için Azure Araç Takımı 3.20.0 sürümü ya da üzeri.
- Visual Studio sürüm 2.3.9000.1 için Azure Data Lake ve Stream Analytics Araçları.
- Eclipse için Azure Toolkit sürüm 3.15.0 veya üzeri.
- .NET için SDK
- sürüm 1.x veya 2.x: ConfigurationsOperationsExtensions sınıfından ,
GetConnectivitySettings
,ConfigureHttpSettings
veyaEnableHttp
DisableHttp
yöntemlerini kullananGetClusterConfigurations
kullanıcılar. - sürüm 3.x ve üzeri: Sınıftan
Get
,Update
,EnableHttp
veyaDisableHttp
yöntemlerini kullanan kullanıcılarConfigurationsOperationsExtensions
.
- sürüm 1.x veya 2.x: ConfigurationsOperationsExtensions sınıfından ,
- Python için SDK: Sınıfından
get
veyaupdate
yöntemleriniConfigurationsOperations
kullanan kullanıcılar. - Java için SDK: Sınıfından
update
veyaget
yöntemleriniConfigurationsInner
kullanan kullanıcılar. - Go için SDK: Yapıdan
Get
ConfigurationsClient
veyaUpdate
yöntemlerini kullanan kullanıcılar. - Az.HDInsight PowerShell sürüm 2.0.0. Senaryonuzun geçiş adımlarını görmek için aşağıdaki bölümlere bakın (ya da yukarıdaki bağlantıları kullanın).
API
Aşağıdaki API'ler değiştirilir veya kullanım dışıdır:
- GET /configurations/{configurationName} (hassas bilgiler kaldırıldı)
- Daha önce tek tek yapılandırma türlerini (gizli diziler dahil) almak için kullanılır.
- 3 Eylül 2019'da bu API çağrısı artık gizli dizilerin atlanmış olduğu tek tek yapılandırma türlerini döndürecektir. Gizli diziler de dahil olmak üzere tüm yapılandırmaları almak için yeni POST/configurations çağrısını kullanın. Yalnızca ağ geçidi ayarlarını almak için yeni POST /getGateway Ayarlar çağrısını kullanın.
- GET /configurations (kullanım dışı)
- Daha önce tüm yapılandırmaları (gizli diziler dahil) almak için kullanılır
- 3 Eylül 2019'da bu API çağrısı kullanım dışı bırakılacak ve artık desteklenmeyecektir. Bundan sonra tüm yapılandırmaları almak için yeni POST/configurations çağrısını kullanın. Hassas parametreleri atlanmış yapılandırmaları almak için GET /configurations/{configurationName} çağrısını kullanın.
- POST /configurations/{configurationName} (kullanım dışı)
- Daha önce ağ geçidi kimlik bilgilerini güncelleştirmek için kullanılır.
- 3 Eylül 2019'da bu API çağrısı kullanım dışı bırakılacak ve artık desteklenmeyecektir. Bunun yerine yeni POST /updateGateway Ayarlar kullanın.
Aşağıdaki yeni API'ler eklendi:
- POST/yapılandırmalar
- Gizli diziler de dahil olmak üzere tüm yapılandırmaları almak için bu API'yi kullanın.
- POST /getGateway Ayarlar
- Ağ geçidi ayarlarını almak için bu API'yi kullanın.
- POST /updateGateway Ayarlar
- Ağ geçidi ayarlarını (kullanıcı adı ve/veya parola) güncelleştirmek için bu API'yi kullanın.
Visual Studio Code için Azure HDInsight Araçları
Sürüm 1.1.1 veya üzerini kullanıyorsanız, kesintileri önlemek için Visual Studio Code için Azure HDInsight Araçları'nın en son sürümüne güncelleştirin.
Azure Toolkit for IntelliJ
3.20.0 veya üzeri bir sürüm kullanıyorsanız kesintileri önlemek için IntelliJ için Azure Toolkit eklentisinin en son sürümüne güncelleştirin.
Visual Studio için Azure Data Lake ve Stream Analytics Araçları
Kesintileri önlemek için Visual Studio için Azure Data Lake ve Stream Analytics Araçları'nın 2.3.9000.1 veya sonraki bir sürümüne güncelleştirin. Güncelleştirmeyle ilgili yardım için Visual Studio için Data Lake Araçlarını Güncelleştirme belgelerimize bakın.
Azure Toolkit for Eclipse
3.15.0 veya üzeri bir sürüm kullanıyorsanız kesintileri önlemek için Eclipse için Azure Toolkit'in en son sürümüne güncelleştirin.
.NET için SDK
Sürüm 1.x ve 2.x
.NET için HDInsight SDK'sının 2.1.0 sürümüne güncelleştirin. Bu değişikliklerden etkilenen bir yöntem kullanıyorsanız en az kod değişikliği gerekebilir:
ClusterOperationsExtensions.GetClusterConfigurations
artık depolama anahtarları (çekirdek site) veya HTTP kimlik bilgileri (ağ geçidi) gibi hassas parametreleri döndürmez.- Hassas parametreler de dahil olmak üzere tüm yapılandırmaları almak için ileriye doğru kullanın
ClusterOperationsExtensions.ListConfigurations
. 'Okuyucu' rolüne sahip kullanıcılar bu yöntemi kullanamaz. Bir küme için hassas bilgilere erişebilecek kullanıcılar üzerinde ayrıntılı denetim sağlar. - Yalnızca HTTP ağ geçidi kimlik bilgilerini almak için kullanın
ClusterOperationsExtensions.GetGatewaySettings
.
- Hassas parametreler de dahil olmak üzere tüm yapılandırmaları almak için ileriye doğru kullanın
ClusterOperationsExtensions.GetConnectivitySettings
artık kullanım dışıdır ve ileClusterOperationsExtensions.GetGatewaySettings
değiştirilmiştir.ClusterOperationsExtensions.ConfigureHttpSettings
artık kullanım dışıdır ve ileClusterOperationsExtensions.UpdateGatewaySettings
değiştirilmiştir.ConfigurationsOperationsExtensions.EnableHttp
veDisableHttp
artık kullanım dışıdır. HTTP artık her zaman etkindir, bu nedenle bu yöntemler artık gerekli değildir.
Sürüm 3.x ve sonraki sürümler
.NET için HDInsight SDK'sının 5.0.0 veya sonraki bir sürümüne güncelleştirin. Bu değişikliklerden etkilenen bir yöntem kullanıyorsanız en az kod değişikliği gerekebilir:
ConfigurationOperationsExtensions.Get
artık depolama anahtarları (çekirdek site) veya HTTP kimlik bilgileri (ağ geçidi) gibi hassas parametreleri döndürmez.- Hassas parametreler de dahil olmak üzere tüm yapılandırmaları almak için ileriye doğru kullanın
ConfigurationOperationsExtensions.List
. 'Okuyucu' rolüne sahip kullanıcılar bu yöntemi kullanamaz. Bir küme için hassas bilgilere erişebilecek kullanıcılar üzerinde ayrıntılı denetim sağlar. - Yalnızca HTTP ağ geçidi kimlik bilgilerini almak için kullanın
ClusterOperationsExtensions.GetGatewaySettings
.
- Hassas parametreler de dahil olmak üzere tüm yapılandırmaları almak için ileriye doğru kullanın
ConfigurationsOperationsExtensions.Update
artık kullanım dışıdır ve ileClusterOperationsExtensions.UpdateGatewaySettings
değiştirilmiştir.ConfigurationsOperationsExtensions.EnableHttp
veDisableHttp
artık kullanım dışıdır. HTTP artık her zaman etkindir, bu nedenle bu yöntemler artık gerekli değildir.
Python için SDK
Python için HDInsight SDK'sının 1.0.0 veya sonraki bir sürümüne güncelleştirin. Bu değişikliklerden etkilenen bir yöntem kullanıyorsanız en az kod değişikliği gerekebilir:
ConfigurationsOperations.get
artık depolama anahtarları (çekirdek site) veya HTTP kimlik bilgileri (ağ geçidi) gibi hassas parametreleri döndürmez.- Hassas parametreler de dahil olmak üzere tüm yapılandırmaları almak için ileriye doğru kullanın
ConfigurationsOperations.list
. 'Okuyucu' rolüne sahip kullanıcılar bu yöntemi kullanamaz. Bir küme için hassas bilgilere erişebilecek kullanıcılar üzerinde ayrıntılı denetim sağlar. - Yalnızca HTTP ağ geçidi kimlik bilgilerini almak için kullanın
ClusterOperations.get_gateway_settings
.
- Hassas parametreler de dahil olmak üzere tüm yapılandırmaları almak için ileriye doğru kullanın
ConfigurationsOperations.update
artık kullanım dışıdır ve ileClusterOperations.update_gateway_settings
değiştirilmiştir.
Java için SDK
Java için HDInsight SDK'sının 1.0.0 veya sonraki bir sürümüne güncelleştirin. Bu değişikliklerden etkilenen bir yöntem kullanıyorsanız en az kod değişikliği gerekebilir:
ConfigurationsInner.get
artık depolama anahtarları (çekirdek site) veya HTTP kimlik bilgileri (ağ geçidi) gibi hassas parametreleri döndürmez.ConfigurationsInner.update
artık kullanım dışı bırakıldı.
Go için SDK
Go için HDInsight SDK'sının 27.1.0 veya sonraki bir sürümüne güncelleştirin. Bu değişikliklerden etkilenen bir yöntem kullanıyorsanız en az kod değişikliği gerekebilir:
ConfigurationsClient.get
artık depolama anahtarları (çekirdek site) veya HTTP kimlik bilgileri (ağ geçidi) gibi hassas parametreleri döndürmez.- Hassas parametreler de dahil olmak üzere tüm yapılandırmaları almak için ileriye doğru kullanın
ConfigurationsClient.list
. 'Okuyucu' rolüne sahip kullanıcılar bu yöntemi kullanamaz. Bir küme için hassas bilgilere erişebilecek kullanıcılar üzerinde ayrıntılı denetim sağlar. - Yalnızca HTTP ağ geçidi kimlik bilgilerini almak için kullanın
ClustersClient.get_gateway_settings
.
- Hassas parametreler de dahil olmak üzere tüm yapılandırmaları almak için ileriye doğru kullanın
ConfigurationsClient.update
artık kullanım dışıdır ve ileClustersClient.update_gateway_settings
değiştirilmiştir.
Az.HDInsight PowerShell
Kesintileri önlemek için Az PowerShell sürüm 2.0.0 veya sonraki bir sürüme güncelleştirin. Bu değişikliklerden etkilenen bir yöntem kullanıyorsanız en az kod değişikliği gerekebilir.
Grant-AzHDInsightHttpServicesAccess
artık kullanım dışıdır ve yeniSet-AzHDInsightGatewayCredential
cmdlet ile değiştirilmiştir.Get-AzHDInsightJobOutput
depolama anahtarına ayrıntılı rol tabanlı erişimi destekleyecek şekilde güncelleştirildi.- HDInsight Küme operatörü, Katkıda Bulunan veya Sahip rollerine sahip kullanıcılar etkilenmez.
- Yalnızca Okuyucu rolüne sahip kullanıcıların parametreyi açıkça belirtmesi
DefaultStorageAccountKey
gerekir.
Revoke-AzHDInsightHttpServicesAccess
artık kullanım dışı bırakıldı. HTTP artık her zaman etkindir, bu nedenle bu cmdlet artık gerekli değildir. Bkz. az. Daha fazla ayrıntı için HDInsight geçiş kılavuzu.
HdInsight Küme Operatörü rol atamasını kullanıcıya ekleme
Sahip rolüne sahip bir kullanıcı, hassas HDInsight kümesi yapılandırma değerlerine (küme ağ geçidi kimlik bilgileri ve depolama hesabı anahtarları gibi) okuma/yazma erişimine sahip olmasını istediğiniz kullanıcılara HDInsight Küme Operatörü rolünü atayabilir.
Azure CLI'yı kullanma
Bu rol atamasını eklemenin en basit yolu, Azure CLI'da komutunu kullanmaktır az role assignment create
.
Dekont
Yalnızca bu izinleri verebildiği için, bu komut Sahip rolüne sahip bir kullanıcı tarafından çalıştırılmalıdır. --assignee
, HDInsight Küme Operatörü rolünü atamak istediğiniz kullanıcının hizmet sorumlusunun veya e-posta adresinin adıdır. Yetersiz izin hatası alırsanız SSS bölümüne bakın.
Kaynak (küme) düzeyinde rol verme
az role assignment create --role "HDInsight Cluster Operator" --assignee <user@domain.com> --scope /subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.HDInsight/clusters/<ClusterName>
Kaynak grubu düzeyinde rol verme
az role assignment create --role "HDInsight Cluster Operator" --assignee user@domain.com -g <ResourceGroupName>
Abonelik düzeyinde rol verme
az role assignment create --role "HDInsight Cluster Operator" --assignee user@domain.com
Azure portalını kullanma
Alternatif olarak Azure portalını kullanarak bir kullanıcıya HDInsight Küme Operatörü rol atamasını ekleyebilirsiniz. Azure portalını kullanarak Azure rolleri atama belgelerine bakın.
SSS
API isteklerimi ve/veya aracımı güncelleştirdikten sonra neden 403 (Yasak) yanıtını görüyorum?
Küme yapılandırmaları artık ayrıntılı rol tabanlı erişim denetiminin Microsoft.HDInsight/clusters/configurations/*
arkasındadır ve bunlara erişmek için izin gerektirir. Bu izni almak için yapılandırmalara erişmeye çalışan kullanıcıya veya hizmet sorumlusuna HDInsight Küme Operatörü, Katkıda Bulunanı veya Sahip rolünü atayın.
HDInsight Küme Operatörü rolünü başka bir kullanıcıya veya hizmet sorumlusuna atamak için Azure CLI komutunu çalıştırırken neden "İşlemi tamamlamak için yetersiz ayrıcalıklar" görüyorum?
Sahip rolüne sahip olmanın yanı sıra, komutu yürüten kullanıcı veya hizmet sorumlusunun atananın nesne kimliklerini aramak için yeterli Microsoft Entra izinlerine sahip olması gerekir. Bu ileti yetersiz Microsoft Entra izinlerini gösterir. bağımsız değişkenini -–assignee
ile –assignee-object-id
değiştirmeyi deneyin ve adı (veya yönetilen kimlik söz konusu olduğunda asıl kimlik) yerine atananın nesne kimliğini parametre olarak belirtin. Daha fazla bilgi için az role assignment create belgelerinin isteğe bağlı parametreler bölümüne bakın.
Yine de işe yaramazsa, doğru izinleri almak için Microsoft Entra yöneticinize başvurun.
Herhangi bir işlem yapılmazsa ne olur?
3 Eylül 2019'da başlayarak çağrılar GET /configurations
POST /configurations/gateway
artık hiçbir bilgi döndürmez ve GET /configurations/{configurationName}
çağrı artık depolama hesabı anahtarları veya küme parolası gibi hassas parametreleri döndürmez. Aynı durum, ilgili SDK yöntemleri ve PowerShell cmdlet'leri için de geçerlidir.
Belirtilen Visual Studio, VSCode, IntelliJ veya Eclipse araçlarından birinin eski bir sürümünü kullanıyorsanız, siz güncelleştirene kadar artık çalışmaz.
Daha ayrıntılı bilgi için senaryonuz için bu belgenin ilgili bölümüne bakın.