大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

如何理解 Kubernetes 认证和授权

  • 2020-03-12
  • 本文字数:1854 字

    阅读完需:约 6 分钟

如何理解Kubernetes认证和授权

当设置产品 Kubernetes 集群的时候,认证和授权是两个很重要的基本需求。在这篇文章中,让我们来浏览一些细节,这些细节可以帮助 Kubernetes 环境做好方案。



比如说,你现在已经引发了通过输入 yaml 文件到 kubectl(kubectl create-f pod.yaml)创建 POD 的命令。这个命令被发送到有安全保障的 api-server 端口(http://),然后身份验证流就开始生效了。注意,如果你正在为 api-server 使用不安全的端口(http://),那么验证就无法应用。(http://)理想情况下生产环境设置中应该避免不安全端口(http://)。


以下是这篇文章中会提到的在 Kubernetes 中可使用的验证途径。

客户证书验证

为了使用这个方案,api-server 需要用-client-ca-file=<PATH_TO_CA_CERTIFICATE_FILE>选项来开启。


CA_CERTIFICATE_FILE 肯定包括一个或者多个认证中心,可以被用来验证呈现给 api-server 的客户端证书。客户端证书的/CN 将作为用户名。

基于令牌的身份验证

为了使用这个方案,api-server 需要用-token-auth-file=<PATH_TO_TOKEN_FILE>选项来开启。TOKEN_FILE 是个 csv 文件,每个用户入口都有下列格式:token,user,userid,group。


Group 的名字是随意的。


令牌文件的例子:



生成 tokens 的一个非常简单的方法就是运行以下命令:



基于令牌的身份验证面临的挑战就是,令牌是无期限的,而且对令牌清单做任何的修改都需要重新启动 api-server。

基本认证

为了使用这个方案,api-server 需要使用-basic-auth-file=<PATH_TO_HTTP_AUTH>选项来开启。HTTP_AUTH_FILE 是个 csv 文件,每个用户入口都有下列格式:password,user name,userid。目前,对 AUTH_FILE 的任意修都需要重新启动 api-server。

Open ID

Open ID 支持也是可用的,但是还在试验阶段。

Keystone

Keystone 支持也是可用的,但是还在试验阶段。如果你想要将 keystone 跟 LDAP 或者动态目录服务整合到一起,那么就要使用 keystone 认证方法。为了使用这个方案,api-server 需要用-experimental-keystone-url=<KEYSTONE_URL>选项来开启服务。


验证成功之后,下一步就是找出对于验证用户来说,哪些操作是允许的。目前来讲,Kubernetes 支持 4 种验证策略方案。api-server 需要使用-authorization-mode=<AUTHORIZATION_POLICY_NAME>选项来开启。

始终否认

这个策略否认所有的请求。

始终允许

这个策略允许所有的请求。

基于属性的访问控制

ABAC 允许灵活的用户特定授权策略。当使用-authorization-policy-file=<PATH_TO_ABAC_POLICY_FILE>选项开启 api-sever 的时候,ABAC 的策略文件需要指定。目前,对策略文件有任何的修改都需要重启 api-server。


ABAC 策略文件样本如下所示:



在以上例子中,策略文件中的每一行都是 JSON 对象,且指定一个策略。这是从 Kubernetes 文档页面上对策略对象的简要描述。


  • 版本控制特性——允许多版本和策略的转换格式。

  • api 版本,字符串类型:有效值就是“abac.authorization.kubernetes.io/v1beta1”。

  • kind,字符串类型:有效值是“policy”。

  • 规格属性——是一个用以下属性的映射:

  • 面向对象匹配属性:

  • 用户,字符串:用户字符串不是从-token-auth-file,就是从证书文件的普通名字(CN)而来。如果你指定用户,那么它就肯定跟经过身份验证的用户匹配。*跟所有请求都匹配。

  • group,字符串:如果你指定 group,那么它肯定跟 groups 中经过身份验证的用户相匹配。*跟所有请求都匹配。

资源匹配属性

apiGroup,字符串类型:API group,比如拓展版本。*跟所有 APIgroup 相匹配。


命名空间,字符串类型:命名空间字符串。*跟所有的资源请求相匹配。


资源,字符串类型:资源,比如 pods。*匹配所有的资源请求。

非资源匹配属性:

nonResourcePath,字符串类型:跟所有的非资源请求路径相匹配(比如/version,/apis)。*跟匹配所有非资源请求。/foo/*跟/foo/,以及它的子路径。


只读,布尔型:当为真,也就意味着策略只应用于获取,列出和监测操作。

Webhook

调出一个外部 RESTful 授权服务。


身份验证和授权机制的选择取决于你的要求。然而在我的经验看来,我发现基于证书的身份验证方法,基于身份验证方法的 keystone(LDAP),基于身份验证策略的 ABAC,这三种方法的灵活结合提供了所需的功能,来培养 Kubernetes 环境。


想要了解更多关于认证和授权的信息,建议浏览一下两个链接:


认证:http://kubernetes.io/docs/admin/authentication/


授权:http://kubernetes.io/docs/admin/authorization


本文转载自才云 Caicloud 公众号。


原文链接:https://mp.weixin.qq.com/s/wSMDcQpySKFV7xkbC5wJlw


2020-03-12 22:551043

评论

发布
暂无评论
发现更多内容

限时赠书|Altair 助力高校数据科学教育:中山大学教授发布RapidMiner 权威教材

Altair RapidMiner

人工智能 AI 数据分析 制造业 RapidMiner

MyEMS:开源能源管理的破局者

开源能源管理系统

开源 开源能源管理系统

财务人必看:这款RPA让你少熬夜,多成长

Techinsight

“团队敏捷教练进阶课程”10月18-19日 · 在线A-CSM认证周末班

ShineScrum

Scrum 敏捷

再见 Cursor,Qoder 真香!这波要改写 AI 编程格局

阿里巴巴云原生

看板方法的原则与实践

ShineScrum

Kanban 看板 看板工具

NJet支持使用json格式的配置文件了

通明湖

揭秘LedgerCTF的AES白盒挑战:逆向工程与密码学分析

qife122

逆向工程 白盒密码学

必看!Apache DolphinScheduler 任务组因 MySQL 时区报错全解析与避坑指南

白鲸开源

MySQL 大数据 开源 Apache DolphinScheduler 任务调度

Flink Agents:基于Apache Flink的事件驱动AI智能体框架

Apache Flink

大数据 flink 实时计算

千万许可黑洞?VMware 升级后,我们的IT预算差点崩盘

智驱前线

Audition 入门教程:音频降速

北桥苏

Adobe Audition

避坑指南:1688商品详情API采集及常见错误码

tbapi

1688商品详情接口 1688API 1688商品数据采集 1688商品详情API 1688数据分析

从苹果新品发布会看海外红人营销的流量密码

Wolink

苹果 出海 海外营销推广 沃链Wolink 达人营销

Jira 官宣停售 Data Center ,中国企业又双叒要迁移了?!

万事ONES

Jira Atlassian 国产化替代 ONES研发管理

为什么舆情监测离不开海外社交媒体分析?

沃观Wovision

社交媒体 沃观Wovision 舆情监测系统 海外舆情监测

Apache服务器自动化运维与安全加固脚本详解

qife122

日志分析 Apache安全

扫描全能王“翻页自动拍”功能上线,AI扫描提升教师教学材料电子化效率

合合技术团队

告别资料混乱!PJMan 让项目文件管理,简单到不用找

Tecjt_锦图科技

项目管理

淘宝闪购实时分析黑科技:StarRocks + Paimon撑起秋天第一波奶茶自由

阿里云大数据AI技术

阿里云 饿了么 StarRocks 物化视图 湖仓

舆情监测进入全球化时代,海外社交媒体分析是核心驱动力

沃观Wovision

社交媒体 沃观Wovision 舆情监测系统 海外舆情监测

私域商城物流模块开发实战:基于快递鸟API构建高效履约体系

快递鸟

数据集成平台怎么选?从ETL到CDC再到iPaaS的全景对比

谷云科技RestCloud

数字化转型 ETL 集成平台 CDC ipaas

WAVE SUMMIT深度学习开发者大会2025举行 文心大模型X1.1发布

Comate编码助手

百度 文心大模型 AI 编程 文心快码 文心大模型X1.1

阅读破10万的学Go建议,不管初学Go还是进阶都值得一看!

王中阳Go

Go

AI 在研发效能中的实际应用效果|《DevData 2025 研发效能基准报告》

思码逸研发效能

研发效能 研发效能度量 研发效能管理 智能编程 思码逸

MyEMS:开源驱动下的企业能源管理革新者 —— 从技术架构到 “双碳” 落地的实践之路

开源能源管理系统

开源 开源能源管理系统

码住!DolphinScheduler 常见故障 “急救指南”,一文解决服务、调度、连接等难题

白鲸开源

大数据 开源 技术 Apache DolphinScheduler 故障排查

积极响应“人工智能+”行动,和鲸助力打造气象数据查询智能体示范应用,让风云“智慧可测”

ModelWhale

气象 数据查询 气象数据 人工智能+

SonicWall防火墙安全态势深度分析:固件解密与漏洞洞察

qife122

漏洞分析 SonicWall

(二)一文读懂数仓设计的核心规范:从层次、类型到生命周期

白鲸开源

数据库 大数据 数据仓库 命名规范

如何理解Kubernetes认证和授权_语言 & 开发_才云科技_InfoQ精选文章