1

我想拥有一个零信任的基础设施,所以我需要拥有aks并且acr完全独立,并且只需要一个用于拉取图像的连接。我aks通过 azure 门户创建了一个私有(为其分配特定的 vnet),并创建了一个私有acr(没有主体服务)。然后我acrPull为访问角色添加角色aksacr然后通过它们之间的网络部分添加私有访问acr。不幸的是,当我尝试az aks check-acr命令时它返回:

Validating image pull permission: FAILED
[2022-01-19T14:00:37Z] ACR containerregistrymaryam.azurecr.io rejected token exchange: ACR token exchange endpoint returned error status: 403. body:

当前权限和连接状态如下: 如果您有任何线索,请告诉我,谢谢!访问角色 资源可视化器

4

1 回答 1

1

您需要将角色分配给AcrPull节点池的 Kubelet 身份,而不是 AKS 身份:

export KUBE_ID=$(az aks show -g <resource group> -n <aks cluster name> --query identityProfile.kubeletidentity.objectId -o tsv)
export ACR_ID=$(az acr show -g <resource group> -n <acr name> --query id -o tsv)
az role assignment create --assignee $KUBE_ID --role "AcrPull" --scope $ACR_ID
于 2022-01-19T16:59:50.970 回答