色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

K8S集群中使用JDOS KMS服務對敏感數據安全加密

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-08-09 16:00 ? 次閱讀

基本概念

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

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

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

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

架構

內部可以利用kms加密實現自己的加密算法,甚至國密算法。

wKgZoma1zJ6AcEuaAAD6dfqMV2U987.png

當用戶新建secret資源時,kube-apiserver 會通過gRPC調用kms-plugin,而kms-plugin與加密服務器通信,進行數據加密。

此時如果通過直接獲取etcd中的原始數據,內容為密文數據。

當用戶獲取secret資源內容時,kube-apiserver 會通過gRPC調用kms-plugin,而kms-plugin與加密服務器通信,進行數據解密,將明文展示給用戶。

操作步驟

需要一套已經運行的Kubernetes集群服務,如果是多臺master節點,需要同時配置。

新建目錄

/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節點。
        cachesize: 100
        timeout: 3s
    - identity: {}

以上內容保存在/etc/kubernetes/kms/jdcloud/apiserver-encryption.conf

新建 jdcloud kms plugin 配置

kms server的上聯信息配置

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

以上內容保存在/etc/kubernetes/kms/jdcloud/jdcloud-kms-plugin.json

新建 jdcloud kms plugin 服務

該服務是啟動socket服務,并按照配置和上聯的kms server進行通信,加密和解密數據,并通過socket服務和K8S APIServer交互。

該pod需要在kube-apiserver啟動之前啟動,否則與apiserver可能產生循環依賴。

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: {}

以上內容保存在/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

修改后保存

驗證

在默認的命名空間里創建一個名為 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

結果為加密數據

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

kubectl describe secret secret1 -n default

該結果為明文,mykey: mydata

產品能力

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

經過產品能力打磨和內部實現,KMS 加密服務和K8S自動化集群以及一鍵配置創建都在云艦內實現了很好的產品化能力,可以隨集群創建,一鍵啟用KMS加密服務。

wKgaoma1zKCAHNK-AAA42TwSBXY885.png

參考:

1. 使用 KMS 驅動進行數據加密

審核編輯 黃宇

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

    關注

    2

    文章

    684

    瀏覽量

    29973
  • KMS
    KMS
    +關注

    關注

    0

    文章

    3

    瀏覽量

    4693
收藏 人收藏

    評論

    相關推薦

    加密算法的選擇對于加密安全有多重要?

    加密算法容易被破解,導致敏感數據泄露。 抗攻擊能力: 不同的加密算法對各種攻擊(如暴力破解、已知明文攻擊、選擇明文攻擊等)的抵抗力不同。選擇一個能夠抵御當前和未來潛在攻擊的加密算法至
    的頭像 發表于 12-17 15:59 ?157次閱讀

    k8s和docker區別對比,哪個更強?

    Docker和Kubernetes(K8s)是容器化技術的兩大流行工具。Docker關注構建和打包容器,適用于本地開發和單主機管理;而K8s則提供容器編排和管理平臺,適用于多主機或云環境,具備自動化
    的頭像 發表于 12-11 13:55 ?162次閱讀

    恒訊科技分析:云服務數據加密具體是如何操作的?

    服務數據加密通常涉及以下幾個步驟和方法: 1、數據分類:首先需要對數據進行分類,確定哪些數據
    的頭像 發表于 11-25 11:55 ?179次閱讀

    k8s服務架構就是云原生嗎?兩者是什么關系

    k8s服務架構就是云原生嗎?K8s服務架構并不等同于云原生,但兩者之間存在密切的聯系。Kubernetes在云原生架構中扮演著核心組件的角色,它簡化了容器化應用程序的管理,提供了彈
    的頭像 發表于 11-25 09:39 ?189次閱讀

    混合云部署k8s集群方法有哪些?

    混合云部署k8s集群方法是首先需在本地與公有云分別建立K8s集群,并確保網絡連接。接著,配置kubeconfig文件連接兩集群,并安裝云
    的頭像 發表于 11-07 09:37 ?172次閱讀

    k8s可以部署私有云嗎?私有云部署全攻略

    Kubernetes(簡稱K8S)可以部署私有云。Kubernetes是一個開源的容器編排引擎,能夠自動化容器的部署、擴展和管理,使得應用可以在各種環境中高效運行。通過使用Kubernetes,企業可以在自己的數據中心或私有云環境中搭建和管理容器化的應用,實現高度的靈活性
    的頭像 發表于 10-25 09:32 ?197次閱讀

    k8s云原生開發要求

    IO性能。網絡要求穩定,建議使用私有網絡VPC,并配置與Kubernetes兼容的網絡插件。操作系統需與K8s版本匹配,虛擬化平臺支持Docker等。此外,還需關注安全配置,如禁用Swap、調整Sysctl等,以及etcd數據
    的頭像 發表于 10-24 10:03 ?255次閱讀
    <b class='flag-5'>k8s</b>云原生開發要求

    k8s容器啟動失敗的常見原因及解決辦法

    k8s容器啟動失敗的問題通常出現在開發者使用Kubernetes進行容器編排時,可能的原因有多種,例如:配置錯誤、鏡像問題、資源限制、依賴問題、網絡問題、節點狀態異常、其他因素等,以下是對這些常見原因的詳細分析:
    的頭像 發表于 10-11 10:12 ?311次閱讀

    服務器部署k8s需要什么配置?

    服務器部署K8s需要至少2核CPU、4GB內存、50GBSSD存儲的主節點用于管理集群,工作節點建議至少2核CPU、2GB內存、20GBSSD。還需安裝Docker,選擇兼容的Kubernetes版本,配置網絡插件,以及確保系
    的頭像 發表于 10-09 15:31 ?230次閱讀

    納尼?自建K8s集群日志收集還能通過JMQ保存到JES

    作者:京東科技 劉恩浩 一、背景 基于K8s集群的私有化交付方案中,日志收集采用了ilogtail+logstash+kafka+es方案,其中ilogtail負責日志收集,logstash負責對數據
    的頭像 發表于 09-30 14:45 ?236次閱讀

    常用的k8s容器網絡模式有哪些?

    常用的k8s容器網絡模式包括Bridge模式、Host模式、Overlay模式、Flannel模式、CNI(ContainerNetworkInterface)模式。K8s的容器網絡模式多種多樣
    的頭像 發表于 09-19 11:29 ?281次閱讀

    K8S學習教程三:在PetaExpress KubeSphere 容器部署 Wiki 系統 wiki.js 并啟用中文全文檢索

    K8S學習教程(三):在PetaExpress KubeSphere 容器部署 Wiki 系統 wiki.js 并啟用中文全文檢索? 。
    的頭像 發表于 07-08 17:03 ?675次閱讀
    <b class='flag-5'>K8S</b>學習教程三:在PetaExpress KubeSphere 容器部署 Wiki 系統 wiki.js 并啟用中文全文檢索

    K8S學習教程(二):在 PetaExpress KubeSphere容器平臺部署高可用 Redis 集群

    并且需要手動重啟節點,相較之下,使用 PetaExpress 提供的 Kubernetes(k8s) 服務 進行 Redis 集群的部署,則展現出了顯著的優勢: 1、安裝便捷:使用鏡像或者 yaml 配置文件即可一件安裝,極大地
    的頭像 發表于 07-03 15:30 ?825次閱讀
    <b class='flag-5'>K8S</b>學習教程(二):在 PetaExpress KubeSphere容器平臺部署高可用 Redis <b class='flag-5'>集群</b>

    安全服務加密存儲代碼怎么查

    安全服務加密存儲代碼的查詢與實現是一個復雜的過程,涉及到多個方面,包括數據加密、密鑰管理、訪問控制等。 1. 引言 隨著云計算的快速發展,
    的頭像 發表于 07-02 09:28 ?409次閱讀

     K8S學習教程一:使用PetaExpress云服務器安裝Minikube 集群

    使得開發人員能夠在本地機器上輕松創建一個單節點的 Kubernetes 集群,從而方便開發、測試和學習 Kubernetes。 我們看下如何使用PetaExpress云服務器安裝Minikube 集群
    的頭像 發表于 07-01 15:41 ?400次閱讀
     <b class='flag-5'>K8S</b>學習教程一:使用PetaExpress云<b class='flag-5'>服務</b>器安裝Minikube <b class='flag-5'>集群</b>
    主站蜘蛛池模板: 国产成人a在一区线观看高清 | 欧美日韩中文国产一区发布 | 亚洲精品国产一区二区贰佰信息网 | 国内精品不卡一区二区三区 | 国内精品久久影视免费 | 欧美一区二区视频在线观看 | 欧美人成人亚洲专区中文字幕 | 十分钟免费观看大全视频 | 九九99热久久精品在线6 | 一区二区三区国产 | 亚洲国产五月综合网 | 久久99视热频国只有精品 | 嗯别插太快好深再深点 | 亚洲精品中文字幕一二三四区 | 亚洲aaaa级特黄毛片 | 色戒西瓜视频 | 99在线精品免费视频 | 好吊妞国产欧美日韩视频 | 欧美国产日韩久久久 | 69国产精品成人无码视频 | 玖玖爱精品视频 | 高中生被C到爽哭视频免费 高挑人妻无奈张开腿 | 成人在线免费视频观看 | 国产综合18久久久久久软件 | 大肥婆丰满大肥奶bbw肥 | 丝袜美女自摸 | 日本工口生肉全彩大全 | 麻豆免费观看高清完整视频在线 | 99热只有这里有精品 | 人妻插B视频一区二区三区 人妻 中文无码 中出 | 粗暴玩烂货调教 | 神马电影院午夜神福利在线观看 | 男女牲交大战免费播放 | 美女也烦恼主题曲 | 国产黄a三级三级三级 | 欧美高清18 | 日韩视频中文字幕精品偷拍 | 亚洲成AV人片一区二区不卡 | 野花日本大全免费观看3中文版 | 国产传媒在线播放 | 少妇高潮惨叫久久久久久电影 |