Memigrasi ke akses berbasis peran yang terperinci untuk konfigurasi kluster
Kami memperkenalkan beberapa perubahan penting untuk mendukung akses berbasis peran yang lebih mendetail guna mendapatkan informasi sensitif. Sebagai bagian dari perubahan ini, beberapa tindakan mungkin diperlukan sebelum 3 September 2019 jika Anda menggunakan salah satu entitas/skenario yang terpengaruh.
Apa yang berubah?
Sebelumnya, rahasia dapat diperoleh melalui HDInsight API oleh pengguna kluster yang memiliki peran Pemilik, Kontributor, atau Pembaca Azure, karena tersedia untuk siapa saja yang */read
memiliki izin. Rahasia didefinisikan sebagai nilai yang dapat digunakan untuk mendapatkan akses yang lebih tinggi daripada yang diizinkan oleh peran pengguna. Ini mencakup nilai seperti kunci akun penyimpanan info masuk HTTP gateway kluster, dan info masuk database.
Mulai 3 September 2019, mengakses rahasia ini akan memerlukan Microsoft.HDInsight/clusters/configurations/action
izin, pengguna tidak dapat mengaksesnya dengan peran Pembaca. Peran yang memiliki izin ini adalah Kontributor, Pemilik, dan peran Operator Kluster HDInsight baru.
Kami juga memperkenalkan peran Operator Kluster HDInsight baru yang dapat mengambil rahasia tanpa diberikan izin administratif dari Kontributor atau Pemilik. Untuk meringkas:
Peran | Sebelumnya | Maju ke depan |
---|---|---|
Pembaca | - Baca akses, termasuk rahasia. | - Baca akses, tidak termasuk rahasia |
Operator Kluster HDInsight (Peran Baru) |
T/A | - Akses baca/tulis, termasuk rahasia |
Kontributor | - Baca / tulis akses, termasuk rahasia. - Buat dan kelola semua jenis sumber daya Azure. - Jalankan tindakan skrip. |
Tidak Ada Perubahan |
Pemilik | - Baca / tulis akses termasuk rahasia. - Akses penuh ke semua sumber daya - Delegasikan akses ke orang lain. - Jalankan tindakan skrip. |
Tidak Ada Perubahan |
Untuk informasi tentang cara menambahkan penetapan peran Operator kluster HDInsight kepada pengguna untuk memberi mereka akses baca/tulis ke rahasia kluster, lihat bagian di bawah ini, Tambahkan penetapan peran Operator kluster HDInsight kepada pengguna.
Apakah saya terpengaruh oleh perubahan ini?
Entitas dan skenario berikut terpengaruh:
- API: Pengguna menggunakan
/configurations
atau titik/configurations/{configurationName}
akhir. - Alat Azure HDInsight untuk Visual Studio Code versi 1.1.1 atau di bawahnya.
- Azure Toolkit untuk IntelliJ versi 3.20.0 atau di bawahnya.
- Azure Data Lake dan Stream Analytics Tools untuk Visual Studio versi 2.3.9000.1.
- Azure Toolkit untuk Eclipse versi 3.15.0 atau di bawahnya.
- SDK untuk .NET
- versi 1.x atau 2.x: Pengguna yang menggunakan
GetClusterConfigurations
,GetConnectivitySettings
,ConfigureHttpSettings
,EnableHttp
,DisableHttp
atau metode dari kelas ConfigurationsOperationsExtensions. - versi 3.x ke atas: Pengguna menggunakan
Get
,Update
,EnableHttp
,DisableHttp
,atau metode dari kelasConfigurationsOperationsExtensions
.
- versi 1.x atau 2.x: Pengguna yang menggunakan
- SDK untuk Python: Pengguna menggunakan
get
metode atau dariupdate
ConfigurationsOperations
kelas. - SDK untuk Java: Pengguna menggunakan metode
update
atauget
dari kelasConfigurationsInner
. - SDK untuk Go: Pengguna menggunakan
Get
metodeUpdate
atau dari structConfigurationsClient
. - Az.HDInsight PowerShell versi 2.0.0. Lihat bagian di bawah ini (atau gunakan tautan di atas) untuk melihat langkah-langkah migrasi untuk skenario Anda.
API
API berikut diubah atau tidak digunakan lagi:
- GET /configurations/{configurationName} (informasi sensitif dihapus)
- Sebelumnya digunakan untuk mendapatkan jenis konfigurasi individual (termasuk rahasia).
- Mulai tanggal 3 September 2019, panggilan API ini sekarang akan mengembalikan jenis konfigurasi individual dengan rahasia yang dihilangkan. Untuk mendapatkan semua konfigurasi, termasuk rahasia, gunakan panggilan POST /configurations baru. Untuk mendapatkan pengaturan gateway saja, gunakan panggilan POST /getGatewaySettings baru.
- GET /configurations (tidak digunakan lagi)
- Sebelumnya digunakan untuk mendapatkan semua konfigurasi (termasuk rahasia)
- Mulai tanggal 3 September 2019, panggilan API ini akan ditolak dan tidak lagi didukung. Untuk mendapatkan semua konfigurasi ke depan, gunakan panggilan POST /configurations baru. Untuk mendapatkan konfigurasi dengan parameter sensitif dihilangkan, gunakan panggilan GET /configurations/{configurationName}.
- POST /configurations/{configurationName} (tidak digunakan lagi)
- Sebelumnya digunakan untuk memperbarui info masuk gateway.
- Mulai tanggal 3 September 2019, panggilan API ini akan ditolak dan tidak lagi didukung. Gunakan POST /updateGatewaySettings baru sebagai gantinya.
API pengganti berikut telah ditambahkan:
- POST /konfigurasi
- Gunakan API ini untuk mendapatkan semua konfigurasi, termasuk rahasia.
- POST /getGatewaySettings
- Gunakan API ini untuk mendapatkan setelan gateway.
- POST /updateGatewaySettings
- Gunakan API ini untuk memperbarui setelan gateway (nama pengguna dan/atau kata sandi).
Alat HDInsight untuk Visual Studio Code
Jika Anda menggunakan versi 1.1.1 atau di bawah ini, perbarui ke versi terbaru Azure HDInsight Tools for Visual Studio Code untuk menghindari gangguan.
Azure Toolkit untuk IntelliJ
Jika Anda menggunakan versi 3.20.0 atau di bawahnya, perbarui ke versi terbaru plugin Azure Toolkit for IntelliJ untuk menghindari gangguan.
Azure Data Lake dan Alat Analisis Aliran untuk Visual Studio
Perbarui ke versi 2.3.9000.1 atau yang lebih baru dari Azure Data Lake dan Alat Analisis Aliran for Visual Studio untuk menghindari gangguan. Untuk bantuan tentang pembaruan, lihat dokumentasi kami, Perbarui Alat Data Lake untuk Visual Studio.
Azure Toolkit untuk Eclipse
Jika Anda menggunakan versi 3.15.0 atau di bawahnya, perbarui ke versi terbaru Azure Toolkit untuk Eclipse untuk menghindari gangguan.
SDK untuk .NET
Versi 1.x dan 2.x
Pembaruan ke versi 2.1.0 dari HDInsight SDK untuk .NET. Modifikasi kode minimal mungkin diperlukan jika Anda menggunakan metode yang dipengaruhi oleh perubahan ini:
ClusterOperationsExtensions.GetClusterConfigurations
tidak akan lagi mengembalikan parameter sensitif seperti kunci penyimpanan (situs inti) atau info masuk HTTP (gateway).- Untuk mengambil semua konfigurasi, termasuk parameter sensitif, gunakan
ClusterOperationsExtensions.ListConfigurations
penerusan. Pengguna dengan peran 'Pembaca' tidak dapat menggunakan metode ini. Ini memungkinkan kontrol terperinci di mana pengguna dapat mengakses informasi sensitif untuk kluster. - Untuk mengambil info masuk gateway HTTP saja, gunakan
ClusterOperationsExtensions.GetGatewaySettings
.
- Untuk mengambil semua konfigurasi, termasuk parameter sensitif, gunakan
ClusterOperationsExtensions.GetConnectivitySettings
sekarang tidak digunakan lagi dan telah digantikan olehClusterOperationsExtensions.GetGatewaySettings
.ClusterOperationsExtensions.ConfigureHttpSettings
sekarang tidak digunakan lagi dan telah digantikan olehClusterOperationsExtensions.UpdateGatewaySettings
.ConfigurationsOperationsExtensions.EnableHttp
danDisableHttp
kini telah menjadi usang. HTTP sekarang selalu diaktifkan, sehingga metode ini tidak lagi diperlukan.
Versi 3.x dan yang lebih baru
Perbarui ke versi 5.0.0 atau yang lebih baru dari HDInsight SDK untuk .NET. Modifikasi kode minimal mungkin diperlukan jika Anda menggunakan metode yang dipengaruhi oleh perubahan ini:
ConfigurationOperationsExtensions.Get
tidak akan lagi mengembalikan parameter sensitif seperti kunci penyimpanan (situs inti) atau info masuk HTTP (gateway).- Untuk mengambil semua konfigurasi, termasuk parameter sensitif, gunakan
ConfigurationOperationsExtensions.List
penerusan. Pengguna dengan peran 'Pembaca' tidak dapat menggunakan metode ini. Ini memungkinkan kontrol terperinci di mana pengguna dapat mengakses informasi sensitif untuk kluster. - Untuk mengambil info masuk gateway HTTP saja, gunakan
ClusterOperationsExtensions.GetGatewaySettings
.
- Untuk mengambil semua konfigurasi, termasuk parameter sensitif, gunakan
ConfigurationsOperationsExtensions.Update
sekarang tidak digunakan lagi dan telah digantikan olehClusterOperationsExtensions.UpdateGatewaySettings
.ConfigurationsOperationsExtensions.EnableHttp
danDisableHttp
kini telah menjadi usang. HTTP sekarang selalu diaktifkan, sehingga metode ini tidak lagi diperlukan.
SDK untuk Python
Perbarui ke versi 1.0.0 atau yang lebih baru dari HDInsight SDK untuk Python. Modifikasi kode minimal mungkin diperlukan jika Anda menggunakan metode yang dipengaruhi oleh perubahan ini:
ConfigurationsOperations.get
tidak akan lagi mengembalikan parameter sensitif seperti kunci penyimpanan (situs inti) atau info masuk HTTP (gateway).- Untuk mengambil semua konfigurasi, termasuk parameter sensitif, gunakan
ConfigurationsOperations.list
penerusan. Pengguna dengan peran 'Pembaca' tidak dapat menggunakan metode ini. Ini memungkinkan kontrol terperinci di mana pengguna dapat mengakses informasi sensitif untuk kluster. - Untuk mengambil info masuk gateway HTTP saja, gunakan
ClusterOperations.get_gateway_settings
.
- Untuk mengambil semua konfigurasi, termasuk parameter sensitif, gunakan
ConfigurationsOperations.update
sekarang tidak digunakan lagi dan telah digantikan olehClusterOperations.update_gateway_settings
.
SDK untuk Java
Perbarui ke versi 1.0.0 atau yang lebih baru dari HDInsight SDK untuk Java. Modifikasi kode minimal mungkin diperlukan jika Anda menggunakan metode yang dipengaruhi oleh perubahan ini:
ConfigurationsInner.get
tidak akan lagi mengembalikan parameter sensitif seperti kunci penyimpanan (situs inti) atau info masuk HTTP (gateway).ConfigurationsInner.update
sekarang tidak digunakan lagi.
SDK untuk Go
Perbarui ke versi 27.1.0 atau yang lebih baru dari HDInsight SDK untuk Go. Modifikasi kode minimal mungkin diperlukan jika Anda menggunakan metode yang dipengaruhi oleh perubahan ini:
ConfigurationsClient.get
tidak akan lagi mengembalikan parameter sensitif seperti kunci penyimpanan (situs inti) atau info masuk HTTP (gateway).- Untuk mengambil semua konfigurasi, termasuk parameter sensitif, gunakan
ConfigurationsClient.list
penerusan. Pengguna dengan peran 'Pembaca' tidak dapat menggunakan metode ini. Ini memungkinkan kontrol terperinci di mana pengguna dapat mengakses informasi sensitif untuk kluster. - Untuk mengambil info masuk gateway HTTP saja, gunakan
ClustersClient.get_gateway_settings
.
- Untuk mengambil semua konfigurasi, termasuk parameter sensitif, gunakan
ConfigurationsClient.update
sekarang tidak digunakan lagi dan telah digantikan olehClustersClient.update_gateway_settings
.
Az.HDInsight PowerShell
Perbarui ke Az PowerShell versi 2.0.0 atau yang lebih baru untuk menghindari gangguan. Modifikasi kode minimal mungkin diperlukan jika Anda menggunakan metode yang terpengaruh oleh perubahan ini.
Grant-AzHDInsightHttpServicesAccess
sekarang tidak digunakan lagi dan telah digantikan olehSet-AzHDInsightGatewayCredential
cmdlet baru.Get-AzHDInsightJobOutput
telah diperbarui untuk mendukung akses berbasis peran granular ke kunci penyimpanan.- Pengguna dengan peran Operator Kluster HDInsight, Kontributor, atau Pemilik tidak terpengaruh.
- Pengguna hanya dengan peran Pembaca perlu menentukan
DefaultStorageAccountKey
parameter secara eksplisit.
Revoke-AzHDInsightHttpServicesAccess
sekarang tidak digunakan lagi. HTTP sekarang selalu diaktifkan, sehingga cmdlet ini tidak lagi diperlukan. Lihat az- nya. Panduan migrasi HDInsight untuk detail selengkapnya.
Tambahkan penetapan peran Operator kluster HDInsight ke pengguna
Pengguna dengan peran Pemilik dapat menetapkan peran Operator kluster HDInsight kepada pengguna bahwa Anda ingin memiliki akses baca/tulis ke nilai konfigurasi kluster HDInsight yang sensitif (seperti info masuk gateway kluster dan kunci akun penyimpanan).
Menggunakan Cli Azure
Cara paling sederhana untuk menambahkan penetapan peran ini adalah dengan menggunakan az role assignment create
perintah di Azure CLI.
Catatan
Perintah ini harus dijalankan oleh pengguna dengan peran Pemilik, karena hanya mereka yang dapat memberikan izin ini. --assignee
Adalah nama perwakilan layanan atau alamat email pengguna yang ingin Anda tetapkan peran Operator kluster HDInsight. Jika Anda menerima kesalahan izin yang tidak mencukupkan, lihat FAQ.
Berikan peran di tingkat sumber daya (kluster)
az role assignment create --role "HDInsight Cluster Operator" --assignee <user@domain.com> --scope /subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.HDInsight/clusters/<ClusterName>
Berikan peran di tingkat grup sumber daya
az role assignment create --role "HDInsight Cluster Operator" --assignee user@domain.com -g <ResourceGroupName>
Berikan peran di tingkat langganan
az role assignment create --role "HDInsight Cluster Operator" --assignee user@domain.com
Menggunakan portal Azure
Anda dapat menggunakan portal Microsoft Azure untuk menambahkan penetapan peran Operator kluster HDInsight kepada pengguna. Lihat dokumentasi, Menetapkan peran Azure menggunakan portal Microsoft Azure.
FAQ
Mengapa saya melihat respons 403 (Terlarang) setelah memperbarui permintaan API dan/atau alat saya?
Konfigurasi kluster sekarang berada di belakang kontrol akses berbasis peran granular dan memerlukan Microsoft.HDInsight/clusters/configurations/*
izin untuk mengaksesnya. Untuk mendapatkan izin ini, tetapkan peran Operator kluster HDInsight, Kontributor, atau Pemilik kepada pengguna atau perwakilan layanan yang mencoba mengakses konfigurasi.
Mengapa saya melihat "Hak istimewa yang tidak mencukupi untuk menyelesaikan operasi" saat menjalankan perintah Azure CLI untuk menetapkan peran Operator kluster HDInsight ke perwakilan layanan atau pengguna lain?
Selain memiliki peran Pemilik, pengguna atau perwakilan layanan yang menjalankan perintah harus memiliki izin Microsoft Entra yang memadai untuk mencari ID objek penerima tugas. Pesan ini menunjukkan tidak cukupnya izin Microsoft Entra. Coba ganti -–assignee
argumen dengan dan –assignee-object-id
berikan ID objek dari penerima tugas sebagai parameter alih-alih nama (atau ID utama dalam kasus identitas terkelola). Lihat bagian parameter opsional dari penetapan peran az membuat dokumentasi untuk informasi selengkapnya.
Jika masih tidak berfungsi, hubungi admin Microsoft Entra Anda untuk memperoleh izin yang benar.
Apa yang akan terjadi jika saya tidak mengambil tindakan?
Mulai tanggal 3 September 2019, GET /configurations
dan panggilan tidak akan lagi mengembalikan informasi apa pun dan panggilan tidak akan lagi mengembalikan parameter POST /configurations/gateway
GET /configurations/{configurationName}
sensitif, seperti kunci akun penyimpanan atau kata sandi kluster. Hal yang sama berlaku untuk metode SDK yang sesuai dan cmdlet PowerShell.
Jika Anda menggunakan versi lama dari salah satu alat untuk Visual Studio, VSCode, IntelliJ, atau Eclipse yang disebutkan, itu tidak lagi berfungsi sampai Anda memperbarui.
Untuk informasi selengkapnya, lihat bagian terkait dari dokumen ini untuk skenario Anda.