问题标签 [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 - 不使用 kubectl 访问 Kubernetes API
我正在尝试直接访问 Kubernetes API 而无需运行kubectl -proxy
. 但是当我使用服务帐户默认的令牌时,我得到一个 403。即使在为此服务帐户创建了 ClusterRole 和 ClusterRoleBinding 之后,请求也会被 403 拒绝。
我应用的配置如下所示:
(这几乎是 kubernetes io 文档中的那个,只是使用 ServiceAccount 作为 Subject 并将资源更改为 pod)
然后我应用了配置并尝试通过 curl 访问 pod:
我猜错误消息显示身份验证部分没问题,因为看起来请求被正确识别为来自服务帐户默认值:默认值。但是我必须做些什么才能授权这个(或另一个服务帐户)访问有关 pod 或节点的信息?
从 Pod 外部调用 curl 时,我会看到此错误,但如果我 - 例如 - 使用 kubernetes java 客户端使用安装在 /var/run/secrets 下的秘密从 Pod 内访问 API。
我是K8s新手,如果这是一个愚蠢的问题,请原谅我。
关于配置:我在具有一个主节点和两个工作节点的 Raspberry Pi 集群上运行 K8s 1.8。我没有给 kubeadm init 传递太多信息,所以我猜它应该有默认配置。FWIW kubectl describe 显示了 apiserver 的这个命令:
kubernetes - 在 HA Kubernetes 集群中挂载默认令牌时返回禁止
我在 kubernetes 中安装默认令牌时遇到问题,它不再适用于我,我想在 Github 上创建问题之前直接询问,所以我的设置基本上包括一个 HA 裸机集群和手动部署的 etcd(其中包括证书 ca , 键)。部署运行节点注册,我只是无法部署 pod,总是给出错误:
MountVolume.SetUp failed for volume "default-token-ddj5s" : secrets "default-token-ddj5s" is forbidden: User "system:node:tweak-node-1" cannot get secrets in the namespace "default": no path found to object
其中tweak-node-1 是我的节点名和主机名之一,我发现了一些类似的问题: - https://github.com/kubernetes/kubernetes/issues/18239 - https://github.com/kubernetes/kubernetes /问题/25828
但没有一个能解决我的问题,因为问题不一样。我在尝试运行 pod 并尝试设置两个 RBAC ABAC 时只使用默认命名空间,两者都给出了相同的结果,这是我用于部署显示版本的模板etcd 配置:
kubernetes - kubernetes:使用默认配置文件对 ui 的身份验证失败
kops
我已经使用以下命令在 AWS 上成功设置了一个 kubernetes 集群:
访问仪表板时,系统会提示我输入令牌或
请选择您创建的 kubeconfig 文件来配置对集群的访问。
创建集群时,~/.kube/config
已创建具有以下形式:
为什么将 kubernetes ui 指向上述文件时,我得到
身份验证失败。请再试一次。
amazon-web-services - kubernetes:默认 AWS ECR 权限
根据官方kubernetes 文档,为了让您的节点能够访问 AWS ECR,需要将以下标志添加到~/.kube/config
:
然后,更新集群后,应将以下权限添加到您的 ec2 实例:
但是,我刚刚使用 AWS 在 AWS 上创建了一个集群,kops
并且我的节点已经拥有这些权限,而我没有做任何额外的配置工作。
这是正常的吗?
kubernetes - .kube/config 中没有访问令牌
在 GKE 中升级我的集群后,仪表板将不再接受证书身份验证。
没问题,我的同事说 .kube/config 中有一个可用的令牌
除了在我的情况下没有...
我尝试使用 gcloud 重新进行身份验证,与同事比较 gcloud 设置,更新 gcloud,重新安装 gcloud,检查 Cloud Platform 中的权限。几乎我能想到的所有东西,仍然不会生成访问令牌。
有人可以帮忙吗?!
kubernetes - kubernetes:通过 kops 部署时的 CA 文件
我在aws
使用时创建了一个集群kops
。
但是,我无法找到证书颁发机构用来生成客户端证书的文件。
kops
默认情况下会创建这样的东西吗?
如果是这样,创建客户端证书的推荐过程是什么?
kops文档对此不是很清楚。
kubernetes - 多个认证机构证书 (?)
我在使用时创建了一个kubernetes
集群。aws
kops
除非我错了,否则ca.crt
和ca.key
文件位于以下位置,如这个非常有用的答案所示:
但是,我不禁注意到在我的~/.kube/config
文件(由 自动创建kops
)中,我有一个名为:
其内容与上述两个文件都不同。
在任何情况下,我们在颁发客户端证书时应该使用的 CA 密钥/crt 对是什么?
为什么有(似乎)不止一个 CA?
kubernetes - kubernetes/kops:默认用户和权限
使用kubectl
和kops
1.8
aws
当使用kops
客户端证书(在client-certificate-data
字段中 以字符串形式出现)旋转集群时,~/.kube/config
创建的值如下:
除非我错了,从 开始, rganitazionkubernetes 1.4
的值被解释为信息(与值关联的字符串就是所谓的用户,因为本来就没有这样的概念)O
group
CN
k8s
1:如何查看与system:masters
组和/或kubecfg
用户关联的权限?
- (与上述有关):我现在使用的开箱即用的授权方式是什么?
RBAC
? 我怎样才能检查这个?
2:为什么我的条目没有~/.kube/config
包含用户?(而是一个带有我的集群名称的用户和另一个名为的用户?)kubecfg
admin
kubectl
归根结底,在执行命令时,我正在与哪个用户执行 api 调用?
更新:我试图弄乱我的价值,client-certificate-data
我~/.kube/config
得到了
错误:tls:私钥与公钥不匹配
我假设这意味着我正在使用x509
基于身份验证(?)
所以我将 api 调用作为kubecfg
?
networking - Kubernetes:应用程序的集群内隔离
我一直在试验k8s
//套件kops
。aws
到目前为止,一切进展顺利(通过更新集群时出现问题kops
除外)
我希望能够利用我现有的资源/集群并在同一个集群中部署我的应用程序的 2 种风格(即production
和)。testing
我希望安全起见,尽可能地最大化k8s
这两个部署的资源之间的隔离。
肯定会有不同的命名空间。
通过一些调查我发现我也需要申请NetworkPolicy
以防止相互namespace
通信;但是应用NetworkPolicy
资源需要一个支持的网络解决方案(当前使用kubenet
,默认kops
不使用)。
解决方案/插件是什么?
只想要(至少暂时)上面描述的隔离级别,NetworkPolicy
即使CIDR
所有 pod 都有一个公共,我认为可以通过它来实现(只是说强调需要最简单的可能的网络解决方案实现了这一点,没有更多花哨的CIDRs
等)。
理想情况下,我希望能够将资源用于某些基于 - 的 ( ) 和 -基于 ( ) 的入口规则,仅此而已(?)NetworkPolicy
namespace
namespaceSelector
pod
podSelector