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.
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>
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'." } --------------------------------------------------------------------------------
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!
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!