azure - 使用 PowerShell ARM Cmdlet 授予 AKS 对 ACR 的访问权限
问题描述
我正在通过以下链接使用 PowerShell 从 Azure Kubernetes 服务向 Azure Container Registry 进行身份验证。
这是我在 PowerShell 中运行的代码。
#Sign in using Interactive Mode using your login credentials
az login
#Set the current azure subscription
az account set --subscription 'XXXXXXXXXXXXXXXXXXXXXXX'
#See your current azure subscription
#az account show
#Get the id of the service principal configured for AKS
$AKS_RESOURCE_GROUP = "XXXX-AKSRES-SB-DEV-RGP-01"
$AKS_CLUSTER_NAME = "XXXX-AKSRES-SB-DEV-AKS-01"
$CLIENT_ID=$(az aks show --name $AKS_CLUSTER_NAME --resource-group $AKS_RESOURCE_GROUP --query "servicePrincipalProfile.clientId" --output tsv)
# Get the ACR registry resource id
$ACR_NAME = "XXWEAKSRESSBDEVACR01"
$ACR_RESOURCE_GROUP = "XXWE-AKSRES-SB-DEV-RGP-01"
$ACR_ID=$(az acr show --name $ACR_NAME --resource-group $ACR_RESOURCE_GROUP --query "id" --output tsv)
#Create role assignment
az role assignment create --assignee $CLIENT_ID --role Reader --scope $ACR_ID
上面的代码包含 Azure CLI 命令,但我想使用 PowerShell ARM cmdlet 而不是 Azure CLI 命令。
解决方案
您可以尝试下面的命令,它在我这边工作正常。
Login-AzureRmAccount
Set-AzureRmContext -SubscriptionId "xxxxxxxxxxxxxxxxx"
#Get the id of the service principal configured for AKS
$aks = Get-AzureRmResource -ResourceGroupName "<ResourceGroupName>" -ResourceType Microsoft.ContainerService/managedClusters -ResourceName "<aksname>" -ApiVersion 2018-03-31
$clientid = $aks.properties.servicePrincipalProfile.clientId
#Get the ACR registry resource id
$acr = Get-AzureRmContainerRegistry -ResourceGroupName "<ResourceGroupName>" -Name "<ACRregistryname>"
$resourceid = $acr.id
#Create role assignment
New-AzureRmRoleAssignment -ApplicationId $clientid -RoleDefinitionName "Reader" -Scope $resourceid
推荐阅读
- python-3.x - Python,通过 Gmail 发送电子邮件
- php - 干净 URL 的 .htaccess 重写规则不起作用
- unity3d - Unity3d 构建时的图形问题
- swift - 带有 MVVM 和 Action 的 ReactiveSwift
- python-3.x - RasPi Python - ModuleNotFoundError:没有名为“龙卷风”的模块
- python - python pandas不能用重复的键组装
- ruby - 如何转换哈希数组
- azure - 使用 Azure Functions v2 的 IWebJobsStartup
- github - Github:无法从桌面应用程序推送到原点
- docker - 运行 composer install 然后在 docker 项目中复制项目文件