kubectl exec 与 ssh 使用堡垒
kubectl exec vs ssh using bastion
KOPS 让我们创建一个 Kubernetes 集群以及一个可以通过 ssh 访问集群节点的堡垒
使用此设置,使用 kubectl
与 Kubernetes API 服务器交互是否仍被认为是安全的?
kubectl
也可以用来在 pods 上与 shell 互动?这个需要什么限制吗?
如果有需要采取什么预防措施?
是否也只能通过堡垒访问 Kubernetes API 服务器?
Kops 提供了合理的默认值,所以简单的答案是:在配置后按原样使用 kops 配置的基础设施是相当安全的。
使用默认的 Kops 设置部署 Kubernetes 集群根本不安全,因此不应在生产中使用。使用 kops edit 命令可以完成多个配置设置。通过 Kops 创建 Kubnertes 集群后应考虑以下几点:
- 私有子网中的集群节点(可以使用 --subnets 和最新版本的 kops 指定现有的私有子网)
- 私有 API 负载均衡器(--api-内部负载均衡器类型)
- 限制 API 负载均衡器到特定的私有 IP 范围 (--admin-access 10.xx.xx.xx/24)
- 将对群集节点的 SSH 访问限制为特定 IP (--ssh-access xx.xx.xx.xx/32)
- 强化映像也可以配置为集群节点 (--image)
- 授权级别必须是RBAC。使用最新的 Kubernetes 版本,默认情况下启用 RBAC。
- 可以通过 Kops 编辑集群中的配置启用审计日志。
kubeAPIServer:
auditLogMaxAge: 10
auditLogMaxBackups: 1
auditLogMaxSize: 100
auditLogPath: /var/log/kube-apiserver-audit.log
auditPolicyFile: /srv/kubernetes/audit.yaml
KOPS 让我们创建一个 Kubernetes 集群以及一个可以通过 ssh 访问集群节点的堡垒
使用此设置,使用 kubectl
与 Kubernetes API 服务器交互是否仍被认为是安全的?
kubectl
也可以用来在 pods 上与 shell 互动?这个需要什么限制吗?
如果有需要采取什么预防措施? 是否也只能通过堡垒访问 Kubernetes API 服务器?
Kops 提供了合理的默认值,所以简单的答案是:在配置后按原样使用 kops 配置的基础设施是相当安全的。
- 私有子网中的集群节点(可以使用 --subnets 和最新版本的 kops 指定现有的私有子网)
- 私有 API 负载均衡器(--api-内部负载均衡器类型)
- 限制 API 负载均衡器到特定的私有 IP 范围 (--admin-access 10.xx.xx.xx/24)
- 将对群集节点的 SSH 访问限制为特定 IP (--ssh-access xx.xx.xx.xx/32)
- 强化映像也可以配置为集群节点 (--image)
- 授权级别必须是RBAC。使用最新的 Kubernetes 版本,默认情况下启用 RBAC。
- 可以通过 Kops 编辑集群中的配置启用审计日志。
kubeAPIServer: auditLogMaxAge: 10 auditLogMaxBackups: 1 auditLogMaxSize: 100 auditLogPath: /var/log/kube-apiserver-audit.log auditPolicyFile: /srv/kubernetes/audit.yaml