问题标签 [kubernetes-security]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ssl - 使用 KubernetesDotNet 访问 Kubernetes / Kubernetes API
我正在运行一个 webAPI 应用程序,它实际上使用 KubernetesDotNet [或其他客户端]连接到远程 Kubernetes 集群 API。
本地工作,但是一旦我在服务器上发布,我就开始接收
底层连接已关闭:无法为 SSL/TLS 安全通道建立信任关系
连接是通过读取 .pfx 文件建立的。
该证书我使用.kube/config
文件信息得到它,不过我也在本地测试过这个
访问 and 的副本.kube/config
也可以正常工作。
问题是,一旦我发布了 webApi 应用程序,我就会开始收到 SSL 错误。
如何解决这个问题?
kubernetes - RBAC 错误:来自服务器的错误(禁止):创建“role-qa.yaml”时出错:role.rbac.authorization.k8s.io“qa-role”被禁止
为 kubernetes 命名空间创建自定义角色时出现此错误。
RBAC 错误:来自服务器的错误(禁止):创建“role-qa.yaml”时出错:role.rbac.authorization.k8s.io“qa-role”被禁止
我已经在许多版本的 kubernetes 上尝试过这个。我已经检查了各种用户提供的关于为用户分配“集群管理员”角色的许多解决方案,并做了同样的事情,但仍然没有解决这个问题。
以下是所需的详细信息。
命名空间.yaml
我已经仔细检查了用于 kubernetes 访问的用户,如下所示。
gcloud 配置列表
输出 :
gcloud 授权列表
输出:
我还检查了集群角色是否分配给用户,并且用户具有集群管理员角色。
以下是我得到的完整错误。
如果有人需要这方面的任何进一步信息,请告诉我。
kubernetes - 简单 RBAC 示例的问题
我想做一个非常简单的例子来学习如何在 Kubernetes 中使用 RBAC 授权。因此我使用文档中的示例:
创建角色和角色绑定。
当我使用 Tester 登录并尝试
我明白了
我在这里读到(Kubernetes 中的 RBAC 错误),api-server 必须以 --authorization-mode=...,RBAC 启动。我怎样才能检查这个?我在别的地方读到,如果我跑
并找到条目 RBAC 应该被激活。真的吗?
我究竟做错了什么?有什么好办法解决问题吗?
谢谢!
PS 我在 IBM Cloud Private 中运行 kubernetes。
docker - Kubernetes 对 docker 用户命名空间重映射的支持
Docker 支持用户命名空间重映射,使用户命名空间与主机完全分离。
当前的默认行为确保容器拥有自己的用户和组管理,即它们自己的/etc/passwd
and版本/etc/group
,但容器进程在主机系统上以相同的 UID 运行。这意味着如果您的容器使用 UID 1(root)运行,它也将以 root 身份在主机上运行。同样,如果您的容器安装了 UID 1001 的用户“john”并使用该用户启动其主进程,则在主机上它也将使用 UID 1001 运行,该 UID 可能属于用户“Will”并且也可能有管理员权利。
为了使用户命名空间隔离完整,需要启用重新映射,它将容器中的 UID 映射到主机上的不同 UID。因此,容器上的 UID 1 将映射到主机上的“非特权”UID。
Kubernetes 是否支持在底层容器运行时启用此功能?它会开箱即用而没有问题吗?
google-cloud-platform - 即使在删除用于加密的 KMS 密钥后也能取回 GKE 机密
我按照此文档创建了一个 GKE 集群 (1.13.6-gke.6),其--database-encryption-key
标志提供了一个 KMS 密钥,用于启用Application-layer Secrets Encryption。
我使用以下命令创建了一个秘密:
因此,如果我的假设是正确的,这些秘密将使用我在创建集群时提供的 KMS 密钥加密存储。但是,即使在我销毁了所有使用密钥的版本之后,我也能够看到存储在 GKEetcd
中的秘密kubectl get secret dev-db-secret -o yaml
,并且我能够在使用以下清单创建的 pod 中看到它们:
如果我执行到上面的 pod 并执行echo SECRET_USERNAME
,echo SECRET_PASSWORD
我会在控制台上以纯文本形式打印用户名和密码。
这是加密应该工作的方式吗?如果是,加密到底发生在哪里?我究竟做错了什么?秘密真的加密了吗?
kubernetes - 在 Kubernetes 部署中设置 securityContext
我在我的部署中使用 nfs 挂载卷。我需要给它 fsGroup 如下所示:
有没有办法在部署清单上做到这一点?正如我在文档中看到的那样,我只能在 pod yaml 中设置 securitycontext。
kubernetes - Kubectl - 仅列出用户可以访问的命名空间
看看以下情况是否可能 -
假设 user( user1
) 只能访问命名空间default
和 marketing
.
当我们执行kubectl get ns
时,它应该显示两个命名空间。
即使存在其他名称空间,也不应显示它们,因为它们user1
无权访问任何其他名称空间。
我们可以将此场景与数据库相关联,在这些数据库中,用户只能在show databases
执行时看到他们有权访问的数据库
kubernetes - GKE:查看有关某人权限的详细信息
我正在与 GKE 集群交互并试图了解我的权限是什么
但是我看不到任何与我相关的角色。
我如何与k8s
集群交互?
我如何查看 whoami 以及我的权限是什么?
kubernetes - 是否可以设置服务帐户令牌的确切名称?
我正在尝试通过 Traefik 设置 docker 注册表,并通过服务帐户持有者令牌进行身份验证。问题是默认服务令牌秘密的名称以一些随机字符结尾,无法传递给 Ingress 配置,或者可以吗?
无论如何,我想以某种方式强制 Kubernetes 以可预测的方式命名令牌。
当前的解决方案是手动创建 API 令牌。
不幸的是,原来随机命名的令牌仍在系统中,无法删除。
如果它是在服务帐户之前创建的,它会被删除,但在此之后,随机密钥是。
kubernetes - 如何使用 Istio API Key 授权服务?
我在 istio 上找到了以下关于如何创建 API 密钥的文档
https://istio.io/docs/reference/config/policy-and-telemetry/templates/apikey/
但是我找不到任何关于如何使用该东西来保护服务的文档或示例。
任何人都可以帮忙吗?