【K8s 精選】隔離 Pod 的安全策略

網(wǎng)絡(luò)策略負(fù)責(zé)限制出流量舒憾,Pod 安全策略負(fù)責(zé) Pod 內(nèi)限制系統(tǒng)的訪問權(quán)限

1 網(wǎng)絡(luò)策略

參考 Kubernetes 網(wǎng)絡(luò)策略

NetworkPolicy 的示例:
ingress 入規(guī)則:允許以下 Pod 連接到 default 名字空間下的帶有 role=db 標(biāo)簽的所有 Pod 的 6379 TCP 端口
egress 出規(guī)則:允許名字空間 default 中所有自帶標(biāo)簽 role=db 的 Pod 使用 TCP 協(xié)議 與 10.0.0.0/24 范圍內(nèi)的 IP 通信,只要目標(biāo)端口介于 32000 和 32768 之間就可以克胳。

piVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:
    matchLabels:
      role: db
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    # IP 地址范圍為 172.17.0.0–172.17.0.255 和 172.17.2.0–172.17.255.255 (即德挣,除了 172.17.1.0/24 之外的所有 172.17.0.0/16)
    - ipBlock:
        # CIDR 表示范圍
        cidr: 172.17.0.0/16
        except:
        - 172.17.1.0/24
    # 帶有 project=myproject 標(biāo)簽的所有名字空間中的 Pod
    - namespaceSelector:
        matchLabels:
          project: myproject
    # default 名字空間下帶有 role=frontend 標(biāo)簽的所有 Pod
    - podSelector:
        matchLabels:
          role: frontend
    ports:
    - protocol: TCP
      port: 6379
  egress:
  - to:
    - ipBlock:
        cidr: 10.0.0.0/24
    ports:
    - protocol: TCP
      port: 32000
     endport: 32768

默認(rèn)拒絕所有出站流量

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-egress
spec:
  podSelector: {}
  policyTypes:
  - Egress

2 Pod 安全策略

Pod 安全性標(biāo)準(zhǔn)定義了三種不同的策略恭垦。

Profile 作用
Privileged 有目的地開放且完全無限制的策略。通常針對由特權(quán)較高格嗅、受信任的用戶所管理的系統(tǒng)級或基礎(chǔ)設(shè)施級負(fù)載
Baseline 便于常見的容器化應(yīng)用采用番挺,同時禁止已知的特權(quán)提升。針對的是應(yīng)用運維人員和非關(guān)鍵性應(yīng)用的開發(fā)人員
Restricted 旨在實施當(dāng)前保護 Pod 的最佳實踐屯掖。針對運維人員和安全性很重要的應(yīng)用的開發(fā)人員玄柏,以及不太被信任的用戶

restricted 安全策略 模板如下:

apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: restricted-security-policy
  annotations:
    seccomp.security.alpha.kubernetes.io/allowedProfileNames: 'docker/default,runtime/default'
    apparmor.security.beta.kubernetes.io/allowedProfileNames: 'runtime/default'
    seccomp.security.alpha.kubernetes.io/defaultProfileName:  'runtime/default'
    apparmor.security.beta.kubernetes.io/defaultProfileName:  'runtime/default'
spec:
  privileged: false   # Don't allow privileged pods!
  # 不允許升級到 root 權(quán)限
  allowPrivilegeEscalation: false
  # 這與 allowPrivilegeEscalation 是多余的
  # 必須從容器中去除的權(quán)能字。 所給的權(quán)能字會從默認(rèn)權(quán)能字集合中去除贴铜,并且一定不可以添加
  requiredDropCapabilities:
    - ALL
  # 允許的 volume 類型.
  volumes:
    - 'configMap'
    - 'emptyDir'
    - 'projected'
    - 'secret'
    - 'downwardAPI'
    # Assume that persistentVolumes set up by the cluster admin are safe to use.
    - 'persistentVolumeClaim'
  #  控制是否 Pod 可以使用節(jié)點的網(wǎng)絡(luò)名字空間粪摘。 此類授權(quán)將允許 Pod 訪問本地回路(loopback)設(shè)備、在本地主機(localhost) 上監(jiān)聽的服務(wù)绍坝、還可能用來監(jiān)聽同一節(jié)點上其他 Pod 的網(wǎng)絡(luò)活動徘意。
  hostNetwork: false
  # 控制 Pod 容器是否可共享宿主上的 IPC 名字空間
  hostIPC: false
  # 控制 Pod 中容器是否可以共享宿主上的進程 ID 空間
  hostPID: false
  runAsUser:
    # 允許在非 root 權(quán)限在運行 container
    rule: 'MustRunAsNonRoot'
  # 設(shè)置容器的 SELinux 上下文
  seLinux:
    rule: 'RunAsAny'
  # 控制容器可以添加的組 ID
  supplementalGroups:
    # 要求至少指定一個 range 值。 第一個 range 中的最小值用作默認(rèn)值轩褐。 所有 range 值都被用來執(zhí)行驗證檢查椎咧。
    rule: 'MustRunAs'
    ranges:
      # 禁止添加到 root 組
      - min: 1
        max: 65535
  # 控制應(yīng)用到某些卷上的附加用戶組
  fsGroup:
    rule: 'MustRunAs'
    ranges:
      # 禁止添加到 root 組
      - min: 1
        max: 65535
  # 以只讀方式訪問根文件系統(tǒng)
  readOnlyRootFilesystem: false
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市灾挨,隨后出現(xiàn)的幾起案子邑退,更是在濱河造成了極大的恐慌,老刑警劉巖劳澄,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件地技,死亡現(xiàn)場離奇詭異,居然都是意外死亡秒拔,警方通過查閱死者的電腦和手機莫矗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來砂缩,“玉大人作谚,你說我怎么就攤上這事♀职牛” “怎么了妹懒?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長双吆。 經(jīng)常有香客問我眨唬,道長会前,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任匾竿,我火速辦了婚禮瓦宜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘岭妖。我一直安慰自己临庇,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布昵慌。 她就那樣靜靜地躺著假夺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪废离。 梳的紋絲不亂的頭發(fā)上侄泽,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機與錄音蜻韭,去河邊找鬼悼尾。 笑死,一個胖子當(dāng)著我的面吹牛肖方,可吹牛的內(nèi)容都是我干的闺魏。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼俯画,長吁一口氣:“原來是場噩夢啊……” “哼析桥!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起艰垂,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤泡仗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后猜憎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體娩怎,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年胰柑,在試婚紗的時候發(fā)現(xiàn)自己被綠了截亦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡柬讨,死狀恐怖崩瓤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情踩官,我是刑警寧澤却桶,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站蔗牡,受9級特大地震影響肾扰,放射性物質(zhì)發(fā)生泄漏畴嘶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一集晚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧区匣,春花似錦偷拔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至姑丑,卻和暖如春蛤签,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背栅哀。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工震肮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人留拾。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓戳晌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親痴柔。 傳聞我的和親對象是個殘疾皇子沦偎,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容