Azure Kubernetes托管身份与AAD吊舱身份

时间:2020-06-15 08:32:26

标签: azure-kubernetes azure-container-service

Azure Kubernetes现在似乎提供了两种访问其他Azure资源的方式。 1. AKS受管身份-https://docs.microsoft.com/en-us/azure/aks/use-managed-identity 2. AAD吊舱标识-https://github.com/Azure/aad-pod-identity

作为在AKS中运行的应用程序,我如何请求AKS集群托管身份或AAD吊舱身份的令牌?当我将IMDS端点称为令牌时,它将如何知道要生成令牌的身份?

2 个答案:

答案 0 :(得分:2)

您在选项1(https://docs.microsoft.com/en-us/azure/aks/use-managed-identity)中提到的AKS托管身份仅用于群集内部使用。您不能使用该身份从您的Pod中访问Azure资源。

您可以使用Pod身份来满足您的需求。您需要为要使用的托管身份创建一个身份绑定(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的Pod规范中的身份绑定,自动识别该身份。

答案 1 :(得分:0)

类似地,主机可以提出授权请求,以直接从NMI主机端点(http://127.0.0.1:2579/host/token/)获取资源的服务主体令牌。该请求必须在请求标头和请求令牌的资源的资源端点中包含pod名称空间podns和pod名称podname。 NMI服务器根据请求标头中的podns和podname标识pod,然后(通过MIC)向k8s查询匹配的天蓝色标识。然后,NMI发出ADAL请求以获取请求中资源的令牌,并返回该令牌和clientid作为响应。

https://github.com/Azure/aad-pod-identity#node-managed-identity