OpenShift 4 - 容器安全之 SecurityContext 配置

2024-01-05 10:04

本文主要是介绍OpenShift 4 - 容器安全之 SecurityContext 配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《OpenShift / RHEL / DevSecOps 汇总目录》

以下两文介绍了如何利用容器特权配置对容器平台进行安全攻击,而本文介绍和部署运行容器相关的最佳 SecurityContext 实践。

  • 《容器安全 - 利用容器的特权配置实现对Kubernetes攻击,以及如何使用 PSA
    防范风险(视频)》

  • 《OpenShift - 利用容器的特权配置实现对OpenShift攻击,以及如何使用 PSA 和 RHACS
    防范风险(视频)》

安全上下文

安全上下文(Security Context)定义 Pod 或 Container 的特权与访问控制设置。由下表可以看出,可在 Pod 和 Container 设置的 SecurityContext 项目部分相同、部分有差异。其中 Pod 的设置是缺省值,而 Container 的设置可以覆盖 Pod 的设置。

pod.spec.securityContextpod.spec.containers.securityContext
allowPrivilegeEscalation
capabilities
fsGroup
fsGroupChangePolicy
privileged
procMount
runAsGrouprunAsGroup
runAsNonRootrunAsNonRoot
runAsUserrunAsUser
seLinuxOptionsseLinuxOptions
seccompProfileseccompProfile
supplementalGroups
sysctls
windowsOptionswindowsOptions

下面介绍其中和容器安全相关的项目:

allowPrivilegeEscalation

allowPrivilegeEscalation 决定容器的权限是否可以升级。当设置为 true 时,容器将获得默认权限之外的额外权限;false 可以帮助降低权限升级攻击的风险。

  containers:- name: webappimage: nginx:1.17securityContext:allowPrivilegeEscalation: false

runAsNonRoot

runAsNonRoot 用来设置用于防止容器以 root 用户身份运行,因为 root 用户身份运行可能很危险。一般建议尽可能以非 root 方式运行容器,以降低权限升级攻击的风险。但请记住,某些应用程序可能需要 root 访问权限才能正常运行。当 runAsNonRoot 设置为 true 时,容器将以非根用户 ID(UID)启动,而不是默认的根用户 UID 0。

  containers:- name: webappimage: nginx:1.17securityContext:runAsNonRoot: true

readOnlyRootFilesystem

readOnlyRootFilesystem 用来设置用于阻止对容器 root 文件系统的写访问。启用此设置并将其设置为 "true "时,容器的 root 文件系统将被挂载为只读,如果尝试写入 root 文件系统失败,将导致运行时错误。启用此设置虽然会减少攻击面,不过可能并不适合所有容器/应用程序,尤其是那些需要对 root 文件系统进行写访问才能正常运行的容器/应用程序。

  containers:- name: webappimage: nginx:1.17securityContext:readOnlyRootFilesystem: true

runAsUser

runAsUser 用来设置用于指定运行容器时应使用的用户 ID。默认情况下,容器是以 root 用户身份运行的,如果攻击者获得了对容器的访问权限,就会带来安全风险。为了降低权限升级攻击的风险,容器应尽可能以非 root 用户的身份运行。此配置可在 pod 和/或容器级别使用;如果在容器级别设置,它将覆盖 pod 的配置。

  containers:- name: webappimage: nginx:1.17securityContext:runAsGroup: 1000

runAsGroup

runAsGroup 用来设置指定容器主进程应在哪个组 ID 下运行。此配置也可用于 pod 和/或容器级别;如果在容器级别设置,它将覆盖 pod 的配置。

  containers:- name: webappimage: nginx:1.17securityContext:runAsGroup: 1000

capabilities

capabilities 用来设置容器可用的内核能力。建议缺省可放弃容器所有能力,只在必要时添加授权或允许的能力,这有助于降低容器遭受潜在权限升级攻击的风险。将 capabilities 字段设置为空对象 {} 即可从容器中删除所有 Linux 能力。

  containers:- name: webappimage: nginx:1.17securityContext:capabilities: {}
  containers:- name: webappimage: nginx:1.17securityContext:capabilities:add:- SYS_TIMEdrop:- SYS_ADMIN

参考

https://www.cncf.io/blog/2023/12/15/best-practices-for-securing-kubernetes-deployments/
https://kubesec.io/basics/securitycontext-capabilities/

这篇关于OpenShift 4 - 容器安全之 SecurityContext 配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/572503

相关文章

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的