Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Azure golang SDK - Berikan peranan AcrPull kepada gugusan AKS

Azure golang SDK - Berikan peranan AcrPull kepada gugusan AKS

PHPz
PHPzke hadapan
2024-02-10 21:39:08295semak imbas

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

editor php Xinyi memperkenalkan kepada anda ciri penting dalam Azure golang SDK: memperuntukkan peranan AcrPull kepada gugusan AKS. Ciri ini boleh membantu pembangun mengurus dan menggunakan imej kontena dengan lebih mudah pada platform awan Azure. Dengan menggunakan SDK golang, pembangun boleh menetapkan peranan AcrPull dengan mudah kepada gugusan AKS, dengan itu membolehkan fungsi menarik dan menggunakan imej bekas peribadi dalam gugusan. Ini bukan sahaja meningkatkan kecekapan membangunkan dan menggunakan aplikasi kontena, tetapi juga meningkatkan keselamatan dan kebolehkawalan, memberikan pembangun pengalaman pengguna yang lebih baik.

Kandungan soalan

Selepas mencipta kluster AKS dan ACR, saya kini cuba memberikan peranan AcrPull secara pemrograman kepada kluster AKS. Pada masa ini saya cuba melakukan ini menggunakan fungsi RoleAssignmentsClient.Create() daripada SDK golang.

Ini yang saya cuba setakat ini:

<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>

Apabila saya membuat panggilan dengan nilai di atas, saya mendapat ralat berikut:

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

Saya tidak pasti sama ada ini salah faham konsep atau saya hanya menggunakan API dengan salah.

Sebarang dan semua bantuan akan sangat dihargai. Terima kasih!

Penyelesaian

Julat yang anda tunjuk nampaknya tidak betul. Apabila menggunakan kebenaran RBAC, anda perlu menetapkan skop kepada sumber yang digunakan oleh dasar RBAC.

Jadi, jika anda menggunakan dasar RBAC untuk kluster AKS anda mempunyai AcrPull kebenaran, skop hendaklah ditetapkan kepada ID sumber Azure Container Registry.

Atas ialah kandungan terperinci Azure golang SDK - Berikan peranan AcrPull kepada gugusan AKS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam