最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

k8s scc權限和內置的restricted、anyuid、privileged詳解

 更新時間:2025年07月11日 08:50:06   作者:云川之下  
這篇文章主要介紹了k8s scc權限和內置的restricted、anyuid、privileged,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

概述

在OpenShift(后文簡稱OCP)中,很早就一個概念:Security Context Constraints ,簡稱SCC,即安全上下文約束。

K8S的Pod安全策略和OCP中的SCC有一定繼承(現(xiàn)有OCP的SCC后有K8S的pod安全策略)。

為了更好地理解K8S的容器安全策略,并且控制篇幅,我們在本篇中先介紹OCP的SCC。

1. 內置的scc

安全上下文約束是OpenShift提供的工具,用于控制平臺上允許每個Pod請求的特權。

OpenShift帶有8個預定義的安全上下文約束,您可以使用oc get scc命令列出這些約束。

SCCDescription說明
restricted受限拒絕訪問所有主機功能,并要求Pod必須與UID和分配給名稱空間的SELinux上下文一起運行。這是限制性最強的SCC,默認情況下,它用于經過身份驗證的用戶換句話說,這是最安全的一種SCC。
nonrootnonroot提供受限SCC的所有功能,但允許用戶使用任何非root UID運行。用戶必須指定UID,或者必須在容器運行時清單上指定UID。需要具有相同的其他受限制的SCC安全功能的可預測的非根UID的應用程序可以使用此SCC,只要它們在清單中通知了UID。
anyuidanyuid提供了受限SCC的所有功能,但允許用戶使用任何UID和任何GID運行。在kubernetes和OpenShift之類的平臺上,這等效于允許在容器內部和外部都允許UID 0或root用戶。SELinux在這里起到了重要的作用,它增加了一層保護,并且使用seccomp過濾不需要的系統(tǒng)調用。
hostmount-anyuidhostmount-anyuid提供了受限SCC的所有功能,但允許通過Pod進行主機安裝和任何UID。這主要由持久性卷回收器使用。警告:此SCC允許主機文件系統(tǒng)作為任何UID(包括UID 0)進行訪問。請謹慎授權。與anyuid相同的警告,但在這里它會更進一步,并允許安裝主機卷。請注意,描述中提到的卷回收器是受信任的工作負載,也是必不可少的基礎架構.
hostnetworkhostnetwork允許使用主機網絡和主機端口,但仍要求Pod必須與分配給namepac的UID和SELinux上下文一起運行e在這里,pod/容器將能夠直接“查看和使用”主機網絡堆棧。非零UID和預分配的SELinux上下文將有助于提供另一層安全性。
node-exporternode-exporter scc is used for the Prometheus node exporterNode-exporter 是為Prometheus設計的,用于從集群中檢索指標。它允許訪問主機網絡,主機PIDS和主機卷,但不能訪問主機IPC。也允許anyuid。不能被其他應用程序使用。
hostaccesshostaccess允許訪問所有主機名稱空間,但仍要求Pod必須與分配給名稱空間的UID和SELinux上下文一起運行。警告:此SCC允許主機訪問名稱空間,文件系統(tǒng)和PIDS。它只能由受信任的Pod使用。謹慎行事。在描述中,主機名稱空間是指在pod或容器名稱空間之外,或者,我們可以將其稱為節(jié)點或根Linux名稱空間。確實,限制UID并使用SELinux將為保護節(jié)點設置一層安全性。但是,它是一個非常寬松的SCC,僅應由絕對必要的受信任工作負載使用。
Privilegedprivileged允許訪問所有特權和主機功能,并具有以任何用戶,任何組,任何fsGroup和任何SELinux上下文運行的能力。警告:這是最寬松的SCC,僅應用于集群管理。謹慎行事。此scc允許pod /容器控制主機/ worker節(jié)點甚至其他容器中的所有內容。這是最特權和最寬松的SCC策略。僅受信任的工作負載應使用此選項,并討論是否應將其用于生產中是有效的。特權pod可以完全控制主機。

本質是scc權限列表不同:

restrictedanyuidprivileged
allowHostDirVolumePlugin: falseallowHostDirVolumePlugin: falseallowHostDirVolumePlugin: true
allowHostIPC: falseallowHostIPC: falseallowHostIPC: true
allowHostNetwork: falseallowHostNetwork: falseallowHostNetwork: true
allowHostPID: falseallowHostPID: falseallowHostPID: true
allowHostPorts: falseallowHostPorts: falseallowHostPorts: true
allowPrivilegeEscalation: trueallowPrivilegeEscalation: trueallowPrivilegeEscalation: true
allowPrivilegedContainer: falseallowPrivilegedContainer: falseallowPrivilegedContainer: true
allowedCapabilities: nullallowedCapabilities: [allowedCapabilities: [*]
NET_RAW
FSETID
SETGID
SETUID
CHOWN
SYS_CHROOT]
allowedUnsafeSysctls:allowedUnsafeSysctls: [*]
apiVersion: security.openshift.io/v1apiVersion: security.openshift.io/v1apiVersion: security.openshift.io/v1
defaultAddCapabilities: nulldefaultAddCapabilities: nulldefaultAddCapabilities: null
fsGroup:fsGroup: RunAsAnyfsGroup: RunAsAny
groups: []groups: [system:cluster-admins]groups: [system:cluster-admins, system:nodes, system:masters]
kind: SecurityContextConstraintskind: SecurityContextConstraintskind: SecurityContextConstraints
name: restrictedname: anyuidname: privileged
resourceVersion: “3512475209”resourceVersion: “3512475203”resourceVersion: “340”
uid: bdb21b4f-dfda-456a-8aa3-7fdcd8ee2f2duid: d35f70ed-47ce-4b22-83d0-b0b2a4bc07f8uid: 1df9ef3c-1fab-4031-a2cd-3d7479069050
priority: nullpriority: 10priority: null
readOnlyRootFilesystem: falsereadOnlyRootFilesystem: falsereadOnlyRootFilesystem: false
requiredDropCapabilities: [KILL, MKNOD, SETUID, SETGID]requiredDropCapabilities: [MKNOD]requiredDropCapabilities: null
runAsUser:runAsUser: RunAsAnyrunAsUser: RunAsAny
seLinuxContext:seLinuxContext: MustRunAsseLinuxContext: RunAsAny
supplementalGroups: RunAsAnysupplementalGroups: RunAsAnysupplementalGroups: RunAsAny
users: []users: []users: [system:admin, system:serviceaccount:openshift-infra:build-controller]
volumes: [configMap, csi, downwardAPI, emptyDir, ephemeral, persistentVolumeClaim, projected, secret]volumes: [configMap, csi, downwardAPI, emptyDir, ephemeral, persistentVolumeClaim, projected, secret]volumes: [*]

2. OpenShift如何確定pod的scc

  • 如果Pod指定了SCC注解,且ServiceAccount有權限使用該SCC,則優(yōu)先使用注解指定的SCC。
  • 如果未指定注解,則基于ServiceAccount的綁定權限,從嚴格到寬松挑選合適的SCC。
  • 無論是否指定注解,最終都需要驗證ServiceAccount的綁定權限,這意味著標簽并不能完全繞過權限控制。

2.1 Pod未帶SCC標簽的情況

  • 如果Pod沒有明確指定SCC,OpenShift會按照以下流程選擇一個適用的SCC:
  • 檢查Pod的ServiceAccount,以及該ServiceAccount的角色綁定所允許的SCC列表。

對SCC列表按照權限的嚴格程度排序:

  • 從最嚴格的SCC(例如restricted)到最寬松的SCC(例如privileged)。
  • 從排序中選擇第一個Pod能滿足的SCC作為其適用的SCC。

2.2. Pod帶有SCC標簽的情況

OpenShift允許通過Pod的openshift.io/scc注解直接指定使用的SCC。

如果Pod通過注解明確指定了一個SCC(如openshift.io/scc=restricted),OpenShift會優(yōu)先嘗試使用該SCC。

然而,Pod仍需滿足以下條件:

  • Pod的ServiceAccount具有綁定到該SCC的權限:OpenShift會檢查綁定(RoleBinding 或 ClusterRoleBinding)中,是否允許ServiceAccount使用這個指定的SCC。
  • 如果綁定驗證成功,則使用指定的SCC。
  • 如果綁定驗證失敗,則該Pod無法創(chuàng)建。

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • kubelet為cadvisor添加namespace/pod/container標簽示例詳解

    kubelet為cadvisor添加namespace/pod/container標簽示例詳解

    這篇文章主要為大家介紹了kubelet為cadvisor添加namespace/pod/container標簽示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • k8s?series初級calico使用介紹

    k8s?series初級calico使用介紹

    這篇文章主要為大家介紹了k8s?series初級calico使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • K8S之StatefulSet有狀態(tài)服務詳解

    K8S之StatefulSet有狀態(tài)服務詳解

    本文主要介紹了K8S之StatefulSet有狀態(tài)服務詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • kubelet啟動失敗的解決方案

    kubelet啟動失敗的解決方案

    這篇文章主要介紹了kubelet啟動失敗的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-10-10
  • kubernetes?Volume存儲卷configMap學習筆記

    kubernetes?Volume存儲卷configMap學習筆記

    這篇文章主要為大家介紹了kubernetes?Volume存儲卷configMap學習筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Kubernetes之Pod的調度實現(xiàn)方式

    Kubernetes之Pod的調度實現(xiàn)方式

    Kubernetes通過定向調度(NodeName/NodeSelector)、親和性調度(NodeAffinity/PodAffinity/PodAntiAffinity)及污點容忍(Taints/Toleration)實現(xiàn)Pod節(jié)點控制,分別用于強制指定節(jié)點、優(yōu)化部署位置和靈活管理節(jié)點準入,滿足不同場景下的調度需求
    2025-09-09
  • K8S臨時存儲-本地存儲-PV和PVC詳解-動態(tài)存儲(StorageClass)

    K8S臨時存儲-本地存儲-PV和PVC詳解-動態(tài)存儲(StorageClass)

    文章介紹了Kubernetes中容器數(shù)據(jù)的持久化解決方案,包括hostPath、emptyDir、NFS卷以及PV和PVC,詳細說明了這些存儲卷的類型、配置方法和使用場景,并提供了創(chuàng)建和綁定存儲卷的示例,此外,還討論了存儲卷的回收策略和卷模式,以及如何使用StorageClass進行動態(tài)存儲配置
    2026-03-03
  • 云原生時代的前端部署最佳實踐(含詳細代碼)

    云原生時代的前端部署最佳實踐(含詳細代碼)

    云原生安全架構應運而生,它通過零信任、自動化防護和全生命周期管理等理念,為企業(yè)提供從基礎設施到應用層的全方位保護,這篇文章主要介紹了云原生時代的前端部署最佳實踐,需要的朋友可以參考下
    2026-04-04
  • K8S加入新的node節(jié)點實現(xiàn)方式

    K8S加入新的node節(jié)點實現(xiàn)方式

    文章主要介紹了基于kubeadm安裝的k8s集群加入新的節(jié)點的過程,包括初始化節(jié)點、安裝Docker和相關組件、配置鏡像下載加速器、添加軟件源、安裝組件、上傳和解壓鏡像、加入新的節(jié)點并查看節(jié)點狀態(tài)等步驟
    2026-04-04
  • 關于CentOS7日志文件及journalctl日志查看方法

    關于CentOS7日志文件及journalctl日志查看方法

    這篇文章主要介紹了關于CentOS7日志文件及journalctl日志查看方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評論

尼玛县| 喀喇沁旗| 连江县| 渭源县| 桓仁| 杭锦旗| 台安县| 鞍山市| 天祝| 卢湾区| 新巴尔虎右旗| 巨野县| 六安市| 阿拉善右旗| 英山县| 中方县| 绥滨县| 辽中县| 康乐县| 福鼎市| 金秀| 湟中县| 鲁山县| 曲周县| 盐亭县| 仪征市| 呈贡县| 东乡县| 瓮安县| 额济纳旗| 台江县| 攀枝花市| 葫芦岛市| 赫章县| 宁安市| 城步| 铁岭市| 宁远县| 陕西省| 西藏| 吉木萨尔县|