CKA考试习题:安全管理--Network Policy、serviceaccount、clusterrole

Rose ·
更新时间:2024-11-15
· 670 次阅读

所有命令都验证过,有更好的方式,欢迎留言~~~

CKA 习题和真题汇总

CKA考试经验:报考和考纲 

CKA :2019年12月英文原题和分值 

CKA考试习题:K8S基础概念--API 对象 CKA考试习题:调度管理- nodeAffinity、podAffinity、Taints CKA考试习题:K8S日志、监控与应用管理 CKA考试习题:网络管理-Pod网络、Ingress、DNS CKA考试习题:存储管理-普通卷、PV、PVC CKA考试习题:安全管理--Network Policy、serviceaccount、clusterrole CKA考试习题:k8s故障排查   CKA真题:题目和解析-1   CKA真题:题目和解析-2   CKA真题:题目和解析-3   CKA真题:题目和解析-4   CKA真题:题目和解析-5   CKA真题:题目和解析-6  

CKA真题:手动配置TLS BootStrap

更多CKA资料或交流:可加 wei  xin :wyf19910905

安全管理 大 纲

• 安全全景图
• 认证和鉴权
• Admissions与安全的持久化保存
键值(etcd)
• Pod SecurityContext(安全上下
文)
• Network Policy

安全全景图

认证(Authentication)和鉴权(Authorization)
 

认证(Authentication)
 
X509
Service Account(为k8s必选认证方式)
鉴权(Authorization)

Admission(PodSecurityPolicy)

Kube-apiserver的启动参数’—admissioncontrol=PodSecurityPolicy’新增PodSecurityPolicy
admission
• Admin用户创建PodSecurityPolicy策略,决定
能创建什么样的Pod
• 创建Pod的用户也必须赋予它能使用
PodSecurityPolicy策略的权限

安全的持久化保存键值( etcd)

etcd支持备份恢复机制,防止数据被误删导致数据丢失
• 用户的敏感信息建议存放在secret类型的资源中,该类型资源是加密存储在etcd中
• etcd支持https, kube-apiserver访问etcd使用https协议

安全上下文( Pod SecurityContext) 分为Pod级别和容器级别,容器级别的会覆盖Pod级别的相同设置。 在有PodSecurityPolicy策略的情况下,两者需要配合使用

Network Policy
Ingress和Egress策略控制
禁止或允许所有入口或出口请求
安全管理习题

1. 创建一个Role(只有cka namespace下pods的所有操作权限)和RoleBinding(使用
serviceaccount认证鉴权),使用对应serviceaccount作为认证信息对cka namespace
下的pod进行操作以及对default namespace下的pods进行操作。
– Role和RoleBinding的名称的名称为pod-reader

#通过命令获取yaml  kubectl get clusterrole view -oyaml > /home/term/role.yaml
 # 创建Role
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: cka
  name: pod-reader
rules:
- apiGroups: [""] # "" indicates the core API group
  resources: ["pods"]
  verbs: ["get", "watch", "list"]
#通过命令获取yaml  kubectl get clusterrolebinding view -oyaml > /home/term/rolebinding.yaml
# 创建serviceaccount 
kubectl create serviceaccount pod-reader -n cka
# 创建RoleBinding
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: cka
  name: pod-reader
subjects:
- namespace: cka
  kind: ServiceAccount
  name: pod-reader
roleRef:
  kind: Role 
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io/v1
# 获取token
# 查看secret名称
kubectl get secret -n cka
# 查看token
kubectl get secret -n cka pod-reader-token-jhrbp -oyaml| grep token: | awk '{print $2}' | base64 -d 
# 查看和设置证书
kubectl config view
kubectl config set-credentials fly  --token=XXX
# 设置context
kubectl config set-context fly --cluster=internalCluster --user=fly 
# 切换context 
kubectl config use-context fly
# 验证
使用kubectl get pods 报错

2. 部署三个deployment应用( A, B, C),允许A访问B应用,但是不允许C访问B应用。

– Deployment的名称为<hwcka-006--你的华为云id>
– Network Policy的名称为

# 部署三个deployment应用( A, B, C)
kubectl run  hwca-006-fly-a --image=nginx
kubectl run  hwca-006-fly-b --image=nginx
kubectl run  hwca-006-fly-c --image=nginx
# 查看POD的IP
kubectl get pods -o wide
NAME                                                READY     STATUS             RESTARTS   AGE       IP           NODE
hwca-006-fly-a-86bc7d5458-9rb8z   1/1       Running            0          3m        172.16.1.5   192.168.0.4
hwca-006-fly-b-6b46744466-vtcdw   1/1       Running            0          3m        172.16.1.6   192.168.0.4
hwca-006-fly-c-85c7c8954b-ndnql   1/1       Running            0          3m        172.16.1.7   192.168.0.4
# B应用打标签
kubectl label pod hwca-006-fly-b-6b46744466-vtcdw role=hwcka-006-1-fly-role
# Network Policy--允许A访问B应用,但是不允许C访问B应用
vi network-policy.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name:hwcka-006-fly
  namespace: cka
spec: 
  podSelector:
  matchLables:
    role: hwcka-006-1-fly-role
policyTypes:
- Ingress
ingress:
- from:
  - ipblock: 
    cidr: 172.16.1.0/28
    expect: 172.16.1.7
Network Policy说明


作者:琦彦



cka

需要 登录 后方可回复, 如果你还没有账号请 注册新账号