php-Editor Xinyi stellt Ihnen eine wichtige Funktion im Azure Golang SDK vor: die Zuweisung der AcrPull-Rolle zum AKS-Cluster. Diese Funktion kann Entwicklern helfen, Container-Images bequemer auf der Azure-Cloud-Plattform zu verwalten und zu verwenden. Mithilfe des Golang SDK können Entwickler dem AKS-Cluster problemlos die AcrPull-Rolle zuweisen und so die Funktion zum Abrufen und Verwenden privater Container-Images im Cluster aktivieren. Dies verbessert nicht nur die Effizienz bei der Entwicklung und Bereitstellung von Containeranwendungen, sondern erhöht auch die Sicherheit und Kontrollierbarkeit und bietet Entwicklern ein besseres Benutzererlebnis.
Nachdem ich den AKS-Cluster und ACR erstellt habe, versuche ich nun, dem AKS-Cluster programmgesteuert die Rolle AcrPull
zuzuweisen.
Derzeit versuche ich, dies mit der Funktion RoleAssignmentsClient.Create() aus dem Golang SDK zu tun.
Das habe ich bisher versucht:
<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>
Wenn ich den Anruf mit dem oben genannten Wert tätige, erhalte ich die folgende Fehlermeldung:
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'." } --------------------------------------------------------------------------------
Ich bin mir nicht sicher, ob es sich hierbei um ein konzeptionelles Missverständnis handelt oder ob ich die API einfach falsch verwende.
Jede Hilfe wäre sehr dankbar. Danke!
Der Bereich, auf den Sie zeigen, scheint falsch zu sein. Beim Anwenden von RBAC-Berechtigungen müssen Sie den Bereich auf die Ressource festlegen, für die die RBAC-Richtlinie gilt.
Wenn Sie also eine RBAC-Richtlinie für Ihren AKS-Cluster anwenden, um AcrPull
Berechtigungen zu erhalten, sollte der Bereich auf die Ressourcen-ID der Azure Container Registry festgelegt werden.
Das obige ist der detaillierte Inhalt vonAzure Golang SDK – Weisen Sie dem AKS-Cluster die AcrPull-Rolle zu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!