Kubernetes 如何通过开放策略拒绝openshift中的查看/获取操作?
我们想禁用oc get/DESCRIPE以防止令牌登录 当前策略禁止创建、更新、删除但不允许查看机密Kubernetes 如何通过开放策略拒绝openshift中的查看/获取操作?,kubernetes,openshift,open-policy-agent,rego,Kubernetes,Openshift,Open Policy Agent,Rego,我们想禁用oc get/DESCRIPE以防止令牌登录 当前策略禁止创建、更新、删除但不允许查看机密 package admission import data.k8s.matches # Deny all user for doing secret ops except policyadmin deny[query] { matches[[resource]] not "policyadmin" == resource.userInfo.username "Se
package admission
import data.k8s.matches
# Deny all user for doing secret ops except policyadmin
deny[query] {
matches[[resource]]
not "policyadmin" == resource.userInfo.username
"Secret" == resource.kind.kind
msg := sprintf("Custom Unauthorized user: %v", [resource.userInfo.username])
query = {
"id": "policy-admin-for-secret-only",
"resource": {
"kind": kind,
"namespace": namespace,
"name": name
},
"resolution": {
"message": msg
},
}
}
资源对象中的数据只是:
{\kind\:{\group\:\,\kind\:\Secret\,\version\:
\v1\}、\name\:\s5-token-n6v6q\,\namespace\:\demo\,
\操作\:\DELETE\,\resource\:{\group\:\,
\资源\:\secrets\,\version\:\v1\},\uid\:
\748cdab2-1c1d-11ea-8b11-080027f8814d\,\userInfo\:{\groups\:
[\system:cluster admins\,\system:masters\,
\系统:已验证\],\username\:\system:admin\}
中的示例使用了resource.spec对象,但我认为它在我的input/AdmissionReview对象中不可用
我正在使用
小换档1.24
openshift v3.9.0+2e78773-56
kubernetes v1.9.1+a0ce1bc657
etcd 3.2.16
Kubernetes中的准入控制不允许您控制get。它只允许您控制创建、更新、删除和连接。的API文档及其子代RuleWithOperations no handy link没有明确说明这一点,但明确说明了它的状态 要控制get,您需要使用。您可以使用来限制谁可以获取任何机密。要使用OPA进行授权,您需要
在您链接到的Andrew的代码中,他使用的是授权webhook而不是许可控制webhook。这就是为什么他从输入中使用的一些数据与您从许可控制webhook中看到的数据不一样。快速查看一下他的书写,您似乎需要按照他的指示操作。Kuberne中的许可控制tes不允许您控制get。它只允许您控制创建、更新、删除和连接。的API文档及其子代规则WithOperations no handy链接没有明确说明这一点,但明确说明了它的状态 要控制get,您需要使用。您可以使用来限制谁可以获取任何机密。要使用OPA进行授权,您需要 在您链接到的Andrew的代码中,他使用的是授权webhook而不是许可控制webhook。这就是为什么他从输入中使用的一些数据与您从许可控制webhook中看到的数据不一样。快速查看他的writeup,您似乎需要按照他的说明进行操作