Dapatkan akses aman untuk sumber daya Azure di Azure Kubernetes Service dengan menggunakan Akses Tepercaya
Banyak layanan Azure yang terintegrasi dengan Azure Kubernetes Service (AKS) memerlukan akses ke server API Kubernetes. Untuk menghindari pemberian akses admin layanan ini atau membuat kluster AKS Anda publik untuk akses jaringan, Anda dapat menggunakan fitur Akses Tepercaya AKS.
Fitur ini memberi layanan akses aman ke server API AKS dengan menggunakan ujung belakang Azure tanpa memerlukan titik akhir privat. Alih-alih mengandalkan identitas yang memiliki izin Microsoft Entra , fitur ini dapat menggunakan identitas terkelola yang ditetapkan sistem Anda untuk mengautentikasi dengan layanan dan aplikasi terkelola yang ingin Anda gunakan dengan kluster AKS Anda.
Artikel ini menunjukkan cara mendapatkan akses aman untuk layanan Azure ke server API Kubernetes di AKS dengan menggunakan Akses Tepercaya.
Catatan
API Akses Tepercaya tersedia secara umum. Kami menyediakan dukungan ketersediaan umum (GA) untuk Azure CLI, tetapi masih dalam pratinjau dan memerlukan penggunaan ekstensi pratinjau aks.
Gambaran umum fitur Akses Tepercaya
Akses Tepercaya membahas skenario berikut:
Jika rentang IP resmi diatur atau dalam kluster privat, layanan Azure mungkin tidak dapat mengakses server API Kubernetes kecuali Anda menerapkan model akses titik akhir privat.
Memberikan akses admin layanan Azure ke API Kubernetes tidak mengikuti praktik terbaik akses hak istimewa paling sedikit dan dapat menyebabkan eskalasi hak istimewa atau risiko kebocoran kredensial. Misalnya, Anda mungkin harus menerapkan izin layanan-ke-layanan dengan hak istimewa tinggi, dan izin tersebut tidak ideal dalam tinjauan audit.
Anda dapat menggunakan Akses Tepercaya untuk memberikan persetujuan eksplisit pada identitas terkelola yang ditetapkan sistem dari sumber daya yang diizinkan untuk mengakses kluster AKS Anda dengan menggunakan sumber daya Azure yang disebut pengikatan peran. Sumber daya Azure Anda mengakses kluster AKS melalui gateway regional AKS melalui autentikasi identitas terkelola yang ditetapkan sistem. Izin Kubernetes yang sesuai ditetapkan melalui sumber daya Azure yang disebut peran. Melalui Akses Tepercaya, Anda dapat mengakses kluster AKS dengan konfigurasi yang berbeda termasuk tetapi tidak terbatas pada kluster privat, kluster yang menonaktifkan akun lokal, kluster Microsoft Entra, dan kluster rentang IP resmi.
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Jenis sumber daya yang mendukung identitas terkelola yang ditetapkan sistem.
- Azure CLI versi 2.53.0 atau yang lebih baru. Jalankan
az --version
untuk menemukan versi Anda. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI. - Untuk mempelajari peran apa yang akan digunakan dalam skenario yang berbeda, lihat artikel berikut ini:
Membuat kluster AKS
Dalam langganan yang sama dengan sumber daya Azure yang ingin Anda akses klusternya, buat kluster AKS.
Pilih peran Akses Tepercaya yang diperlukan
Peran yang Anda pilih bergantung pada layanan Azure yang ingin Anda akses ke kluster AKS. Layanan Azure membantu membuat peran dan pengikatan peran yang membangun koneksi dari layanan Azure ke AKS.
Untuk menemukan peran yang Anda butuhkan, lihat dokumentasi untuk layanan Azure yang ingin Anda sambungkan ke AKS. Anda juga dapat menggunakan Azure CLI untuk mencantumkan peran yang tersedia untuk layanan Azure. Misalnya, untuk mencantumkan peran untuk Azure Pembelajaran Mesin, gunakan perintah berikut:
az aks trustedaccess role list --location $LOCATION
Membuat pengikatan peran Akses Tepercaya
Setelah Anda mengonfirmasi peran mana yang akan digunakan, gunakan Azure CLI untuk membuat pengikatan peran Akses Tepercaya di kluster AKS. Pengikatan peran mengaitkan peran yang Anda pilih dengan layanan Azure.
# Create a Trusted Access role binding in an AKS cluster
az aks trustedaccess rolebinding create --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $ROLE_BINDING_NAME --source-resource-id $SOURCE_RESOURCE_ID --roles $ROLE_NAME_1,$ROLE_NAME_2
Berikut contohnya:
# Sample command
az aks trustedaccess rolebinding create --resource-group myResourceGroup --cluster-name myAKSCluster --name test-binding --source-resource-id /subscriptions/000-000-000-000-000/resourceGroups/myResourceGroup/providers/Microsoft.MachineLearningServices/workspaces/MyMachineLearning --roles Microsoft.MachineLearningServices/workspaces/mlworkload
Memperbarui pengikatan peran Akses Tepercaya yang sudah ada
Untuk pengikatan peran yang ada yang memiliki layanan sumber terkait, Anda dapat memperbarui pengikatan peran dengan peran baru.
Catatan
Manajer add-on memperbarui kluster setiap lima menit, sehingga pengikatan peran baru mungkin memakan waktu hingga lima menit untuk diterapkan. Sebelum pengikatan peran baru berlaku, pengikatan peran yang ada masih berfungsi.
Anda dapat menggunakan az aks trusted access rolebinding list
perintah untuk memeriksa pengikatan peran saat ini.
az aks trustedaccess rolebinding update --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $ROLE_BINDING_NAME --roles $ROLE_NAME_3,$ROLE_NAME_4
Perlihatkan pengikatan peran Akses Tepercaya
Perlihatkan pengikatan peran Akses Tepercaya tertentu dengan menggunakan az aks trustedaccess rolebinding show
perintah :
az aks trustedaccess rolebinding show --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
Mencantumkan semua pengikatan peran Akses Tepercaya untuk kluster
Cantumkan semua pengikatan peran Akses Tepercaya untuk kluster dengan menggunakan az aks trustedaccess rolebinding list
perintah :
az aks trustedaccess rolebinding list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
Menghapus pengikatan peran Akses Tepercaya untuk kluster
Peringatan
Menghapus pengikatan peran Akses Tepercaya yang ada akan memutuskan sambungan layanan Azure dari kluster AKS.
Hapus pengikatan peran Akses Tepercaya yang ada dengan menggunakan az aks trustedaccess rolebinding delete
perintah :
az aks trustedaccess rolebinding delete --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME