欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

概述

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

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

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

1. 內(nèi)置的scc

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

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

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

本質(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)限,從嚴格到寬松挑選合適的SCC。
  • 無論是否指定注解,最終都需要驗證ServiceAccount的綁定權(quán)限,這意味著標簽并不能完全繞過權(quán)限控制。

2.1 Pod未帶SCC標簽的情況

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

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

  • 從最嚴格的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的權(quán)限:OpenShift會檢查綁定(RoleBinding 或 ClusterRoleBinding)中,是否允許ServiceAccount使用這個指定的SCC。
  • 如果綁定驗證成功,則使用指定的SCC。
  • 如果綁定驗證失敗,則該Pod無法創(chuàng)建。

總結(jié)

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

相關(guān)文章

  • 詳解kubelet?創(chuàng)建pod流程代碼圖解及日志說明

    詳解kubelet?創(chuàng)建pod流程代碼圖解及日志說明

    這篇文章主要為大家介紹了詳解kubelet?創(chuàng)建pod流程代碼圖解及日志說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Kubernetes故障排除有效維護集群的最佳實踐工具

    Kubernetes故障排除有效維護集群的最佳實踐工具

    這篇文章主要為大家介紹了Kubernetes故障排除有效維護集群的最佳實踐工具詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Centos?8.2?升級內(nèi)核通過elrepo源的方法

    Centos?8.2?升級內(nèi)核通過elrepo源的方法

    這篇文章主要介紹了Centos?8.2?升級內(nèi)核通過elrepo源,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • k8s自身原理service及實現(xiàn)圖文示例解析

    k8s自身原理service及實現(xiàn)圖文示例解析

    這篇文章主要為大家介紹了k8s自身原理service圖文示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • kubernetes?k8s?CRD自定義資源學習筆記

    kubernetes?k8s?CRD自定義資源學習筆記

    這篇文章主要介紹了kubernetes?k8s?CRD自定義資源學習筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • K8S命令如何查看日志

    K8S命令如何查看日志

    文章內(nèi)容總結(jié):K8S命令查看日志,列出所有節(jié)點、切換節(jié)點、查看容器日志及部分日志內(nèi)容,個人經(jīng)驗分享,希望對大家有所幫助
    2024-11-11
  • Rainbond的ServiceMesh架構(gòu)組件端口沖突處理解決

    Rainbond的ServiceMesh架構(gòu)組件端口沖突處理解決

    這篇文章主要大家介紹了Rainbond?ServiceMesh架構(gòu)組件端口沖突處理方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • Kubernetes存儲系統(tǒng)數(shù)據(jù)持久化管理詳解

    Kubernetes存儲系統(tǒng)數(shù)據(jù)持久化管理詳解

    這篇文章主要為大家介紹了Kubernetes存儲系統(tǒng)數(shù)據(jù)持久化管理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • k8s入門實戰(zhàn)deployment使用詳解

    k8s入門實戰(zhàn)deployment使用詳解

    這篇文章主要為大家介紹了k8s入門實戰(zhàn)deployment使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 云原生要素配置分離ConfigMap創(chuàng)建方式

    云原生要素配置分離ConfigMap創(chuàng)建方式

    這篇文章主要為大家介紹了云原生要素配置分離ConfigMap以及多種創(chuàng)建方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-03-03

最新評論