代码之家  ›  专栏  ›  技术社区  ›  Pradeep

使用PowerShell ARM cmdlet授予AKS访问ACR的权限

  •  -1
  • Pradeep  · 技术社区  · 7 年前

    我正在使用PowerShell从azurekubernetes服务使用azurecontainer注册中心进行身份验证,方法如下 link

    这是我在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命令。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Joy Wang    7 年前

    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
    

    enter image description here

    推荐文章