结合使用托管标识与 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 使用托管标识,因为 Microsoft Entra 令牌会被提取到本地计算机,这将带来潜在的安全风险。

如果没有 KubernetesLocalConfig.yaml 文件,可以创建一个;请参阅操作说明:配置 Bridge to Kubernetes

如何提取 Microsoft Entra 令牌

在提取令牌时,必须确保在代码中依赖于 Azure.Identity.DefaultAzureCredentialAzure.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 资源:

此部分还有其他一些教程,介绍了如何使用托管标识来访问其他 Azure 资源。

另请参阅

Microsoft Entra ID