搭配 Bridge to Kubernetes 使用受控識別
如果您的 AKS 叢集使用受控識別安全性功能來保護對秘密和資源的存取權,則 Bridge to Kubernetes 需要一些特殊的設定以確保它可以使用這些功能。 需要將 Microsoft Entra 權杖下載到本機電腦,以確保本機執行和偵錯受到適當的保護,這需要在 Bridge to Kubernetes 中進行一些特殊的設定。 本文說明如何設定 Bridge to Kubernetes 來與使用受控識別的服務一起運作。
如何設定您的服務來使用受控識別
若要啟用支援受控識別的本機電腦,請在 KubernetesLocalConfig.yaml 檔案的 enableFeatures
區段中新增 ManagedIdentity
。 請新增 enableFeatures
區段 (如果它還沒有的話)。
enableFeatures:
- ManagedIdentity
警告
請務必只在使用開發叢集 (而非生產叢集) 時才針對 Bridge to Kubernetes 使用受控識別,因為 AMicrosoft Entra 權杖會擷取到本機電腦 (這會帶來潛在的安全風險)。
如果您沒有 KubernetesLocalConfig.yaml 檔案,您可以建立一個;請參閱如何:設定 Bridge to Kubernetes。
如何擷取 Microsoft Entra 權杖
在擷取權杖時,您必須確定您在程式碼中依賴 Azure.Identity.DefaultAzureCredential
或 Azure.Identity.ManagedIdentityCredential
。
下列 C# 程式碼示範如何在您使用 ManagedIdentityCredential
時擷取儲存體帳戶認證:
var credential = new ManagedIdentityCredential(miClientId);
Console.WriteLine("Created credential");
var containerClient = new BlobContainerClient(new Uri($"https://{accountName}.blob.windows.net/{containerName}"), credential);
Console.WriteLine("Created blob client");
下列程式碼示範如何在您使用 DefaultAzureCredential 時擷取儲存體帳戶認證:
var credential = new DefaultAzureCredential();
Console.WriteLine("Created credential");
var containerClient = new BlobContainerClient(new Uri($"https://{accountName}.blob.windows.net/{containerName}"), credential);
Console.WriteLine("Created blob client");
若要了解如何使用受控識別來存取其他 Azure 資源,請參閱後續步驟一節。
下載權杖時收到 Azure 警示
每當您在服務上使用 Bridge to Kubernetes 時,Microsoft Entra 權杖就會下載到本機電腦中。 您可以啟用 Azure 警示,以便在發生這種情況時收到通知。 如需詳細資訊,請參閱啟用 Azure Defender。 請注意,需要付費 (30 天試用期後)。
下一步
現在,您已將 Bridge to Kubernetes 設為與使用受控識別的 AKS 叢集一起運作,您可以像平常一樣進行偵錯。 請參閱 [bridge-to-kubernetes.md#connect-to-your-cluster-and-debug-a-service]。
透過遵循下列教學課程,進一步了解如何使用受控識別來存取 Azure 資源:
- 教學課程:使用 Linux VM 系統指派的受控識別來存取 Azure 儲存體
- 教學課程:使用 Linux VM 系統指派的受控識別來存取 Azure Data Lake Store
- 教學課程:使用 Linux VM 系統指派的受控識別來存取 Azure Key Vault
這部分還有其他教學課程,介紹如何使用受控識別來存取其他 Azure 資源。