一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

如何保護(hù)Kubernetes的機(jī)密信息

馬哥Linux運(yùn)維 ? 來(lái)源:奇妙的Linux世界 ? 作者:奇妙的Linux世界 ? 2022-04-19 17:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

現(xiàn)如今開(kāi)發(fā)的大多數(shù)應(yīng)用程序,或多或少都會(huì)用到一些敏感信息,用于執(zhí)行某些業(yè)務(wù)邏輯。比如使用用戶(hù)名密碼去連接數(shù)據(jù)庫(kù),或者使用秘鑰連接第三方服務(wù)。在代碼中直接使用這些密碼或者秘鑰是最直接的方式,但同時(shí)也帶來(lái)了很大的安全問(wèn)題,如何保證密碼、秘鑰不被泄露。

如果你的應(yīng)用程序已經(jīng)被容器化,且使用Kubernetes(k8s),那情況會(huì)好很多。Kubernetes提供了一個(gè)原生資源,稱(chēng)為“Secret”,可用于管理和存儲(chǔ)敏感信息。敏感信息被編碼為未加密的Base64格式,并被存儲(chǔ)在Secret對(duì)象中。Secret可以作為環(huán)境變量被注入到Pod內(nèi)部的容器中,也可以作為數(shù)據(jù)卷掛載到容器內(nèi)部。

為了保證敏感信息的安全性,Secret對(duì)象應(yīng)該被加密,并且應(yīng)該使用Kubernetes RBAC機(jī)制對(duì)訪(fǎng)問(wèn)進(jìn)行控制。如果你正在使用AWS公有云來(lái)托管Kubernetes集群,則可以利用AWS密鑰管理服務(wù)(KMS)對(duì)靜態(tài)數(shù)據(jù)進(jìn)行加密。

Kubernetes的清單文件通常被提交到代碼倉(cāng)庫(kù)中以進(jìn)行版本控制。但是你可能不希望將敏感信息以純文本或Base64編碼字符串的形式提交到Git代碼倉(cāng)庫(kù)中。我們都應(yīng)該知道為什么,這不安全!但是,你在Kubernetes集群之外將敏感數(shù)據(jù)保存在何處,以確保它們是安全的?

有很多方法可以解決這個(gè)問(wèn)題。下面列出了其中幾個(gè):

1選項(xiàng)1:加密純文本敏感數(shù)據(jù),然后再提交到Git代碼倉(cāng)庫(kù)中

使用對(duì)稱(chēng)或非對(duì)稱(chēng)算法加密純文本敏感數(shù)據(jù)。

使用Kubernetes Custom Resource Definition(CRD)創(chuàng)建自定義的Secret對(duì)象,以使用加密的文本數(shù)據(jù)。

創(chuàng)建一個(gè)自定義Kubernetes控制器,該控制器讀取自定義Secret對(duì)象中的加密信息,并在運(yùn)行時(shí)解密,并創(chuàng)建一個(gè)原生的Secret對(duì)象。

使用這種方法,你可以將加密的數(shù)據(jù)提交到Git代碼倉(cāng)庫(kù)中。而且它沒(méi)有風(fēng)險(xiǎn),因?yàn)閿?shù)據(jù)是加密的,只能用你的私鑰解密。但是你把私鑰放在哪里?

如何存儲(chǔ)加密密鑰和管理整個(gè)加解密過(guò)程,可以使用Bitnami的Sealed Secrets[1]。

2選擇2:使用第三方服務(wù)來(lái)存儲(chǔ)敏感數(shù)據(jù)

你可以將敏感數(shù)據(jù)存儲(chǔ)到第三方服務(wù)中,如AWS Secrets Manager或HashiCorp Vault。

創(chuàng)建自定義Kubernetes控制器,基于配置從這些服務(wù)中獲取機(jī)密信息,并在運(yùn)行時(shí)創(chuàng)建Kubernetes Secret對(duì)象。

External Secrets[2]項(xiàng)目可以幫助你實(shí)現(xiàn)選項(xiàng)2。

你還可以增強(qiáng)應(yīng)用程序邏輯,以便在應(yīng)用程序啟動(dòng)時(shí)從第三方服務(wù)讀取機(jī)密信息,但這里的整體思想是將機(jī)密信息管理與應(yīng)用程序業(yè)務(wù)邏輯分離開(kāi)來(lái),并利用Kubernetes的功能來(lái)進(jìn)行相同的管理。

3快速概覽Sealed Secrets

在Sealed Secret開(kāi)源項(xiàng)目中,你可以將你的Secret加密為一個(gè)SealedSecret,這樣就可以安全地存儲(chǔ),甚至可以存儲(chǔ)到公共存儲(chǔ)庫(kù)中。SealedSecret只能由運(yùn)行在目標(biāo)集群中的控制器解密,其他人,甚至包括原始作者,都無(wú)法從SealedSecret獲得原始的Secret。

Sealed Secrets由兩部分組成:

服務(wù)器端的控制器

客戶(hù)端工具:kubeseal

kubeseal使用非對(duì)稱(chēng)加密來(lái)加密數(shù)據(jù),然后只有服務(wù)端的控制器才能解密數(shù)據(jù)。

這些加密數(shù)據(jù)被編碼在SealedSecret資源中,你可以將其視為創(chuàng)建Secret的配方。

下面是如何使用Sealed Secrets來(lái)管理Secret的具體步驟。

1、安裝kubeseal,這是一個(gè)客戶(hù)端工具,可以幫助你創(chuàng)建SealedSecret

>wgethttps://github.com/bitnami-labs/sealed-secrets/releases/download/v0.15.0/kubeseal-linux-amd64-Okubeseal

>sudoinstall-m755kubeseal/usr/local/bin/kubeseal

2、安裝服務(wù)器端控制器,為SealedSecret創(chuàng)建Custom Resource Definition(CRD)

>kubectlapply-fhttps://github.com/bitnami-labs/sealed-secrets/releases/download/v0.15.0/controller.yaml

rolebinding.rbac.authorization.k8s.io/sealed-secrets-service-proxiercreated
role.rbac.authorization.k8s.io/sealed-secrets-key-admincreated
clusterrole.rbac.authorization.k8s.io/secrets-unsealercreated
deployment.apps/sealed-secrets-controllercreated
customresourcedefinition.apiextensions.k8s.io/sealedsecrets.bitnami.comcreated
service/sealed-secrets-controllercreated
clusterrolebinding.rbac.authorization.k8s.io/sealed-secrets-controllercreated
serviceaccount/sealed-secrets-controllercreated
role.rbac.authorization.k8s.io/sealed-secrets-service-proxiercreated
rolebinding.rbac.authorization.k8s.io/sealed-secrets-controllercreated

3、驗(yàn)證sealed-secret controller Pod是否運(yùn)行

>kubectlgetpods-nkube-system-lname=sealed-secrets-controller

NAMEREADYSTATUSRESTARTSAGE
sealed-secrets-controller-7c766b885b-d5r2r1/1Running07m39s

如果你查看Pod的日志,你將看到控制器為自己創(chuàng)建的一對(duì)秘鑰,這對(duì)秘鑰將被用于加解密過(guò)程。

>kubectllogssealed-secrets-controller-7c766b885b-d5r2r-nkube-system

controllerversion:v0.15.0
2021/05/012034Startingsealed-secretscontrollerversion:v0.15.0
2021/05/012034Searchingforexistingprivatekeys
2021/05/012035Newkeywrittentokube-system/sealed-secrets-keymt6dg
2021/05/012035Certificateis
-----BEGINCERTIFICATE-----
MIIErjCCApagAwIBAgIRAJqYfaZsali26I8pvBXoFGYwDQYJKoZIhvcNAQELBQAw
ADAeFw0yMTA1MDEyMDEzMzVaFw0zMTA0MjkyMDEzMzVaMAAwggIiMA0GCSqGSIb3
DQEBAQUAA4ICDwAwggIKAoICAQDp/yO5PY8ACHBDuguhtfpOwlbScK9hZorJloyx
ixVCc57j1zMSX0pSVcrk1Yuyf6sYvBQtDi16kM70z6y/ODiz+9g87K/jY7B0UAoi
mpzM/T0tWJiG9ixyNMZhHoNREauokSlbERq3Jl8ZNTfmxHWhLH7DhkJ7MdpQfMpK
a3XHcSZyz1mXFqv+OSCCwllWCRHmHgp/vqudAv8+NYm0gnAxKt2fjlv/ObX8J1RI
CtLnlsCpp/9SyVcSTeYYaqjUsI7fTUZ7tkTE/bdQHwf3xe4DhUty7xLqMF1OPSPw
EetL8fGO0VqoSQFKQ0Bf78+8vhAA2cwkuqB6vQQm9pT3yC5niSCUo+jwFcfyknjr
yx8DINbq6K9B40EXh8X7w4I6zwYpyT0GoNU54wW0ki8pHRm7EnFeBOkUvNspzmKn
t/EZEDVq74Kkl/BRNRvKHYlwudSoJuvvX6JM8DVvRp0lMPnXnG3RLSmCP3gEFQBZ
DhbnkwO+6ADX9Q4vyqelWoHWdVGVULDlMDhSzvEhFFgPcZXzWTShH81vfl8M6lpT
U0ysZkA6i3A29XEJpPj35yWPBDWmKF5fLM3ChMt/NSJEeoJN1RboPDAgVUTxEW59
q+Tq09/zlYD7Ch8PNc3IWNXjFNXmCAAOw9Z1VBbD8p6LrC5JvBtPoWYqufWVXQD9
KDe+6wIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAAEwDwYDVR0TAQH/BAUwAwEB/zAN
BgkqhkiG9w0BAQsFAAOCAgEAvu//VzDREYZPPIW1maTxo9C/nHEEuOP0rQU3zVQr
bBYf8N0b5wpCllESCgi0JDJJXrE8KrjfdtawjoBrBlHOdWHF+fIot2KbrC/i37em
/ulMAgiiJzrKM/ExJuCuH60fsSIx4wrg46tQpU8jHFWq7nGnsaE+UN3QPjuvQ+qo
KKDSBLDxLx+q9vBfaXElblh4okUI8Pr4UEEJrYiPzPM6nA9EPpy53N3si4jyDJJb
2IsCUa2bW6iBhpyZOQQUPn22ziWRQ/sYYNmtP/gX0rwtk+Rr8TTdzPYGZcYfMQ6O
TFq4Zo2/TnpCL/CUr2DiSuF2qdWGGvbQOENYq2FNuDI4zeljElcZHXA8nhpbNSJs
7VNqqz5ZTFCKyL0Gn6SawGT7EdwBT2AD3F33Qd/7bXG/On7KdVw6FKHbZOR2RcoS
YFQv7Xr8g/4atQjxDa7R5+zkxd5unsvpFhYM1UfNJc4cjJ7SmfCCHoPGiwZ0OgqB
6SvUVU64QmMMJ/jYAJkYMOakSHaRITHAvvBjpAMKxSjjb7qZD5FnpXLhRY9lNiY6
MnnQRxJskCw+R6geIAHTMzAofMfc1haIEr+3oMFZfyh1LFFsz3B4hMxXYKrWYDje
+96bhAY9X7L0UfREjmw8HCeZneEuBJjX9z/PyIeMdhViLh9uO/MAL1MBxdBVA55+
LW8=
-----ENDCERTIFICATE-----

2021/05/012035HTTPserverservingon:8080

運(yùn)行以下命令查看公鑰/私鑰信息。

>kubectlgetsecret-nkube-system-lsealedsecrets.bitnami.com/sealed-secrets-key-oyaml

4、創(chuàng)建一個(gè)名為secrets.yaml的Secret清單文件

apiVersion:v1
data:
DB_PWD:cGFzc3dvcmQ=//base64encoded
DB_USER:cm9vdA==//base64encoded
kind:Secret
metadata:
name:db-secrets

現(xiàn)在讓我們使用kubeseal命令,將secrets.yaml轉(zhuǎn)變?yōu)镾ealedSecret資源清單文件。

>kubeseal--format=yamlsealed-secret.yaml

>catsealed-secret.yaml

apiVersion:bitnami.com/v1alpha1
kind:SealedSecret
metadata:
creationTimestamp:null
name:db-secrets
namespace:default
spec:
encryptedData:
DB_PWD:AgDaCRi27RV4/sVI2ok7JlqBSKT5+c7gGJog+...
DB_USER:AgAZG67CrrOBnyKIKha7xhJulr+CQGPaE/PpsjvY8jJR0IDO2...
template:
metadata:
creationTimestamp:null
name:db-secrets
namespace:default

在上面的步驟中,kubeseal從Kubernetes集群獲取公鑰并使用該公鑰加密數(shù)據(jù)。

5、讓我們使用SealedSecret資源清單文件,在Kubernetes中創(chuàng)建資源。

>kubectlapply-fsealed-secret.yaml

如果你再次檢查控制器的日志,你將看到控制器攔截了請(qǐng)求,并解密來(lái)自SealedSecret的加密數(shù)據(jù),數(shù)據(jù)被解密后,將創(chuàng)建Kubernetes的Secret對(duì)象。

>kubectllogssealed-secrets-controller-7c766b885b-d5r2r-nkube-system

2021/05/012006Updatingdefault/db-secrets
2021/05/012006Event(v1.ObjectReference{Kind:"SealedSecret",Namespace:"default",Name:"db-secrets",UID:"fd89a7e7-c81a-4110-9de6-6b65195169d3",APIVersion:"bitnami.com/v1alpha1",ResourceVersion:"19365",FieldPath:""}):type:'Normal'reason:'Unsealed'SealedSecretunsealedsuccessfully

一旦創(chuàng)建了Kubernetes Secret對(duì)象,就可以將它作為環(huán)境變量注入到容器中,或者作為數(shù)據(jù)卷掛載。

上面步驟4中創(chuàng)建的SealedSecret資源清單文件可以被提交到Git代碼倉(cāng)庫(kù)中。secrets.yaml文件可以丟棄,因?yàn)樗辉傩枰?。被存?chǔ)在sealed-secret.yaml文件中的數(shù)據(jù)是安全的,它是被加密的,且只能由運(yùn)行在Kubernetes集群中的Controller解密。

希望這篇文章能讓你知道如何保護(hù)Kubernetes的機(jī)密信息。

原文標(biāo)題:如何優(yōu)雅的保護(hù) Kubernetes 中的 Secrets

文章出處:【微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17105

    瀏覽量

    184267
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70731
  • kubernetes
    +關(guān)注

    關(guān)注

    0

    文章

    245

    瀏覽量

    9067

原文標(biāo)題:如何優(yōu)雅的保護(hù) Kubernetes 中的 Secrets

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    高通指控蘋(píng)果偷竊芯片機(jī)密,用于改進(jìn)英特爾的芯片性能

    9月26日訊,據(jù)CNBC報(bào)道,提交至美國(guó)加州高等法院的一份文件顯示,高通對(duì)蘋(píng)果提出了多項(xiàng)指控,其中包括蘋(píng)果偷竊其機(jī)密信息和商業(yè)機(jī)密,以改進(jìn)高通的競(jìng)爭(zhēng)對(duì)手英特爾的芯片性能。
    的頭像 發(fā)表于 09-26 10:37 ?3640次閱讀

    SK海力士機(jī)密信息被盜

    據(jù)韓媒報(bào)道,近期SK海力士遭受了黑客組織Maze的勒索攻擊,目前Maze聲稱(chēng)入侵了SK海力士11TB的數(shù)據(jù),并公布了約600MB的數(shù)據(jù)信息,約占其總數(shù)據(jù)量的5%。
    的頭像 發(fā)表于 08-24 14:21 ?3473次閱讀

    如何讓員工高效地分享企業(yè)知識(shí)的同時(shí)又能保護(hù)機(jī)密文件的

    NTA-文檔保密的“硬”辦法如何防止員工離職時(shí)擅自拷貝帶走機(jī)密資料? 如何防止設(shè)計(jì)圖紙、程序源代碼等機(jī)密信息等泄露給競(jìng)爭(zhēng)對(duì)手? 如何讓員工高效地分享企業(yè)知識(shí)的同時(shí)又能保護(hù)機(jī)密文件的安全
    發(fā)表于 09-16 10:04

    防止u盤(pán)機(jī)密文件泄露,請(qǐng)給U盤(pán)文件加密

    給網(wǎng)絡(luò)攻擊或者丟失,沒(méi)有你設(shè)置的密碼也是無(wú)法打開(kāi)U盤(pán)中某些重要的文件。 為了保證你U盤(pán)中某些機(jī)密資料、個(gè)人隱私的安全,防止此類(lèi)信息外泄給你帶來(lái)?yè)p失,請(qǐng)給你U盤(pán)中的文件加密保護(hù)。如果你使用的U盤(pán)是加密U
    發(fā)表于 04-20 17:15

    CyUSBSerial庫(kù)許可條款什么是機(jī)密和專(zhuān)有信息?

    所有,2012-2013,保留所有權(quán)利未發(fā)表的、許可的軟件。第七章機(jī)密信息和專(zhuān)有信息這是柏樹(shù)的特性。第七章這個(gè)文件的使用是受支配的由文件中包含的許可協(xié)議第七章安裝和/許可證/許可證/許可證第七章
    發(fā)表于 10-22 14:48

    基于STC的加密信息存儲(chǔ)與游戲操作系統(tǒng)設(shè)計(jì)

    HNU小學(xué)期計(jì)算機(jī)系統(tǒng)設(shè)計(jì)與創(chuàng)新基礎(chǔ)訓(xùn)練——加密信息存儲(chǔ)與游戲操作系統(tǒng)一、 選題名稱(chēng)二、 選題背景三、 實(shí)現(xiàn)功能1. 主要功能2. 細(xì)節(jié)設(shè)計(jì)四、 設(shè)計(jì)思路五、 基本原理1. 數(shù)碼管與發(fā)光二極管1.1
    發(fā)表于 02-18 06:13

    彩色遙感影像的機(jī)密詮釋信息隱藏技術(shù)

    實(shí)現(xiàn)彩色遙感影像的機(jī)密詮釋信息隱藏技術(shù),研究信息嵌入域的選擇方法,提出空間信息隱藏W(L) 矩陣方法。實(shí)驗(yàn)結(jié)果表明,該技術(shù)具有透明性較高、信息
    發(fā)表于 03-20 13:40 ?24次下載

    什么是增強(qiáng)保密信

    什么是增強(qiáng)保密信件 為提供電子郵件的保密性,需要一定的機(jī)制來(lái)向發(fā)送者和接收者確保信息機(jī)密的,信息來(lái)源可靠并沒(méi)有被更改和
    發(fā)表于 04-03 16:19 ?375次閱讀

    高通指控蘋(píng)果竊取商業(yè)機(jī)密幫助英特爾 最后因證據(jù)不足駁回訴訟請(qǐng)求

    26日,高通提交給加州最高法院的文件顯示,指控蘋(píng)果竊取其大量機(jī)密信息和商業(yè)機(jī)密,從而幫助英特爾公司提升芯片性能。
    的頭像 發(fā)表于 09-28 11:55 ?3507次閱讀

    虛擬局域網(wǎng)的優(yōu)點(diǎn)

    虛擬局域網(wǎng)優(yōu)點(diǎn)之一:具有安全穩(wěn)定性。虛擬的局域網(wǎng)可以使局域網(wǎng)更加的安全,它能夠讓比較敏感的帶有數(shù)據(jù)的用戶(hù)和網(wǎng)絡(luò)的其他部分進(jìn)行一定的隔離,這樣就能夠保護(hù)網(wǎng)絡(luò)的機(jī)密信息了,可以有效的防止機(jī)密信息的泄漏。
    的頭像 發(fā)表于 02-28 14:26 ?1.3w次閱讀

    超過(guò)40款高通芯片存在“旁路漏洞”,該漏洞可被用來(lái)竊取芯片內(nèi)所儲(chǔ)存的機(jī)密信息

    4月28日消息,近日英國(guó)安全機(jī)構(gòu)NCC Group公布了一則重磅消息:超過(guò)40款高通芯片存在“旁路漏洞”,該漏洞可被用來(lái)竊取芯片內(nèi)所儲(chǔ)存的機(jī)密信息,并波及采用相關(guān)芯片的Android手機(jī)等相關(guān)裝置。
    的頭像 發(fā)表于 04-30 14:22 ?3893次閱讀

    晶心科技與Silex Insight達(dá)成戰(zhàn)略合作,推出RISC-V信任根完整解決方案

    Silex Insight推出的高級(jí)eSecure IP模塊為安全應(yīng)用的完整解決方案,能防止機(jī)密信息外泄,并提供安全啟動(dòng)、密鑰認(rèn)證與應(yīng)用程序的保護(hù)。
    發(fā)表于 11-07 14:26 ?1718次閱讀

    LG電子和SK海力士遭遇勒索軟件攻擊,竊取50GB機(jī)密信息

    這年頭不管多大的公司,一不小心都有可能被黑客盯上,韓國(guó)兩大電子巨頭SK海力士、LG電子就被黑了,多達(dá)50GB機(jī)密文件被加密勒索。
    的頭像 發(fā)表于 09-11 16:58 ?2259次閱讀

    電腦的機(jī)箱風(fēng)扇不聯(lián)網(wǎng)也能泄露機(jī)密信息

    想法太天真了。他們用實(shí)驗(yàn)證明,即使不聯(lián)網(wǎng),機(jī)箱里的風(fēng)扇也能泄露你的機(jī)密信息。 ? 這項(xiàng)研究的作者 Mordechai Guri 來(lái)自以色列本·古里安大學(xué)。在最近發(fā)表的一篇論文中,他提出了一種名為 AiR-ViBeR 的數(shù)據(jù)竊取技術(shù)。令人頗為震驚的是,這
    的頭像 發(fā)表于 01-12 09:43 ?3158次閱讀

    特斯拉起訴前供應(yīng)商:干電極電池技術(shù)商業(yè)機(jī)密泄露風(fēng)波

    其竊取特斯拉的商業(yè)機(jī)密,并試圖為與電動(dòng)汽車(chē)電池相關(guān)的機(jī)密信息申請(qǐng)專(zhuān)利,同時(shí)將這些敏感信息分享給特斯拉的競(jìng)爭(zhēng)對(duì)手。
    的頭像 發(fā)表于 06-20 10:36 ?2082次閱讀