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

k8s scc權(quán)限和內(nèi)置的restricted、anyuid、privileged詳解

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

概述

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

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

為了更好地理解K8S的容器安全策略,并且控制篇幅,我們?cè)诒酒邢冉榻BOCP的SCC。

1. 內(nèi)置的scc

安全上下文約束是OpenShift提供的工具,用于控制平臺(tái)上允許每個(gè)Pod請(qǐng)求的特權(quán)。

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

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

本質(zhì)是scc權(quán)限列表不同:

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有權(quán)限使用該SCC,則優(yōu)先使用注解指定的SCC。
  • 如果未指定注解,則基于ServiceAccount的綁定權(quán)限,從嚴(yán)格到寬松挑選合適的SCC。
  • 無(wú)論是否指定注解,最終都需要驗(yàn)證ServiceAccount的綁定權(quán)限,這意味著標(biāo)簽并不能完全繞過(guò)權(quán)限控制。

2.1 Pod未帶SCC標(biāo)簽的情況

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

對(duì)SCC列表按照權(quán)限的嚴(yán)格程度排序:

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

2.2. Pod帶有SCC標(biāo)簽的情況

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

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

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

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

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • kubelet為cadvisor添加namespace/pod/container標(biāo)簽示例詳解

    kubelet為cadvisor添加namespace/pod/container標(biāo)簽示例詳解

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

    k8s?series初級(jí)calico使用介紹

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

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

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

    kubelet啟動(dòng)失敗的解決方案

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

    kubernetes?Volume存儲(chǔ)卷configMap學(xué)習(xí)筆記

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

    Kubernetes之Pod的調(diào)度實(shí)現(xiàn)方式

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

    K8S臨時(shí)存儲(chǔ)-本地存儲(chǔ)-PV和PVC詳解-動(dòng)態(tài)存儲(chǔ)(StorageClass)

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

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

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

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

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

    關(guān)于CentOS7日志文件及journalctl日志查看方法

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

最新評(píng)論

临湘市| 东乡族自治县| 新乡市| 吉木乃县| 南安市| 方城县| 定结县| 盐池县| 维西| 贵州省| 双城市| 宁化县| 台安县| 桂阳县| 蓬安县| 行唐县| 阳城县| 鄂伦春自治旗| 平利县| 锦州市| 北票市| 昆山市| 宜宾县| 旌德县| 安远县| 日照市| 正镶白旗| 丰顺县| 吐鲁番市| 泽普县| 鄂温| 江安县| 上杭县| 海阳市| 黑龙江省| 开原市| 石阡县| 永新县| 长白| 锦州市| 赣榆县|