我一直在阅读有关 Azure Managed Identities 如何成为安全访问 Azure 资源的方法,我完全获得了它们提供的便利和安全级别。但我经常担心,与此同时,它们留下了一种可能性,即在我的资源中运行的任何应用程序的任何漏洞都可以利用该身份来做我可能不希望它做的事情,不仅仅是我想授予访问该资源的应用程序。
这种既方便又安全的方法一直让人觉得很别扭。就像如果我需要让我的朋友在我度假时进入我的公寓看我的狗,而不是给我的朋友我的钥匙,我只是将钥匙滑过邮筒,他们还有其他 4 个室友。 (让我们假设这些钥匙对住在那里的每个人来说都是灵魂绑定的,不能被盗)
是否可以将托管身份与传统凭据结合使用以消耗资源?
一个具体的例子可能是,我有一个基于 JAVA spring 的应用程序,它使用我部署到 Kubernetes 环境中的 Azure Database for MySQL。我正在使用带有 NGINX 的 sidecar 容器来提供对该应用程序的外部 HTTP 访问。在这里使用 pod 管理的身份对我来说意味着 JAVA 应用程序和 NGINX 都可以访问数据库,而我只希望我的应用程序成为具有访问权限的应用程序。当然,我可以在这个例子中采用其他架构方法,但更多的是试图概述我对托管身份的关注。