91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

K8S集群中使用JDOS KMS服務(wù)對敏感數(shù)據(jù)安全加密

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-08-09 16:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

基本概念

KMS,Key Management Service,即密鑰管理服務(wù),在K8S集群中,以驅(qū)動和插件的形式啟用對Secret,Configmap進行加密。以保護敏感數(shù)據(jù),

驅(qū)動和插件需要使用者按照需求進行定制和實現(xiàn)自己的KMS插件,插件可以是gRPC服務(wù)器或者啟用一個云服務(wù)商提供的KMS插件。

本文中演示使用的KMS 服務(wù)是京東云艦中的KMS加密服務(wù)。

目前KMS分為V1,V2,本文基于V1進行演示。

架構(gòu)

內(nèi)部可以利用kms加密實現(xiàn)自己的加密算法,甚至國密算法。

wKgZoma1zJ6AcEuaAAD6dfqMV2U987.png

當用戶新建secret資源時,kube-apiserver 會通過gRPC調(diào)用kms-plugin,而kms-plugin與加密服務(wù)器通信,進行數(shù)據(jù)加密。

此時如果通過直接獲取etcd中的原始數(shù)據(jù),內(nèi)容為密文數(shù)據(jù)。

當用戶獲取secret資源內(nèi)容時,kube-apiserver 會通過gRPC調(diào)用kms-plugin,而kms-plugin與加密服務(wù)器通信,進行數(shù)據(jù)解密,將明文展示給用戶。

操作步驟

需要一套已經(jīng)運行的Kubernetes集群服務(wù),如果是多臺master節(jié)點,需要同時配置。

新建目錄

/etc/kubernetes/kms/jdcloud

新建 EncryptionConfiguration

該配置是kms基本的加密配置,包括加密資源對象,socket地址等等。

apiVersion: apiserver.config.k8s.io/v1
kind: EncryptionConfiguration
resources:
  - resources:
    - secrets # 這里表示,只加密secret
    providers:
    - kms:
        name: myKmsPlugin
        endpoint: unix:///var/run/k8s-kms-plugin/kms-plugin.sock # 如果不以pod(jdcloud-kms-plugin.yaml)啟動,需要sock文件放到master節(jié)點。
        cachesize: 100
        timeout: 3s
    - identity: {}

以上內(nèi)容保存在/etc/kubernetes/kms/jdcloud/apiserver-encryption.conf

新建 jdcloud kms plugin 配置

kms server的上聯(lián)信息配置

{
  "AccessKey": "xxx", # 部署前,該參數(shù)需要預先知道,
  "SecretKey": "yyy", # 部署前,該參數(shù)需要預先知道。
  "KmsEndpoint": "kms.internal.cn-north-1.jdcloud-api.com", # 部署前,該參數(shù)需要預先知道。
  "KmsKeyId": "abcd", # 部署前,該參數(shù)需要預先知道。
  "KmsSchema": "http",
  "GRPCSocketPath": "/var/run/k8s-kms-plugin/kms-plugin.sock"
}

以上內(nèi)容保存在/etc/kubernetes/kms/jdcloud/jdcloud-kms-plugin.json

新建 jdcloud kms plugin 服務(wù)

該服務(wù)是啟動socket服務(wù),并按照配置和上聯(lián)的kms server進行通信,加密和解密數(shù)據(jù),并通過socket服務(wù)和K8S APIServer交互。

該pod需要在kube-apiserver啟動之前啟動,否則與apiserver可能產(chǎn)生循環(huán)依賴。

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    component: jdcloud-kms-plugin
    tier: control-plane
  name: jdcloud-kms-plugin-node-01
  namespace: kube-system
spec:
  containers:
  - command:
    - /k8s-kms-plugin
    - -f=/etc/kubernetes/kms/jdcloud/jdcloud-kms-plugin.json # 指定json
    image: hub-pub.jdcloud.com/k8s/jdcloudsec/k8s-kms-plugin:v1.0.1 
    imagePullPolicy: IfNotPresent
    name: jdcloud-kms-plugin
    resources:
      requests:
        cpu: 250m
    volumeMounts:
    - mountPath: /etc/kubernetes/kms/jdcloud/jdcloud-kms-plugin.json # 注意路徑
      name: jdcloud-kms-plugin-configfile
      readOnly: true
    - mountPath: /var/run/k8s-kms-plugin/
      name: k8s-kms-plugin-unixsock-directory
      readOnly: false
  hostNetwork: true
  priorityClassName: system-cluster-critical
  volumes:
  - hostPath:
      path: /etc/kubernetes/kms/jdcloud/jdcloud-kms-plugin.json # 注意路徑
      type: File
    name: jdcloud-kms-plugin-configfile
  - hostPath:
      path: /var/run/k8s-kms-plugin/
      type: DirectoryOrCreate
    name: k8s-kms-plugin-unixsock-directory
status: {}

以上內(nèi)容保存在/etc/kubernetes/manifests/jdcloud-kms-plugin.yaml

修改 kube apiserver配置

...
    - --encryption-provider-config=/etc/kubernetes/kms/jdcloud/apiserver-encryption.conf
    image: hub-pub.jdcloud.com/k8s/kube-apiserver:v1.19.9-109
    imagePullPolicy: IfNotPresent
    livenessProbe:
...
    - mountPath: /etc/kubernetes/kms/jdcloud/apiserver-encryption.conf
      name: apiserver-encryption-conf
      readOnly: true
    - mountPath: /var/run/k8s-kms-plugin/
      name: k8s-kms-plugin-unixsock-directory
      readOnly: false
...
  - hostPath:
      path: /etc/kubernetes/kms/jdcloud/apiserver-encryption.conf
      type: File
    name: apiserver-encryption-conf
  - hostPath:
      path: /var/run/k8s-kms-plugin/
      type: DirectoryOrCreate
    name: k8s-kms-plugin-unixsock-directory

修改后保存

驗證

在默認的命名空間里創(chuàng)建一個名為 secret1 的 Secret:

kubectl create secret generic secret1 -n default --from-literal=mykey=mydata

用 etcdctl 命令行,從 etcd 讀取出 Secret:

etcdctl.sh get /kubernetes.io/secrets/default/secret1 [...] | hexdump -C

結(jié)果為加密數(shù)據(jù)

驗證 Secret 在被 API server 獲取時已被正確解密:

kubectl describe secret secret1 -n default

該結(jié)果為明文,mykey: mydata

產(chǎn)品能力

在K8S集群中,京東內(nèi)部一直比較重視對敏感數(shù)據(jù)加密,特別是云艦面對越來越多的金融行業(yè)客戶,加密服務(wù)基本是云艦中的標準配置。

經(jīng)過產(chǎn)品能力打磨和內(nèi)部實現(xiàn),KMS 加密服務(wù)和K8S自動化集群以及一鍵配置創(chuàng)建都在云艦內(nèi)實現(xiàn)了很好的產(chǎn)品化能力,可以隨集群創(chuàng)建,一鍵啟用KMS加密服務(wù)。

wKgaoma1zKCAHNK-AAA42TwSBXY885.png

參考:

1. 使用 KMS 驅(qū)動進行數(shù)據(jù)加密

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)安全
    +關(guān)注

    關(guān)注

    2

    文章

    768

    瀏覽量

    30852
  • KMS
    KMS
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    4802
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    一文帶你徹底搞懂K8s網(wǎng)絡(luò)

    說實話,K8s 網(wǎng)絡(luò)是我見過最讓新手頭疼的知識點,沒有之一。記得我剛接觸 K8s 那會兒,看著流量在 Pod、Service、Node 之間穿梭,完全是一臉懵逼。后來踩了無數(shù)坑,熬了無數(shù)夜,總算把這套網(wǎng)絡(luò)模型摸透了。今天這篇文章,我會用最接地氣的方式,帶你徹底搞懂
    的頭像 發(fā)表于 02-06 10:15 ?429次閱讀

    K8s生產(chǎn)環(huán)境10大踩坑記錄復盤

    這篇文章記錄了我這些年在 K8s 生產(chǎn)環(huán)境踩過的坑。每一個案例都是血淚教訓,有些甚至導致了生產(chǎn)事故。希望通過分享這些經(jīng)歷,能幫助大家避免重蹈覆轍。
    的頭像 發(fā)表于 02-05 15:51 ?293次閱讀

    硬件加密引擎在保障數(shù)據(jù)安全方面有哪些優(yōu)勢呢?

    )通過硬件防火墻隔離,運算過程中密鑰和敏感數(shù)據(jù)僅在加密引擎內(nèi)部流轉(zhuǎn),不暴露至外部總線或內(nèi)存。同時,硬件邏輯一旦固化,無法通過軟件篡改,避免惡意程序注入篡改加密流程。 物理防篡改能力:部分高端型號集成物理
    發(fā)表于 11-17 06:47

    K8s集群性能調(diào)優(yōu)實戰(zhàn)技巧

    大多數(shù)團隊在遇到K8s性能問題時,第一反應(yīng)是"加機器"。但根據(jù)我對超過50個生產(chǎn)集群的分析,80%的性能問題源于配置不當,而非資源不足。
    的頭像 發(fā)表于 09-08 09:36 ?786次閱讀

    K8s存儲類設(shè)計與Ceph集成實戰(zhàn)

    在云原生時代,存儲是制約應(yīng)用性能的關(guān)鍵瓶頸。本文將帶你深入理解K8s存儲類的設(shè)計原理,并手把手實現(xiàn)與Ceph的完美集成,讓你的集群存儲性能提升300%!
    的頭像 發(fā)表于 08-22 11:50 ?865次閱讀

    Kubernetes安全加固的核心技術(shù)

    在生產(chǎn)環(huán)境中,Kubernetes集群安全性直接關(guān)系到企業(yè)數(shù)據(jù)安全和業(yè)務(wù)穩(wěn)定性。本文將從實戰(zhàn)角度,帶你掌握K8s
    的頭像 發(fā)表于 08-18 11:18 ?804次閱讀

    高效管理Kubernetes集群的實用技巧

    作為一名經(jīng)驗豐富的運維工程師,我深知在日常的Kubernetes集群管理中,熟練掌握kubectl命令是提升工作效率的關(guān)鍵。今天,我將分享15個經(jīng)過實戰(zhàn)檢驗的kubectl實用技巧,幫助你像藝術(shù)家一樣優(yōu)雅地管理K8s集群。
    的頭像 發(fā)表于 08-13 15:57 ?925次閱讀

    解析K8S實用命令

    前言: 作為運維工程師,掌握 Kubernetes 命令行工具是日常工作的核心技能。本文將深入解析 K8S 最實用的命令,從基礎(chǔ)操作到高級技巧,助你成為容器化集群管理專家。
    的頭像 發(fā)表于 07-24 14:07 ?868次閱讀

    k8s權(quán)限管理指南說明

    我們在目前的k8s集群環(huán)境里面,只能在master節(jié)點上執(zhí)行kubectl的一些命令,在其他節(jié)點上執(zhí)行就會報錯。
    的頭像 發(fā)表于 06-26 14:06 ?732次閱讀

    什么是 K8S,如何使用 K8S

    連續(xù)性。 適用場景: 大規(guī)模容器集群管理。 微服務(wù)架構(gòu)的部署與運維。 需要彈性伸縮的在線服務(wù)。 多租戶環(huán)境(如開發(fā)測試、生產(chǎn)環(huán)境隔離)。 總的來說,K8S 通過標準化容器管理,極
    發(fā)表于 06-25 06:45

    Ubuntu K8s集群安全加固方案

    在Ubuntu系統(tǒng)上部署Kubernetes集群時,若服務(wù)器擁有外網(wǎng)IP,需采取多層次安全防護措施以確保集群安全。本方案通過系統(tǒng)防火墻配置、
    的頭像 發(fā)表于 05-12 16:17 ?858次閱讀

    簡述K3SK8S的區(qū)別

    K3s 是CNCF 認證的 Kubernetes 發(fā)行版和Sandbox項目,專為低資源環(huán)境而設(shè)計。由 Rancher Labs 維護著 K3s。
    的頭像 發(fā)表于 04-18 10:27 ?1729次閱讀

    k8s集群安全機制說明

    Kubernetes 作為一個分布式集群的管理工具,保證集群安全性是其一個重要的任務(wù)。API Server 是集群內(nèi)部各個組件通信的中介, 也是外部控制的入口。所以 Kubernet
    的頭像 發(fā)表于 04-03 14:09 ?801次閱讀

    如何在MBDT中使S32k344進行加密?

    我想加密和解密通過 CAN 總線發(fā)送的數(shù)據(jù),為此我想使用 S32k344 中的 HSE 模塊在 MBDT 1.5 中進行對稱加密-解密,但工具箱中沒有可用的塊。那我該怎么做呢。請分享與
    發(fā)表于 03-25 07:21

    如何通過Docker和K8S集群實現(xiàn)高效調(diào)用GPU

    在有GPU資源的主機安裝,改主機作為K8S集群的Node。
    的頭像 發(fā)表于 03-18 16:50 ?1215次閱讀
    如何通過Docker和<b class='flag-5'>K8S</b><b class='flag-5'>集群</b>實現(xiàn)高效調(diào)用GPU