使用 AAD Pod 标识使用托管标识的安全问题

时间:2021-03-29 07:31:59

标签: azure kubernetes azure-active-directory azure-aks azure-managed-identity

我一直在研究托管身份和 AKS 集群,这是我的理解:

  • 我只能向 AKS 群集分配一个用户托管标识。
  • 我必须对身份进行相关角色分配才能获得访问权限。

现在我的问题是,假设我有两个不同的 Pod。一豆荚想要 访问密钥保管库,而其他 Pod 想要访问 Azure DNS。这 使这项工作的唯一方法是将用户管理的身份修改为 授予访问这两个资源的权限。但现在看来两个豆荚都可以 访问这两个资源。

现在我的问题:

  • 我的上述理解是否正确?这是使用 AAD Pod Identity 的常用方法吗?
  • 是否有更好的方法来避免上述安全问题?

1 个答案:

答案 0 :(得分:2)

关于 AKS 中的托管标识,它们有两个用途。 AKS 集群本身及其 Pod。

关于集群的托管标识,该标识用于访问多个 azure 资源,如 the docs 中所述:

<块引用>

目前,Azure Kubernetes 服务 (AKS) 集群(特别是 Kubernetes 云提供商)需要一个身份才能在 Azure 中创建其他资源,例如负载均衡器和托管磁盘。此身份可以是托管身份或服务主体。

那么你有 managed identities for Pods目前为预览版,仅在 linux 节点上可用! 您可以create 多个,每个身份可以assign permissions。然后您需要添加一个 pod identity 来引用托管标识并在部署 pod 时使用它。

通过这种方式,您最多可以拥有 200 个 Pod 身份。

那么,回到这个问题

<块引用>

现在我的问题是,假设我有两个不同的 Pod。一个 Pod 想要访问密钥保管库,而另一个 Pod 想要访问 Azure DNS。 完成这项工作的唯一方法是修改用户管理的身份以授予对这两种资源的访问权限。但现在看来两个 Pod 都可以访问这两个资源。

这是不正确的,如前所述,您可以拥有多个 pod 身份,每个身份都有自己的访问权限。