Dapatkan akses aman untuk sumber daya Azure di Azure Kubernetes Service dengan menggunakan Akses Tepercaya
Artikel ini menunjukkan cara mendapatkan akses aman untuk layanan Azure ke server API Kubernetes di Azure Kubernetes Service (AKS) menggunakan Trusted Access.
Fitur Akses Tepercaya memberi layanan akses aman ke server API AKS dengan menggunakan back end 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.
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:
- Dalam langganan yang sama dengan sumber daya Azure yang ingin Anda akses klusternya, buat kluster AKS.
Menyambungkan ke kluster Anda
Konfigurasikan kubectl
untuk menyambungkan ke kluster Anda menggunakan az aks get-credentials
perintah .
export RESOURCE_GROUP_NAME="myResourceGroup"
export CLUSTER_NAME="myClusterName"
az aks get-credentials --resource-group ${RESOURCE_GROUP_NAME} --name ${CLUSTER_NAME} --overwrite-existing
Verifikasi koneksi ke kluster Anda menggunakan kubectl get
perintah .
kubectl get nodes
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 menggunakan az aks trustedaccess role list --location <location>
perintah .
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.
export ROLE_BINDING_NAME="myRoleBindingName"
export SOURCE_RESOURCE_ID="mySourceResourceID"
export ROLE_NAME_1="myRoleName1"
export ROLE_NAME_2="myRoleName2"
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}
Hasil:
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/${RESOURCE_GROUP_NAME}/providers/Microsoft.ContainerService/managedClusters/${CLUSTER_NAME}/trustedAccessRoleBindings/${ROLE_BINDING_NAME}",
"name": "${ROLE_BINDING_NAME}",
"provisioningState": "Succeeded",
"resourceGroup": "${RESOURCE_GROUP_NAME}",
"roles": [
"${ROLE_NAME_1}",
"${ROLE_NAME_2}"
],
"sourceResourceId": "${SOURCE_RESOURCE_ID}",
"systemData": null,
"type": "Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings"
}
Memperbarui pengikatan peran Akses Tepercaya yang sudah ada
Untuk pengikatan peran yang sudah ada yang memiliki layanan sumber terkait, Anda dapat memperbarui pengikatan peran dengan peran baru menggunakan 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
perintah . Perintah ini memperbarui pengikatan peran dengan peran baru yang Anda tentukan.
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.
Perlihatkan pengikatan peran Akses Tepercaya
Perlihatkan pengikatan peran Akses Tepercaya tertentu menggunakan az aks trustedaccess rolebinding show --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
perintah .
Mencantumkan semua pengikatan peran Akses Tepercaya untuk kluster
Cantumkan semua pengikatan peran Akses Tepercaya untuk kluster menggunakan az aks trustedaccess rolebinding list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
perintah .
Konten terkait
Azure Kubernetes Service