Bước 4 - Cho phép cụm AKS của bạn truy cập Key Vault
Có hai phương thức xác thực; hãy chọn phương thức áp dụng cho bạn:
- 4A - Managed identity (khuyến nghị)
- 4B - Service principal
- Chỉ sử dụng phương thức này nếu managed identities không khả dụng hoặc không mong muốn trong cluster của bạn.
4A - Managed identity
Nếu cluster AKS của bạn không được tạo bằng managed identities, bạn có thể thêm tính năng này bằng:
az aks update -g "${rgp}" -n "${aksname}" --enable-managed-identity
Để đồng bộ các secret của Key Vault sang các secret của Kubernetes, kubelet identity của AKS cần quyền truy cập get và list vào Key Vault.
- Trước tiên, lấy object ID của kubelet identity:
az aks show -g "${rgp}" -n "${aksname}"
Lệnh này sẽ trả về một phản hồi JSON lớn. Cuộn xuống cho đến khi bạn thấy:
identityProfile → kubeletidentity → objectId

- Bây giờ hãy đặt quyền truy cập trên Key Vault:
az keyvault set-policy --name "${kvname}" --object-id "${objectid}" --secret-permissions get list
4B - Service principal
Nếu bạn đang sử dụng service principal, bạn sẽ cần:
objectIdappIdtenantIdclientSecret
Bạn có thể tìm thấy tất cả các mục này trong Azure Active Directory.
az keyvault set-policy --name "${kvname}" --object-id "${objectid}" --secret-permissions get list
- Tạo Kubernetes secret:
kubectl create secret generic keyvault-service-principal \
--from-literal=ClientID="${appid}" \
--from-literal=ClientSecret="${clientsecret}"