我对 Azure 很陌生,但正在尝试学习 - 如果这是一个愚蠢的问题,我深表歉意。我已经开始免费试用(这给了我一些开始的信用),并且我正在尝试创建一个密钥保管库。如果我在访问策略下指定“保管库访问策略”,它会很好用,并且我能够创建机密。不过,我想使用“Azure 基于角色的访问控制”。如果我使用 Azure 基于角色的访问控制创建密钥保管库,则在尝试创建新密钥时会收到一条消息,其中显示“RBAC 不允许该操作。如果最近更改了角色分配,请等待几分钟以进行角色分配”变得有效。” 我以服务管理员身份登录 Azure,因此我认为这不是权限问题。我已将其放置过夜,但它仍然显示该消息,因此我认为这不是没有等待足够长的时间以使角色分配生效的问题。我尝试在不同地区创建密钥保管库并得到相同的结果。请注意,当我从头开始使用 Azure 基于角色的访问控制创建密钥保管库时会发生这种情况(即我不会将其从一个更改为另一个或类似的任何内容)。有谁知道我做错了什么?感谢您的帮助安德鲁
用于跟踪Web应用程序的基于角色的访问控制的最佳数据库模式是什么?
我正在使用Rails,但谷歌链接的RBAC插件看起来没有维护(只有300个提交到SVN;最近几乎是一年前).
这个概念很简单,可以从头开始实现,但又复杂而重要,值得一试.
那么其他人如何构建和实施他们的RBAC模型呢?
我正在尝试在kubernetes集群上安装一个helm软件包,该集群据称已禁用RBAC.我收到了一个权限错误提示clusterroles.rbac.authorization.k8s.io,如果启用了 RBAC,这就是我所期望的.
有没有办法检查kubectlRBAC是否真的被禁用?
我尝试过的:
kubectl describe nodes --all-namespaces | grep -i rbac :什么都没有出现kubectl describe rbac --all-namespaces | grep -i rbac :什么都没有出现kubectl config get-contexts | grep -i rbac :什么都没有出现k get clusterroles它说"找不到资源",而不是错误信息.这是否意味着,RBAC 被启用?kuebctl describe cluster 不是一件事我知道这可能是xy问题,因为我正在安装的helm软件包可能需要启用RBAC.但是,我仍然想知道如何检查它是否启用/禁用.
基本的交易是,我们为我们的项目定制了"kickstart".为此我们正在考虑重做用户控件.我知道有很多关于一般rbac的问题,但我在层次结构rbac上找不到任何问题?
我们的要求是:
所以,有了这些要求,这就是我在考虑这样做的方式.
id | int | unique id
Run Code Online (Sandbox Code Playgroud)
id | int | unique id
--------------|---------------------------------------------
title | varchar | human readable name
Run Code Online (Sandbox Code Playgroud)
id | int | unique id
--------------|---------------------------------------------
module | varchar | module name
--------------|---------------------------------------------
title | varchar | human readable name
--------------|---------------------------------------------
key | varchar | key name used in functions
Run Code Online (Sandbox Code Playgroud)
role_id | int | id from roles table
--------------|--------------------------------------------- …Run Code Online (Sandbox Code Playgroud) 在我的Yii2应用程序中,我试图强制所有用户进行身份验证.如果它们尚未经过身份验证,则应将其重定向到登录页面.
在Yii1中,我通过创建一个类来检查用户是否已登录并将该类附加到onBeginRequest我的主配置文件中的行为来完成此操作.
// Yii 1
'behaviors' => array(
'onBeginRequest' => array(
'class' => 'application.components.RequireLogin',
)
),
Run Code Online (Sandbox Code Playgroud)
如何在Yii2中获得相同的行为?我知道我可以使用行为来执行此操作,但我不想将此行为添加到我的主配置文件中,因此首先检查所有请求的身份验证.
工作行为方法如下所示:
// Yii2
public function behaviors() {
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['login', 'error'],
'allow' => true,
],
[
'allow' => true,
'roles' => ['@'],
],
],
],
];
}
Run Code Online (Sandbox Code Playgroud) 有没有办法获取Windows身份验证用户所在的角色列表,而无需通过WindowsPrincipal.IsInRole方法明确检查?
例如,如果我有这个用户:
> db.system.users.find()
{ "user" : "testAdmin", "pwd" : "[some hash]", "roles" : [ "clusterAdmin" ], "otherDBRoles" : { "TestDB" : [ "readWrite" ] } }
Run Code Online (Sandbox Code Playgroud)
我想给该用户数据库的dbAdmin权限TestDB,我可以删除用户记录,然后使用新的权限将其添加回来:
> db.system.users.remove({"user":"testAdmin"})
> db.addUser( { user: "testAdmin",
pwd: "[whatever]",
roles: [ "clusterAdmin" ],
otherDBRoles: { TestDB: [ "readWrite", "dbAdmin" ] } } )
Run Code Online (Sandbox Code Playgroud)
但这似乎是hacky和容易出错.
我可以更新表记录本身:
> db.system.users.update({"user":"testAdmin"}, {$set:{ otherDBRoles: { TestDB: [ "readWrite", "dbAdmin" ] }}})
Run Code Online (Sandbox Code Playgroud)
但我不确定这是否真的创造了正确的权限 - 它看起来很好,但它可能是微妙的错误.
有一个更好的方法吗?
我目前正在为本地协会开发成员管理,目前我正在开发数据库架构.我想与您分享以改进它并提供其他基于角色的访问模型(RBAC)的示例.我很感激任何建设性的批评,特别是我在表格之间使用的关系.
链接到highres:http://i.stack.imgur.com/WG3Vz.png
继承架构:
这个怎么运作:
我将现有客户端(实际上是关联成员)从外部应用程序映射到我的管理应用程序.(客户表)
该关联在Division,Subdivisions等(intern_structures表)中构建.每个客户都可以成为多个部门,细分,部门等的成员.
每个客户都可以在诸如总裁,精算师,财务主管等会员(分部......)中担任一个或多个角色,并且每个角色都有某些特权,角色的所有者可以在其部门,细分,部门等中应用其他人. .
凭证连接到应用程序的特定操作.凭证的所有者可以对其范围内的其他成员执行此操作.可以有多个"独立"应用程序,但它们都共享相同的身份验证/授权系统.
应用程序在模块/子模块/动作等中构造.示例可以是"个人详细信息"模块,该模块包含一个名为"图片"的子模块,您可以在此图片上应用"查看,删除,编辑"操作.但是你不能删除任何图片,除非你试图删除图片的人在你有足够角色的部门/部门.
内部和应用程序结构都是树,实现为邻接列表和嵌套集.邻接列表确保完整性,嵌套集允许我快速遍历树.
一个例外是您可以直接向某人提供某些凭据(client_credentials).如果某人需要对不属于他的divsion/section的人执行某些操作,则需要这样做.
因此,某人可以成为多个divsions/sections的成员,并在他所属的每个部门/部门中获得多个角色.我将通过他的多个角色合并某人拥有的所有凭据.凭证总是积极的,意味着限制性凭证是不可能的.
我想给我的应用程序有限的访问权限来获取不同状态集(可能还有部署)的副本,并在必要时扩大或缩小它们。
我为此创建了 ServiceAccount、Rolebinding 和 Role,但我找不到规则动词的完整列表(“get”、“watch”、“list”、“update”)以及它们的限制是什么,例如我可以使用update用于缩放还是我需要另一个动词?我在哪里可以找到描述这些动词的列表或表格?
我的 yaml 文件:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: scaler-role
namespace: {{ .Release.Namespace | quote }}
rules:
- apiGroups: ["apps"]
resources: ["statefulset"]
verbs: ["get", "watch", "list", "update"]
Run Code Online (Sandbox Code Playgroud) 我想向dev组中的许多不同的开发人员(不同的主题)颁发证书,并让他们都有权在dev命名空间内创建和修改内容,但不要触摸外面的任何东西,并且绝对不会在外面看到秘密它.我怀疑我在下面的第2步中创建的角色,角色绑定等是不正确的,有人可以建议更正吗?
--runtime-config.dev可以dev使用此YAML文件访问命名空间中的任何内容.注意:此链接的内容已更改,请参阅我在问题底部工作的YAML文件.-subj "/CN=example-dev@kubernetes.click/O=dev".运行时出现以下错误kubectl -v 8 --kubeconfig=/tmp/dev-kube-config.yml create -f /tmp/busybox.yml:
I1219 16:12:37.584657 44323 loader.go:354] Config loaded from file /tmp/dev-kube-config.yml
I1219 16:12:37.585953 44323 round_trippers.go:296] GET https://api.kubernetes.click/api
I1219 16:12:37.585968 44323 round_trippers.go:303] Request Headers:
I1219 16:12:37.585983 44323 round_trippers.go:306] Accept: application/json, */*
I1219 16:12:37.585991 44323 round_trippers.go:306] User-Agent: kubectl/v1.5.1+82450d0 ( darwin/amd64) kubernetes/82450d0
I1219 16:12:38.148994 44323 round_trippers.go:321] Response Status: 403 Forbidden in 562 …Run Code Online (Sandbox Code Playgroud) rbac ×10
kubernetes ×3
permissions ×3
kubectl ×2
mysql ×2
php ×2
.net ×1
azure ×1
credentials ×1
db-schema ×1
hierarchy ×1
mongodb ×1
roles ×1
yii ×1
yii2 ×1