Azure Kubernetes现在似乎提供了两种方式来访问其他Azure资源。1.AKS托管身份- https://docs.microsoft.com/en-us/azure/aks/use-managed-identity 2. AAD pod身份- https://github.com/Azure/aad-pod-identity
作为在AKS中运行的应用程序,如何为AKS集群管理身份或AAD pod身份请求令牌?当我调用令牌的IMDS端点时,它如何知道为哪个身份生成令牌?
发布于 2020-07-14 02:19:21
您在选项1 (https://docs.microsoft.com/en-us/azure/aks/use-managed-identity)中提到的AKS托管身份仅供集群内部使用。您不能使用该身份从pods访问azure资源。
您可以使用Pod identity来满足您的需求。您需要为要使用的托管身份创建身份绑定(https://github.com/Azure/aad-pod-identity#5-deploy-azureidentitybinding),并在pod规范(https://github.com/Azure/aad-pod-identity#6-deployment-and-validation)中指定该身份绑定。
当pod从IMDS端点请求令牌时,它不需要指定身份:这是由NMI根据发出请求的pod规范中的身份绑定自动确定的。
发布于 2020-06-15 22:57:07
类似地,主机可以发出授权请求,以便直接从NMI主机端点(http://127.0.0.1:2579/host/token/)获取资源的服务主体令牌。请求必须在请求头和请求令牌的资源的资源端点中包含pod命名空间podns和pod名称podname。NMI服务器根据请求报头中的podns和podname识别pod,然后查询k8s (通过MIC)以获得匹配的azure身份。然后,NMI发出ADAL请求,以获取请求中资源的令牌,并返回令牌和客户端in作为响应。
https://github.com/Azure/aad-pod-identity#node-managed-identity
https://stackoverflow.com/questions/62384344
复制相似问题