我刚刚在AKS群集中设置了托管标识,以使用Azure Key Vault资源进行身份验证,使用以下指南:https://dev.to/vivekanandrapaka/access-secrets-from-akv-using-managed-identities-for-aks-91p
在指南中,我们在VMS中设置了系统分配的托管标识。然后,我们将VMS应用程序添加到keyvault中的访问策略中,这样一来,我的AKS集群中的POD现在可以访问我的keyvault资源。
我的问题是,我计划使用托管标识来设置与AKS的其他连接。示例AKS-
任何澄清都会非常有用-谢谢,
当你对你的虚拟机进行这种分配时,它会把角色分配给系统分配的托管身份。“MyAKS agentpool”是一个不同于您创建的托管标识。
我们正在处理多重身份概念,不幸的是,所有这些概念都不是非常清楚。(你可以通读几篇文章,它们提供了一些启示:https://docs.microsoft.com/en-us/azure/aks/concepts-identity、https://docs.microsoft.com/en-us/azure/aks/use-managed-identity)
让我们了解一些基本知识,这样答案就更有意义了:
#1:当您创建AKS群集时,为您创建了一个系统分配的托管标识。集群使用它进行身份验证并执行它需要执行的操作(例如管理虚拟机)
#2:当AKS创建VMS时,它创建了一个“用户分配的托管身份”,显示在门户html" target="_blank">网站的“MyAKS agentpool”中。这是部署在VMS上的标识,供kubelet在该VMS的上下文中进行身份验证。根据您试图做的事情,您可能会将其用于您的目的,而不是创建系统分配的托管标识。
#3:当您在VMSS上使用“系统分配的托管标识”时,它会导致系统分配的托管标识部署在所有这些VM上。系统分配的托管标识的概念是,它是原始Azure资源本身的一部分:它不会以另一个实体的形式出现。因此,当您为某个东西赋予角色时,您选择的是VMSS(即使在幕后,系统分配的托管标识的访问权限被授予)。您在门户中找不到它作为单独的“托管标识”。
因此,希望这能回答为什么您必须将角色授予VM,而不是您在门户中看到的托管身份。
说到这里:我通常认为做这种分配是个坏主意:因为系统分配的标识对节点上运行的每个pod都是可用的,而不管命名空间如何。你可能需要比这更细的颗粒度,在这种情况下,更好的方法是使用https://docs.microsoft.com/en-us/azure/aks/use-azure-ad-pod-identity
创建AKS集群时,默认情况下,即使您没有指定任何内容,它也会创建一个kubelet_标识
Kubelet identity
是用户指定的身份。如果你去vms
例子:
我创建了一个AKS集群使用命令
az aks create-g ansumantest-n MyAKSansuman-位置uknan-生成ssh-key
。
如果我转到节点资源组MC_uuresource group,我会看到这里存在的托管标识:
在VMSS的身份刀片中,您可以看到如下所示,系统分配的身份不存在,但用户分配的身份存在:
现在,如果我想为Keyvault中的AKS添加访问策略,那么我可以参考托管标识:
通常,仅使用上述内容,您可以为密钥库或AKS访问其他Azure服务所需的任何RBAC角色分配访问策略。这是AKS默认使用的。
我正在寻求在Azure DevOps中的ARM部署中集成密钥库的最佳方法。 例如,部署一个应用程序服务并创建一个托管服务标识,这样它就可以从密钥库中获取预先存在的数据库的机密。 1)在Azure portal中,我手动为App服务创建了一个新的服务主体,在访问策略中使用“get”和“list”权限。 2)在我的DevOps项目中,在项目设置下,我创建了一个服务连接。 3)我已经在DevOps中创建
我有一个在Azure VM中托管的php应用程序,在密钥库中有一些秘密。我已经设置了托管身份并获得了进入保险库的权限。 Azure SDK for php不支持密钥库,所以我使用REST接口。 我的问题是当在本地运行时,即我的代码在桌面上以VSCode运行时,我不能调用AIMS来获取令牌,因为我在本地机器上没有托管标识。 我只能想到两个选择: null 请注意,Visual Studio提供了Az
我在Azure App Service中部署了一个spring boot应用程序,该应用程序使用用户管理的身份访问Azure Key Vault。 我遵循了以下提到的步骤: 创建了用户管理标识 在Azure app Service中部署了spring boot app 通过身份选项将新创建的用户管理身份添加到应用程序服务中 在应用程序服务中IAM的角色分配下添加用户托管标识为所有者角色 创建Azu
null 身份验证工作流会是什么样子?有任何可用的例子吗?我们可以通过使用MSAL来实现吗? 假设我们已经创建了一个Azure密钥库,并在该库中保存了一些秘密。如何在Windows 10下运行的桌面应用程序中实现以下功能: 当前Windows用户是Azure AD组GroupA的一部分,位于Azure密钥库的同一承租人之下。 当当前用户从同一用户会话启动桌面应用程序时,应用程序可以访问所述密钥库中
我试图设置一个Python Azure函数,该函数将使用托管标识从密钥库检索机密。我已经给了我的函数应用程序的托管身份权限,以访问和检索密钥库中的秘密。我已经根据下面的Microsoft文档对Python脚本进行了这样的配置: https://docs.microsoft.com/en-us/python/api/overview/azure/key-vault?view=azure-python