云原生安全入门之集群安全机制与配置

admin 2022年7月14日17:57:35评论23 views字数 1171阅读3分54秒阅读模式


点击蓝字 关注我们

前言


继续学习k8s,今天主要记录集群安全机制和配置。

正文


secret用来保存小片敏感数据的k8s资源,例如密码,token,或者秘钥。这类数据当然也可以存放在Pod或者镜像中,但是放在Secret中是为了更方便的控制如何使用数据,并减少暴露的风险。

其中有两种创建Secret的方法:

以变量形式挂载到容器中

以Volumn形式挂载到容器

Secret的三种类型:

Service Account :用来访问 Kubernetes API,由 Kubernetes 自动创建,并且会自动挂

载到 Pod 的

/run/secrets/kubernetes.io/serviceaccount 目录中

Opaque : base64 编码格式的 Secret,用来存储密码、密钥等

kubernetes.io/dockerconfigjson :用来存储私有 docker registry 的认证信息

创建Secret加密数据

云原生安全入门之集群安全机制与配置

以变量形式挂载到pod容器中。

云原生安全入门之集群安全机制与配置

云原生安全入门之集群安全机制与配置


以volume形式挂载到pod容器中

云原生安全入门之集群安全机制与配置

云原生安全入门之集群安全机制与配置



Configmap:

作用:存储不加密数据到etcd,让Pod以变量或者Volume挂载到容器中

场景:配置文件

kubectl create configmap redis-config --from-file=redis.properties

kubectl get cm 

kubectl describe cm redis-config


云原生安全入门之集群安全机制与配置

云原生安全入门之集群安全机制与配置


访问k8s集群时,需要经过三个步骤完成具体操作

第一步 认证

第二步  鉴权(授权)

第三步 准入控制

进行访问时候,过程中都需要经过apiserver,apiserver做统一协调,比如门卫,访问过程中都需要证书、token、或者用户名+密码

如果访问pod需要serviceAccount

传输安全:对外不暴露8080端口,只能内部访问,对外使用6443


基于RBAC进行鉴权

基于角色的访问控制


准入控制就是准入控制器的列表,如果列表有请求内容,通过,没有就拒绝


Role ClusterRote


role:特定命名空间

ClusterRole:所有命名空间访问权限


角色绑定:

roleBinding:角色绑定到主体

ClusterRoleBinding:集群角色绑定到主体


主体

user:用户

group: 用户组


1、创建命名空间

 kubectl get ns

 kubectl create ns roledemo


2、在新创建的命名空间创建 pod

 kubectl run nginx --image=nginx -n roledemo

 kubectl apply -f rabc-role.yaml


3、创建角色

kubectl apply -f rbac-role.yaml


4、角色绑定

kubectl apply -f rbac-binding.yaml


5、证书绑定

绑定证书

云原生安全入门之集群安全机制与配置


云原生安全入门之集群安全机制与配置


云原生安全入门之集群安全机制与配置


云原生安全入门之集群安全机制与配置


原文始发于微信公众号(Th0r安全):云原生安全入门之集群安全机制与配置

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月14日17:57:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   云原生安全入门之集群安全机制与配置https://cn-sec.com/archives/1177399.html

发表评论

匿名网友 填写信息