标签: rbac

如果使用 Azure 基于角色的访问控制,则无法在 Azure Key Vault 中创建机密

我对 Azure 很陌生,但正在尝试学习 - 如果这是一个愚蠢的问题,我深表歉意。我已经开始免费试用(这给了我一些开始的信用),并且我正在尝试创建一个密钥保管库。如果我在访问策略下指定“保管库访问策略”,它会很好用,并且我能够创建机密。不过,我想使用“Azure 基于角色的访问控制”。如果我使用 Azure 基于角色的访问控制创建密钥保管库,则在尝试创建新密钥时会收到一条消息,其中显示“RBAC 不允许该操作。如果最近更改了角色分配,请等待几分钟以进行角色分配”变得有效。” 我以服务管理员身份登录 Azure,因此我认为这不是权限问题。我已将其放置过夜,但它仍然显示该消息,因此我认为这不是没有等待足够长的时间以使角色分配生效的问题。我尝试在不同地区创建密钥保管库并得到相同的结果。请注意,当我从头开始使用 Azure 基于角色的访问控制创建密钥保管库时会发生这种情况(即我不会将其从一个更改为另一个或类似的任何内容)。有谁知道我做错了什么?感谢您的帮助安德鲁

permissions rbac azure azure-keyvault

50
推荐指数
1
解决办法
5万
查看次数

最佳的基于角色的访问控制(RBAC)数据库模型

用于跟踪Web应用程序的基于角色的访问控制的最佳数据库模式是什么?

我正在使用Rails,但谷歌链接的RBAC插件看起来没有维护(只有300个提交到SVN;最近几乎是一年前).

这个概念很简单,可以从头开始实现,但又复杂而重要,值得一试.

那么其他人如何构建和实施他们的RBAC模型呢?

permissions roles ruby-on-rails access-control rbac

40
推荐指数
2
解决办法
4万
查看次数

如何使用kubectl检查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.但是,我仍然想知道如何检查它是否启用/禁用.

rbac kubernetes kubectl

40
推荐指数
4
解决办法
2万
查看次数

如何设计基于分层角色的访问控制系统

基本的交易是,我们为我们的项目定制了"kickstart".为此我们正在考虑重做用户控件.我知道有很多关于一般rbac的问题,但我在层次结构rbac上找不到任何问题?

我们的要求是:

  • 可以将角色分配给组权限
  • 如果角色没有权限条目,则会自动拒绝该角色
  • 可以为用户授予覆盖权限
  • 用户覆盖权限是授予或拒绝
  • 如果明确拒绝用户权限,无论哪个角色说"已授予",则覆盖获胜.
  • 用户可以拥有多个角色
  • 角色可以有层次结构
  • 角色可以继承其他角色(例如,"论坛超级版主"角色是"论坛版主","系统维护者","论坛版主"角色已经从"论坛用户"角色继承)
  • 从其他拒绝或授予权限的角色继承的角色会覆盖其子权限
  • 权限按"模块"分组(例如,"博客"模块可以具有"编辑条目"权限,"论坛"模块可以具有"编辑条目"权限,并且它们不会发生冲突)
  • 有"Everything and Anything"权限可自动授予完全访问权限

所以,有了这些要求,这就是我在考虑这样做的方式.

表:用户

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_User

role_id       | int     | id from roles table
--------------|--------------------------------------------- …
Run Code Online (Sandbox Code Playgroud)

php mysql permissions hierarchy rbac

36
推荐指数
1
解决办法
3万
查看次数

Yii2全局过滤器/行为,强制用户首先进行身份验证

在我的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)

php rbac yii yii2

25
推荐指数
1
解决办法
1万
查看次数

如何检索用户所属的所有角色(组)?

有没有办法获取Windows身份验证用户所在的角色列表,而无需通过WindowsPrincipal.IsInRole方法明确检查?

.net rbac windows-principal windows-identity

24
推荐指数
3
解决办法
2万
查看次数

你如何改变MongoDB用户权限?

例如,如果我有这个用户:

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

22
推荐指数
2
解决办法
3万
查看次数

基于角色的访问控制的DB模式

我目前正在为本地协会开发成员管理,目前我正在开发数据库架构.我想与您分享以改进它并提供其他基于角色的访问模型(RBAC)的示例.我很感激任何建设性的批评,特别是我在表格之间使用的关系.

链接到highres:http://i.stack.imgur.com/WG3Vz.png

继承架构: DB Schema

这个怎么运作:

我将现有客户端(实际上是关联成员)从外部应用程序映射到我的管理应用程序.(客户表)

该关联在Division,Subdivisions等(intern_structures表)中构建.每个客户都可以成为多个部门,细分,部门等的成员.

每个客户都可以在诸如总裁,精算师,财务主管等会员(分部......)中担任一个或多个角色,并且每个角色都有某些特权,角色的所有者可以在其部门,细分,部门等中应用其他人. .

凭证连接到应用程序的特定操作.凭证的所有者可以对其范围内的其他成员执行此操作.可以有多个"独立"应用程序,但它们都共享相同的身份验证/授权系统.

应用程序在模块/子模块/动作等中构造.示例可以是"个人详细信息"模块,该模块包含一个名为"图片"的子模块,您可以在此图片上应用"查看,删除,编辑"操作.但是你不能删除任何图片,除非你试图删除图片的人在你有足够角色的部门/部门.

内部和应用程序结构都是树,实现为邻接列表嵌套集.邻接列表确保完整性,嵌套集允许我快速遍历树.

一个例外是您可以直接向某人提供某些凭据(client_credentials).如果某人需要对不属于他的divsion/section的人执行某些操作,则需要这样做.

因此,某人可以成为多个divsions/sections的成员,并在他所属的每个部门/部门中获得多个角色.我将通过他的多个角色合并某人拥有的所有凭据.凭证总是积极的,意味着限制性凭证是不可能的.

mysql credentials rbac db-schema

18
推荐指数
1
解决办法
3万
查看次数

Kubernetes RBAC 规则动词列表

我想给我的应用程序有限的访问权限来获取不同状态集(可能还有部署)的副本,并在必要时扩大或缩小它们。

我为此创建了 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)

rbac service-accounts kubernetes

18
推荐指数
3
解决办法
2万
查看次数

如何使用RBAC API在Kubernetes中创建限制为命名空间的用户/组?

问题

我想向dev组中的许多不同的开发人员(不同的主题)颁发证书,并让他们都有权在dev命名空间内创建和修改内容,但不要触摸外面的任何东西,并且绝对不会在外面看到秘密它.我怀疑我在下面的第2步中创建的角色,角色绑定等是不正确的,有人可以建议更正吗?

尝试

  1. 使用API​​服务器标记部署Kubernetes以支持"RBAC,AlwaysAllow"授权模式,设置RBAC超级用户,并通过启用RBAC API --runtime-config.
  2. 创建了命名空间,角色和角色绑定,其意图是(a)服务帐户和系统组件可以有效地仍然具有"AlwaysAllow"访问权限,以及(b)组中的任何实体都dev可以dev使用此YAML文件访问命名空间中的任何内容.注意:此链接的内容已更改,请参阅我在问题底部工作的YAML文件.
  3. 更新了Kubernetes以仅允许"RBAC"授权模式.
  4. 生成的客户端TLS数据,其中证书主题标志(对于openssl)是-subj "/CN=example-dev@kubernetes.click/O=dev".
  5. 此模板后生成一个kubeconfig文件.

实际结果

运行时出现以下错误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 client-certificates kubernetes kubectl

16
推荐指数
1
解决办法
6024
查看次数