k8s,1.修改容器内主机名和/etc/hosts 文件,2.root特权容器,3.pod安全策略(基于名称空间

devtools/2025/2/8 9:18:55/
1.修改容器内主机名和/etc/hosts 文件,让持久生效,通过修改资源清单方式---kind: PodapiVersion: v1metadata:name: rootspec:hostname: myhost         # 修改主机名hostAliases:             # 修改 /etc/hosts- ip: 192.168.88.240     # IP 地址hostnames:             # 名称键值对- harbor               # 主机名containers:- name: apacheimage: myos:httpd
2.root特权容器1.系统进程特权,可以引起宿主机数据的变更hostPID: true     		# 特权,共享系统进程2.pod容器网络特权hostNetwork: true          # 特权,共享主机网络3.root特权securityContext:           # 安全上下文值privileged: true     # root特权容器# root用户特权的使用[root@node-0001 /]# mkdir /sysroot[root@node-0001 /]# mount /dev/vda1 /sysroot[root@node-0001 /]# mount -t proc proc /sysroot/proc[root@node-0001 /]# chroot /sysrootsh-4.2# : 此处已经是 node 节点上的 root 用户了---   #特权资源文件编写kind: PodapiVersion: v1metadata:name: rootspec:hostPID: true            # 特权,共享系统进程hostNetwork: true        # 特权,共享主机网络containers:- name: apacheimage: myos:httpdsecurityContext:       # 安全上下文值privileged: true     # root特权容器3.pod安全策略(基于名称空间来设置)1.语法:...pod-security.kubernetes.io/标签:策略kubectl label namespace myweb pod-security.kubernetes.io/标签:策略2.pod准入控制标签:1)enforce:违反策略会导致pod被拒绝2)audit:违反策略会触发审计日志,但是pod仍然可以被接受3)warn:违反策略会查发警告信息,但是pod仍然可以被接受3.pod安全策略1)privileged:不受限制的策略,提供最大范围权限,可以允许设置特权提升规则2)baseline:弱限制性的策略,禁止已知的策略提升权限,允许使用默认的pod配置3)restricted:非常严格的限制性策略,几乎不允许任何特权提升的行为4.测试安全策略:kubectl label namespaces mytest pod-security.kubernetes.io/warn=baselinekubectl -n mytest apply -f root.yaml即使这个名称空间设置的弱限制性策略,由于没有设置安全声明,也不能成功创建5.pod设置安全声明---kind: PodapiVersion: v1metadata:name: nonrootspec:containers:- name: phpimage: myos:php-fpmsecurityContext:                      # 声明安全策略allowPrivilegeEscalation: false     # 容器内没有权限提升的行为runAsNonRoot: true                  # 容器运行在非 root 用户下runAsUser: 65534                    # 运行容器用户的 UIDseccompProfile:                     # 容器使用了默认的安全配置type: "RuntimeDefault"capabilities:                       # 容器禁用了所有特权能力drop: ["ALL"]

1.修改容器内主机名和/etc/hosts 文件,让持久生效,通过修改资源清单方式

        ---
        kind: Pod
        apiVersion: v1
        metadata:
          name: root
        spec:
          hostname: myhost         # 修改主机名
          hostAliases:             # 修改 /etc/hosts
          - ip: 192.168.88.240     # IP 地址
            hostnames:             # 名称键值对
            - harbor               # 主机名
          containers:
          - name: apache
            image: myos:httpd
2.root特权容器

    1.系统进程特权,可以引起宿主机数据的变更
        hostPID: true             # 特权,共享系统进程

    2.pod容器网络特权
        hostNetwork: true          # 特权,共享主机网络
        
    3.root特权
         securityContext:           # 安全上下文值
                  privileged: true     # root特权容器

        # root用户特权的使用
        [root@node-0001 /]# mkdir /sysroot
        [root@node-0001 /]# mount /dev/vda1 /sysroot
        [root@node-0001 /]# mount -t proc proc /sysroot/proc
        [root@node-0001 /]# chroot /sysroot
        sh-4.2# : 此处已经是 node 节点上的 root 用户了

        ---   #特权资源文件编写
        kind: Pod
        apiVersion: v1
        metadata:
          name: root
        spec:
          hostPID: true            # 特权,共享系统进程
          hostNetwork: true        # 特权,共享主机网络
          containers:
          - name: apache
            image: myos:httpd
            securityContext:       # 安全上下文值
              privileged: true     # root特权容器

3.pod安全策略(基于名称空间来设置)
    1.语法:...pod-security.kubernetes.io/标签:策略
        kubectl label namespace myweb pod-security.kubernetes.io/标签:策略

    2.pod准入控制标签:
        1)enforce:违反策略会导致pod被拒绝
        2)audit:违反策略会触发审计日志,但是pod仍然可以被接受
        3)warn:违反策略会查发警告信息,但是pod仍然可以被接受

    3.pod安全策略
        1)privileged:不受限制的策略,提供最大范围权限,可以允许设置特权提升规则
        2)baseline:弱限制性的策略,禁止已知的策略提升权限,允许使用默认的pod配置
        3)restricted:非常严格的限制性策略,几乎不允许任何特权提升的行为

    4.测试安全策略:kubectl label namespaces mytest pod-security.kubernetes.io/warn=baseline
        kubectl -n mytest apply -f root.yaml
        即使这个名称空间设置的弱限制性策略,由于没有设置安全声明,也不能成功创建

    5.pod设置安全声明
        ---
        kind: Pod
        apiVersion: v1
        metadata:
          name: nonroot
        spec:
          containers:
          - name: php
            image: myos:php-fpm
            securityContext:                      # 声明安全策略
              allowPrivilegeEscalation: false     # 容器内没有权限提升的行为
              runAsNonRoot: true                  # 容器运行在非 root 用户下
              runAsUser: 65534                    # 运行容器用户的 UID
              seccompProfile:                     # 容器使用了默认的安全配置
                type: "RuntimeDefault"
              capabilities:                       # 容器禁用了所有特权能力
                drop: ["ALL"]


http://www.ppmy.cn/devtools/157063.html

相关文章

七。自定义数据集 使用tensorflow框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测

import tensorflow as tf import numpy as np # 自定义数据集类 class CustomDataset(tf.data.Dataset): def __init__(self, x_data, y_data): self.x_data tf.convert_to_tensor(x_data, dtypetf.float32) self.y_data tf.convert_to_tensor(y_data, …

图论——环检测

环检测以及拓扑排序 前言复习模版环检测-DFS版本环检测- BFS版本 前言 我觉得学习这些之前,一定要对图的数据结构和抽象模型有概念,并且图构建的代码模版应该手到擒来,不然还是挺折磨的,不是这差一点就是那差一点,写道力扣卡卡的非常烦人. 复习模版 我觉得单拿出来再说这个模…

Spring Boot整合MQTT

MQTT是基于代理的轻量级的消息发布订阅传输协议。 1、下载安装代理 进入mosquitto下载地址:Download | Eclipse Mosquitto,进行下载,以win版本为例 下载完成后,在本地文件夹找到下载的代理安装文件 使用管理员身份打开安装 安装…

【第一章】 操作系统的概述

目录 零、前言 0.1 考纲内容 0.2 考情统计 0.3 考点解读 0.4 复习建议 一、操作系统的基本概念 1.1 操作系统的概念 1.1.1 电脑的诞生过程 1.1.2 操作系统的定义 1.2 操作系统的功能 1.2.1 QQ聊天引入 1.2.2 处理器管理的功能 1.2.3 存储器管理的功能 1.2.4 文件…

Linux——基础命令2

1、用户 Linux是一个多用户多任务操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。 Linux系统支持多个用户在同一时间内登陆,不同用户可以执行不同的任务&#xff0c…

群晖NAS如何通过WebDAV和内网穿透实现Joplin笔记远程同步

文章目录 前言1. 检查群晖Webdav 服务2. 本地局域网IP同步测试3. 群晖安装Cpolar工具4. 创建Webdav公网地址5. Joplin连接WebDav6. 固定Webdav公网地址7. 公网环境连接测试 前言 在数字化浪潮的推动下,笔记应用已成为我们记录生活、整理思绪的重要工具。Joplin&…

(苍穹外卖)项目结构

苍穹外卖项目结构 后端工程基于 maven 进行项目构建,并且进行分模块开发。 1). 用 IDEA 打开初始工程,了解项目的整体结构: 对工程的每个模块作用说明: 序号名称说明1sky-take-outmaven父工程,统一管理依赖版本&…

​PDFsam Basic是一款 免费开源的PDF分割合并工具

PDFsam Basic 是一款功能强大的 PDF 工具,专为满足用户对 PDF 文件的各种操作需求而设计。它能够高效地拆分、合并、提取页面、混合以及旋转 PDF 文件,为用户提供灵活的文档处理解决方案。 合并 PDF 文件 PDF 合并是 PDFsam Basic 最受欢迎的功能之一。…