Maison > développement back-end > Golang > le corps du texte

Azure golang SDK - Attribuer le rôle AcrPull au cluster AKS

PHPz
Libérer: 2024-02-10 21:39:08
avant
299 Les gens l'ont consulté

Azure golang SDK - 将 AcrPull 角色分配给 AKS 群集

l'éditeur php Xinyi vous présente une fonction importante du SDK Azure golang : l'attribution du rôle AcrPull au cluster AKS. Cette fonctionnalité peut aider les développeurs à gérer et à utiliser les images de conteneurs plus facilement sur la plateforme cloud Azure. En utilisant le SDK golang, les développeurs peuvent facilement attribuer le rôle AcrPull au cluster AKS, permettant ainsi la fonction d'extraction et d'utilisation d'images de conteneurs privés dans le cluster. Cela améliore non seulement l'efficacité du développement et du déploiement d'applications conteneurisées, mais améliore également la sécurité et la contrôlabilité, offrant ainsi aux développeurs une meilleure expérience utilisateur.

Contenu de la question

Après avoir créé le cluster AKS et ACR, j'essaie maintenant d'accorder le rôle AcrPull au cluster AKS par programme. Actuellement, j'essaie de le faire en utilisant la fonction RoleAssignmentsClient.Create() du SDK golang.

Voici ce que j'ai essayé jusqu'à présent :

<code>AcrPullDefinitionID := "/providers/Microsoft.Authorization/roleDefinitions/7f951dda-4ed3-4680-a7ca-43fe172d538d"
//         pulled that ^ off of: https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#acrpull

providerNamespace := "/providers/Microsoft.ContainerService/managedClusters/"

scope := "/subscriptions/" + subscriptionID + "/resourceGroups/" + resourceGroupName + providerNamespace + resourceName
res, err := raClient.Create(ctx, scope, roleAssigmentName, armauthorization.RoleAssignmentCreateParameters{
        Properties: &armauthorization.RoleAssignmentProperties{
            PrincipalID:      to.Ptr(clientID),
            PrincipalType:    to.Ptr(armauthorization.PrincipalTypeServicePrincipal),
            RoleDefinitionID: to.Ptr("/subscriptions/" + subscriptionID + AcrPullDefinitionID),
    },
}, nil)
</code>
Copier après la connexion

Lorsque j'effectue l'appel avec la valeur ci-dessus, j'obtiens l'erreur suivante :

for resource: {AKSClusterName} of type: /providers/Microsoft.ContainerService/managedClusters/
Unable to create roleAssignment: PUT https://management.azure.com/subscriptions/{subscriptionID}/resourceGroups/{resourceGroup}/providers/Microsoft.ContainerService/managedClusters/{AKSClusterName}/providers/Microsoft.Authorization/roleAssignments/providers/Microsoft.Authorization/roleDefinitions/7f951dda-4ed3-4680-a7ca-43fe172d538d
--------------------------------------------------------------------------------
RESPONSE 405: 405 Method Not Allowed
ERROR CODE UNAVAILABLE
--------------------------------------------------------------------------------
{
  "message": "The requested resource does not support http method 'PUT'."
}
--------------------------------------------------------------------------------
Copier après la connexion

Je ne sais pas s'il s'agit d'un malentendu conceptuel ou si j'utilise simplement l'API de manière incorrecte.

Toute aide serait grandement appréciée. Merci!

Solution de contournement

La plage que vous indiquez semble incorrecte. Lors de l'application des autorisations RBAC, vous devez définir la portée sur la ressource à laquelle la stratégie RBAC s'applique.

Donc, si vous appliquez une stratégie RBAC pour que votre cluster AKS dispose des autorisations AcrPull, la portée doit être définie sur l'ID de ressource d'Azure Container Registry.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!