我编写了一个用于角色检查的函数:
...
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
}
呼啦一阵风
相关分类