问题标签 [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.
kubernetes - kubernetes:NetworkPolicy 拒绝所有不拒绝
我在kubernetes
集群上aws
部署一个应用程序weave
我有一个额外的(除了default
)命名空间:my-staging
.
我想应用并测试kubernetes建议的以下拒绝所有策略:
然后我在默认命名空间中启动一个busybox
用于测试目的:
...并且可以访问命名空间中的我的ui
服务(应该正在侦听 port 80
)my-staging
!
为什么会这样?
ps 如果这有任何意义,我正在应用该NetworkPolicy
应用程序已经部署的情况。
更新:当删除我的集群并重新创建一切都没有任何问题时,这一定是一个编织问题。--networking calico
kubernetes - 谷歌云平台限制访问aa kubernetes集群
我们在 Google Cloud Platform 上创建了 2 个不同的 Kubernetes 集群,一个用于开发,另一个用于生产。我们的团队成员具有“编辑”角色(因此他们可以创建、更新删除和列出 pod)
我们希望使用 Kubernetes 提供的 RBAC 授权来限制对生产集群的访问。我创建了 aClusterRole
和 a ClusterBindingRole
,如下所示:
但是用户已经拥有“编辑”角色(对所有集群的完全访问权限)。所以我不知道我们是否应该分配一个简单的“查看者”角色而不是使用 kubernetes RBAC 扩展它。
我还想知道是否有办法对某些用户完全隐藏生产集群。(我们的集群在同一个项目中)
kubernetes - 如何使用集群外的用户 ID/密码以管理员身份访问 Kubernetes 仪表板?
期望的结果: 我想设置一个包含用户 ID 和密码的 CSV 文件,并以完全管理员身份访问 Kubernetes 仪表板,最好是从任何地方使用浏览器访问。我只是在学习 kubernetes,想尝试集群管理、部署等。这只是为了学习,不是生产设置。我正在使用 Kubernetes 版本 1.9.2 并创建了一个 3 机集群(master 和 2 个 worker)
背景/到目前为止我所做的:
我阅读了仪表板自述文件,并使用下面显示的文件创建了一个管理员用户和管理员角色绑定。然后我可以使用该kubectl describe secret
命令来获取管理员用户的令牌。我kubectl proxy
在集群主服务器上运行,并使用集群主服务器上运行的浏览器使用该令牌向仪表板进行身份验证。所有这些都有效。
管理员用户.yaml:
管理员角色绑定.yaml:
我可以以管理员身份登录仪表板 IF:
- 我运行 kubectl 代理
- 我使用运行命令 (1) 的浏览器访问仪表板
- 我使用“令牌”选项登录并粘贴使用该
kubectl describe secret
命令获得的管理员用户令牌。
我想做的事:
- 使用用户名/密码设置 CSV 文件
- 使用用户名/密码以管理员身份登录
- 能够从任何地方登录
为此,我创建了一个 CSV 文件,例如/home/chris/myusers.txt
:
我不知道 id 使用什么值,所以我只用 42 下注。
然后我编辑了文件:
/etc/kubernetes/manifests/kube-apiserver.yaml
并添加了这一行:
--basic-auth-file=/home/chris/myusers.txt
然后重启 kubelet:
sudo systemctl restart kubelet
但是,当我这样做时,我的集群停止工作并且我无法访问仪表板,所以我恢复到我仍然使用管理员用户令牌的位置。
我的问题是:
- 有可能做我在这里想做的事情吗?
- 我在用户 CSV 文件中使用哪些 id 值?我会指定哪些组?
- 我还需要进行哪些其他更改才能使所有这些都正常工作?如果我修改 apiserver 清单以使用带有用户 ID/密码的文件,这是否会弄乱我集群的其余配置?
kubernetes - 在 pod 中隔离单个容器
我正在将应用程序移植到 k8s。该应用程序目前由成对的 docker 组成,Trusted 和 Untrusted,其中 Trusted 连接到常规桥接网络并与内部服务通信,而 Untrusted 连接到单独的网络,只允许访问外部 IP。Untrusted 根据用户生成的数据访问网络,因此必须可以访问 Internet,并且不能访问内部 IP。
Trusted 和 Untrusted 使用一对 FIFO 进行通信,因为它们在同一台机器上运行(使用 Unix Domain Socket 慢了约 20%,我还没有测试本地 TCP/IP,但我怀疑性能会受到更大的影响 - 服务不是由于排序限制,因此完全水平扩展,因此单机性能很重要)。
我在将此设置移植到 k8s 时遇到了困难:最初的想法是为每对 docker 使用一个 Pod 并使用 emptyDir 共享 FIFO,但似乎没有办法为单个容器创建单独的网络限制一个 Pod,因为它们都共享一个网络容器。有没有办法做到这一点?
如果这是不可能的,还有什么选择?在单独的命名空间中设置不受信任的容器并应用有限的网络访问策略,只允许严格控制对集群其余部分的访问?
azure - Kubernetes CronJob 公网 IP
我有简单的 Kubernetes CronJob 连接到远程数据库。远程数据库使用 IP 过滤器,因此每个数据库连接都应该来自同一个 IP。
关于如何实现这一目标的任何想法?
提示:我正在使用 AKS (Azure)。https://docs.microsoft.com/en-us/azure/sql-database/sql-database-firewall-configure
干杯,蒂博尔
kubernetes - 互联网上的 Kubernetes
我的 VPS 提供商不可能在 VS 之间建立专用网络。所以主节点和节点通过互联网互连。练习足够安全吗?还是迁移到 AWS 更好?
kubernetes - k8s gce1.8.7 - 禁止使用 pod - 未知用户系统:服务帐户:默认:默认
我在 gce 中有一个 mongo 数据库。(配置见下文)
当我将它部署到1.7.12-gke.1 时, 一切正常。这意味着 sidecar 然后解析 pod 和链接
现在,当我将相同的配置部署到1.8.7-gke.1时,会导致缺少列出 pod 的权限,请参见下文。
我不明白发生了什么变化。我假设我需要为用户帐户分配特定权限,对吗?
我错过了什么?
错误日志
配置:
kubernetes - 如何在 kubernetes GCE 上启用 https tls
我成功地将我的网络应用程序部署在谷歌云中的 kubernetes 上。它通过http服务。我遵循了有关如何添加 ssl 证书的所有指南,它是根据 Google 云控制台添加的,但是,当您尝试以 HTTPS 访问 Web 应用程序时,它只能作为 http 工作。浏览器提示“无法访问此站点”
我的入口 YAML 看起来像这样
对于秘密
kubernetes - 了解 Kubernetes 用户
我无法理解 Kubernetes 身份验证模型,特别是“用户”是什么。
假设我在一台位于 kubernetes 集群内的计算机上。我想向 API 服务器发出请求,使用kubectl
.
所以: - 我需要从 api-server HTTPS 端口获取公钥。所以让我们假设这是提供给我的。- 那么,在我的请求中,我需要填充“用户”字段吗?
根据文档的这一部分,用户字段是一种方法:https ://kubernetes.io/docs/admin/authentication/#authentication-strategies
但是然后在这里https://kubernetes.io/docs/admin/accessing-the-api/#authorization我们读到实际上 kubernetes 没有用户的概念。
所以:
- 我什至在用户字段中放置了什么/在哪里?
- 如果,由于我控制客户端请求内容,我不能简单地在那里输入任何用户名吗?难道我不能只是尝试反复猜测任何用户名,直到找到一个具有我想要的授权的用户名吗?
谢谢。
kubernetes - 未找到服务帐户“默认”的 API 令牌
无法在 Kubernetes版本中创建 Pod:v1.10.0-beta.3
当我在主节点上创建 pod 时,我遇到以下错误:
执行命令:
openssl genrsa -out /tmp/serviceaccount.ket 2048
修改
/li>/etc/kubernetes/apiserver
文件以添加以下内容:修改
/li>/etc/kubernetes/controller-manager
并添加以下内容:重新启动了 Kubernetes,但我仍然面临同样的错误:
/li>
另一种方法在 apiservice 上删除 SecurityContextDeny,ServiceAccount 之前:
后:
仍然错误:
我该如何解决?