Bagikan melalui


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

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 .