az使用自定义ssh密钥获取凭据?

时间:2018-03-30 16:02:08

标签: azure kubernetes azure-container-service

所以我们有自己的ssh密钥对(mykey.pub / mykey)。 用户A使用以下方式创建群集:

az aks create --resource-group XXX --name zzz --ssh-key-value c:\mykey.pub

现在,用户A可以使用以下方式访问群集:

az aks get-credentials

现在如果用户B想要访问群集怎么办?没有像acs这样的--ssh-key-file参数 - 我需要在哪里复制az aks get-credentials的密钥才能工作?

Thx -

2 个答案:

答案 0 :(得分:4)

一种方法是让用户B访问群集是在Azure订阅中添加用户B.添加后,用户B可以使用

以类似方式访问群集
 az aks get-credentials -n "Name of the cluster" -g "Name of the Resourcegroup"

答案 1 :(得分:2)

  

因此ssh密钥仅用于创建集群,然后它可以   扔掉了?

你是对的,在Azure ASK中,ssh密钥只是用于创建AKS节点和ssh。

在Azure ACS 中,我们需要使用ssh密钥访问k8s主虚拟机以将凭据下载到本地PC。

az acs kubernetes get-credentials --resource-group=<cluster-resource-group> --name=<cluster-name>

此命令将群集凭据下载到$HOME/.kube/config,与使用scp相同,以将文件从主VM上的$HOME/.kube/config安全地复制到本地计算机。像这样:

mkdir $HOME/.kube
scp azureuser@<master-dns-name>:.kube/config $HOME/.kube/config
由Azure平台管理的

AKS get-credentials命令来自Azure的 GET 凭据,API如下:

GET https://management.azure.com/subscriptions/<your-subscription>/resourceGroups/<your-resource-group>/providers/Microsoft.ContainerService/managedClusters/<aks-name>/accessProfiles/clusterUser?api-version=2017-08-31

使用 Azure AD令牌获取该凭据,因此在AKS中,我们可以获取没有SSH密钥的凭据。

顺便说一句,您可以使用此命令查找其工作原理:
az aks get-credentials --resource-group <resource-group> --name <cluster-name> --debug

此外,如果您想允许其他成员通过SSH连接到AKS节点,您应该将ssh密钥发送给他们:)

希望这会有所帮助。