我編寫了一個用于角色檢查的函數:...role = "roles/cloudkms.publicKeyViewer"func checkRole(key, serviceAccount, role string) bool {...return policy.HasRole(serviceAccount, role)}然后我收到錯誤“不能在 policy.HasRole 的參數中使用角色(類型字符串)作為類型“cloud.google.com/go/iam”.RoleName。將角色值轉換為自定義類型的正確方法是什么?圖書館:// A RoleName is a name representing a collection of permissions.type RoleName string// Common role names.const ( Owner RoleName = "roles/owner" Editor RoleName = "roles/editor" Viewer RoleName = "roles/viewer")const ( // AllUsers is a special member that denotes all users, even unauthenticated ones. AllUsers = "allUsers" // AllAuthenticatedUsers is a special member that denotes all authenticated users. AllAuthenticatedUsers = "allAuthenticatedUsers")// HasRole reports whether member has role r.func (p *Policy) HasRole(member string, r RoleName) bool { return memberIndex(member, p.binding(r)) >= 0}
1 回答

呼啦一陣風
TA貢獻1802條經驗 獲得超6個贊
您可以使用類型轉換,如下所示:
return policy.HasRole(serviceAccount, iam.RoleName(role))
或者通過將角色聲明為更簡單iam.RoleName
func checkRole(key, serviceAccount, role iam.RoleName) bool {
...
return policy.HasRole(serviceAccount, role)
}
- 1 回答
- 0 關注
- 123 瀏覽
添加回答
舉報
0/150
提交
取消