ข้ามไปยังเนื้อหาหลัก

ขั้นตอนที่ 4 - เปิดใช้งานให้ AKS cluster ของคุณเข้าถึง Key Vault

มีวิธีการยืนยันตัวตนอยู่ สอง วิธี; เลือกวิธีที่ตรงกับการใช้งานของคุณ:

  • 4A - Managed identity (แนะนำ)
  • 4B - Service principal
    • ใช้วิธีนี้เฉพาะเมื่อ managed identities ไม่พร้อมใช้งานหรือไม่ต้องการใช้ในคลัสเตอร์ของคุณ

4A - Managed identity

หากคลัสเตอร์ AKS ของคุณไม่ได้ถูกสร้างด้วย managed identities สามารถเพิ่มได้ผ่าน:

az aks update -g "${rgp}" -n "${aksname}" --enable-managed-identity

เพื่อซิงค์ secrets ของ Key Vault ไปยัง Kubernetes secrets identity ของ AKS kubelet จำเป็นต้องมีสิทธิ์เข้าถึง get และ list บน Key Vault

  • ขั้นแรก ให้ดึง object ID ของ kubelet identity:
az aks show -g "${rgp}" -n "${aksname}"

คำสั่งนี้จะส่งคืนการตอบกลับ JSON ขนาดใหญ่ เลื่อนลงไปจนกว่าคุณจะพบ:

identityProfile → kubeletidentity → objectId

  • ตอนนี้ให้ตั้งค่าสิทธิ์การเข้าถึงบน Key Vault:
az keyvault set-policy --name "${kvname}" --object-id "${objectid}" --secret-permissions get list

4B - Service principal

หากคุณกำลังใช้ service principal คุณจะต้องมี:

  • objectId
  • appId
  • tenantId
  • clientSecret

ทั้งหมดนี้สามารถพบได้ใน Azure Active Directory.

az keyvault set-policy --name "${kvname}" --object-id "${objectid}" --secret-permissions get list
  • สร้าง Kubernetes secret:
kubectl create secret generic keyvault-service-principal \
--from-literal=ClientID="${appid}" \
--from-literal=ClientSecret="${clientsecret}"