helm賬號密碼加密

1、安裝工具

sudo apt update
sudo apt install gnupg -y
wget https://github.com/getsops/sops/releases/download/v3.10.2/sops-v3.10.2.linux.amd64
mv sops-v3.10.2.linux.amd64 /usr/local/bin/sops 
chmod +x /usr/local/bin/sops

2、生成加密文件

gpg --full-generate-key

詳情如下

Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal

選擇默認 (1),按回車。

接下來是設置密鑰長度,推薦使用 4096:
What keysize do you want? (2048)
4096

再設置有效期,比如:
Key is valid for? (0)
0 # 0 表示永久

再輸入你的身份信息:
Name: 你的名字(比如 DevOps Admin)
Email: 用來識別密鑰的郵箱地址(比如 devops@example.com)
Comment: 可以留空

然后確認并設置一個密鑰密碼。這個地方會要求輸入兩次,都是輸完按回車鍵
在這里插入圖片描述

如下示例

# gpg --full-generate-key
gpg (GnuPG) 2.2.19; Copyright (C) 2019 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.Please select what kind of key you want:(1) RSA and RSA (default)(2) DSA and Elgamal(3) DSA (sign only)(4) RSA (sign only)(14) Existing key from card
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.0 = key does not expire<n>  = key expires in n days<n>w = key expires in n weeks<n>m = key expires in n months<n>y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct? (y/N) yGnuPG needs to construct a user ID to identify your key.Real name: admin
Email address: admin@example.com
Comment: 
You selected this USER-ID:"admin <admin@example.com>"Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? 
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: key 80FD02B101FD87A9 marked as ultimately trusted
gpg: directory '/root/.gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as '/root/.gnupg/openpgp-revocs.d/2EBCED7EB8AAB81DFAD604CB80FD02B101FD87A9.rev'
public and secret key created and signed.pub   rsa4096 2025-04-16 [SC]2EBCED7EB8AAB81DFAD604CB80FD02B101FD87A9
uid                      admin <admin@example.com>
sub   rsa4096 2025-04-16 [E]

3、查看你生成的密鑰指紋(Fingerprint)

# gpg --list-keys
gpg: checking the trustdb
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
/root/.gnupg/pubring.kbx
------------------------
pub   rsa4096 2025-04-16 [SC]2EBCED7EB8AAB81DFAD604CB80FD02B101FD87A9
uid           [ultimate] admin <admin@example.com>
sub   rsa4096 2025-04-16 [E]

上面那串 2EBC… 就是你用于后續 .sops.yaml 配置的 PGP key ID

4、配置 .sops.yaml

# cat .sops.yaml

creation_rules:- path_regex: secrets-.*\.yamlpgp: "2EBCED7EB8AAB81DFAD604CB80FD02B101FD87A9"

確保 pgp 后面的值與你上一步看到的 key fingerprint 一致

5、測試加密文件
1)創建明文加密文件

# cat secrets-dev.yaml 
config_secret:db:use: adminpasswd: "Aa123456"

2)加密操作

# sops -e secrets-dev.yaml > secrets-dev.enc.yaml

3)查看加密后文件內容

# cat secrets-dev.enc.yaml 
config_secret:db:use: ENC[AES256_GCM,data:JKhLeJY=,iv:pTOXYAYGlEk0Ag7qUveaxJB9kUhdzrFM1X12qazlgb8=,tag:CLG0PygT5nX+QakMYX9ZbQ==,type:str]passwd: ENC[AES256_GCM,data:HGsPNph7LWk=,iv:Z20Z4MLw/AqpMsSFOCiwTuQ73pPj8OEp12NR5YmsAsg=,tag:tiRYys7lpcpe3N5levxvsQ==,type:str]
sops:lastmodified: "2025-04-16T07:57:12Z"mac: ENC[AES256_GCM,data:szEvsHuxR65dASr2SxVxgbZ+CJ9mPvROPy42KngFLnpASW7a6e8w6R1+SBOuPulJfEjHWX5Th1LEWhPVbwd5St5lgQD16jVBKEEbXDvlYQ5++0xZ2TG62HjaCAD2V9aKwt3MHC+wJr2xBDyVrkHqLvgN/wtleedTGNm5xQ35MVg=,iv:+APVv4kCbdf/tE1e3uFbUoBI1LParkoHU8dXHHAP42s=,tag:GznQUbGd4mj3yfyF3+GX8w==,type:str]pgp:- created_at: "2025-04-16T07:57:12Z"enc: |------BEGIN PGP MESSAGE-----hQIMA4AJcCK8KwnfAQ/8CzCfLAJHtCzS9RcyjNzUKZx86PR69B4iSMwpP7BfNKboggkTwsfeI/bfKtck653Xj4gnJFVbmxOzIhwtD7MIqCdrHvS95dMLB2f9LJu4YiNnfCUvIUEWsIJG6TYwqniW/rxC/9wRb0M9Nv3lKcA2ozwDDNElLVD3D5WsTMxf5O9X6k8w67ZBmmQ/tIEfTwZj3cop/WaO6uPaZf8fs93dixkjHqRLjpkjhZgKeCiu1b/9UgQNbzJPqV/+m8JgsjSq+HQUkdFHa9I/C8A7pTDCPPFqVY2uxMCUnc2yq9iechPXoHQxJgPxJH2t4/v5Z8js28GlGNAeOduUeNn1LyeA8o50BlznnmRcLDlHcaSdlPSaT6QbzKQbbWVADI1DAd8PclqdEWFIPiywdPs3WSUFGjGykUCpoGGNLngVR/71fRAJ1TLMd/Co5PQoNRfG8H+4COLWqNIg47XJWZrUcNZtNtY/VdBHBoZ/RrXNxhuBWNtLrkcFv0j0iJ5EpUPfLHnfdtA3rYjq9cr20wahA4m45ATMxSMn+A9Uqlf/C2xcBgYPYvT6xE+tpTqffV2ykEolMJrErVm7U+CbQgOK4s+FR6S70aCyWe3rHkummEc44S2UML90A+rC6IF4bsZwyEnckWjVG8uDeOQ2BV3VbTiebTPSoWnxoH9cXA2D+oSA1wLSXgGOMFa4TiFLK4F7F8gSxNAvKVSIuz+1sqdTbUuwn+vSNYIhd4AHZuiSXLkY3QnSdfEX8ZvkaLRL+ZFNOuEfZ/xVLNruStpvzKwZ/ApZ8t4KLgBAtZtZ/t+Z0Nih8WI==mz3B-----END PGP MESSAGE-----fp: 2EBCED7EB8AAB81DFAD604CB80FD02B101FD87A9unencrypted_suffix: _unencryptedversion: 3.10.2

4)創建一個不加密的明文文件

# cat values.yaml
config:db:host: localhostport: "5432"name: observablesslmode: disable

5)創建需要創建secrent的yaml文件

# cat secrets.yaml 
apiVersion: v1
kind: Secret
metadata:name: {{ include "project-api-server.fullname" . }}labels:{{- include "project-api-server.labels" . | nindent 4 }}
type: Opaque
stringData:service.conf: |title = "project-api-server"[project-api]listen = ":{{ .Values.app.port }}"dbobservable = "postgres://{{ .Values.config_secrets.db.user}}:{{ .Values.config_secrets.db.passwd }}@{{ .Values.config.db.host }}:{{ .Values.config.db.port }}/{{ .Values.config.db.name }}?sslmode={{ .Values.config.db.sslmode }}"schema = "rs"

6)我們可以直接解密

helm secrets decrypt secrets-test.yaml

或者

#導入解密密鑰ln -s /root/.gnupg $HOME && ln -s /root/.local $HOME
# helm更新的時候直接解密helm secrets $args upgrade $PROJECT $PROJECT --install \-n $ns \-f $PROJECT/secrets-$ENV.yaml

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/901710.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/901710.shtml
英文地址,請注明出處:http://en.pswp.cn/news/901710.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大數據面試問答-HBase/ClickHouse

1. HBase 1.1 概念 HBase是構建在Hadoop HDFS之上的分布式NoSQL數據庫&#xff0c;采用列式存儲模型&#xff0c;支持海量數據的實時讀寫和隨機訪問。適用于高吞吐、低延遲的場景&#xff0c;如實時日志處理、在線交易等。 RowKey&#xff08;行鍵&#xff09; 定義&#xf…

動態渲染組件

React框架&#xff0c;JSX語法 今天遇到一個好玩的 常規的搜索列表&#xff0c;列表最后一列為操作列&#xff0c;刪改查。 眼看著Table 操作列 的配置文件越來越復雜&#xff0c;決定把操作列單獨寫一個組件&#xff0c;代碼瞬間靚仔了些 {title: Operation,dataIndex: oper…

Web APIs階段

一、Web APIs和JS基礎關聯性 1.1JS的組成 1.2JS基礎階段以及Web APIs階段 JS基礎階段&#xff1a;學習的是ECMAScript標準規定的基礎語法 Web APIs階段&#xff1a; Web APIs是W3C組織的標準Web APIs我們主要學習DOM和BOMWeb APIs是JS獨有的部分主要學習頁面交互功能需要使用…

Doip功能尋址走UDP協議

目前使用 connect()函數的UDP客戶端 ,這里接收數據 解析的地方 查看一下。 如果使用 bind()、sendto()、recvfrom() 組合 那么返回值 和發送要在做調整&#xff0c;&#xff0c;根據業務需要后續在調整 其余的 和原來的 邏輯都是一樣的&#xff0c;只是協議變了而已。 if serv…

Linux指令的詳細介紹

前言&#xff1a;&#x1f33c;&#x1f33c; Linux是一款強大且廣泛使用的操作系統&#xff0c;命令行接口&#xff08;CLI&#xff09;是與其交互的核心方式。通過Linux指令&#xff0c;用戶可以高效地執行文件管理、系統監控、進程控制等任務。雖然剛接觸時可能感到有些復雜…

Elasticsearch使用記錄

一、配環境 1.docker版本部署es 8.x系列可以關掉ssl&#xff08;本地測試時&#xff09;&#xff0c;去docker的/usr/share/elasticsearch/config/elasticsearch.yml里面的“xpack.security.enabled:”設置成true就可以 2.window docker部署推薦教程&#xff1a;基于Docker安…

MuJoCo(Multi-Joint Dynamics with Contact)機器人仿真器存在的問題

MuJoCo物理引擎計算接觸力的核心思路&#xff0c;是通過數學優化的方式同時滿足多個物理約束&#xff0c;而不是簡單地為每個碰撞點單獨計算作用力。它的工作流程可以理解為幾個階段的緊密配合。首先&#xff0c;仿真器會快速檢測所有可能發生接觸的物體表面&#xff0c;篩選出…

基礎(項目管理工具:JIRA、禪道)

目錄 JIRA JIRA介紹 JIRA中的優先級&#xff08;缺陷嚴重程度&#xff09; JIRA中的解決結果&#xff08;缺陷的解決結果&#xff09; JIRA中的問題狀態&#xff08;缺陷的狀態&#xff09; 使用JIRA創建缺陷 JIRA的安裝&#xff08;Windows&#xff09; JDK22的下載和安…

16.使用豆包將docker-compose的yaml轉為k8s的yaml,安裝各種無狀態服務

文章目錄 docker方式httpbinit-toolslinux-commandmyipreference docker-compose安裝k8s方式 docker方式 httpbin A simple HTTP Request & Response Service https://httpbin.org/ https://github.com/postmanlabs/httpbin https://github.com/mccutchen/go-httpbin do…

Day(22)--網絡編程習題

習題 以下是這些 TCP 通信練習題的 Java 代碼實現及解析&#xff1a; TCP 通信練習 1 - 多發多收 客戶端&#xff08;Client1.java&#xff09; java import java.io.IOException; import java.io.OutputStream; import java.net.Socket; ? public class Client1 {public…

20、.NET SDK概述

.NET SDK&#xff08;Software Development Kit&#xff09; 是微軟提供的一套開發工具包&#xff0c;用于構建、運行和管理基于 .NET 平臺的應用程序。它包含了一組豐富的工具、庫和運行時環境&#xff0c;支持開發者在多種操作系統&#xff08;如 Windows、Linux 和 macOS&am…

DELL電腦開機進入自檢界面

疑難解答 - 如何解決開機直接進入BIOS畫面 添加鏈接描述 一、DELL電腦開機自檢提示please run setup program 未設置一天中的時間-請運行安裝程序(Time-of-day not set - please run SETUP program) 配置信息無效-請運行安裝程序(Invalid configuration information - ple…

2025 最新版 Node.js 下載安裝及環境配置詳細教程【保姆級】

2025 最新版 Node.js 下載安裝及環境配置詳細教程【保姆級】 一、下載安裝二、環境配置三、緩存配置、全局配置以及更換國內淘寶鏡像源 一、下載安裝 下載地址&#xff1a;Node.js 官方下載地址 雙擊安裝&#xff0c;點擊 Change 更改安裝位置。我只有一個C盤&#xff0c;這里…

2025年4月通信科技領域周報(4.07-4.13):6G技術加速落地 衛星通信網絡迎來組網高潮

2025年4月通信科技領域周報&#xff08;4.07-4.13&#xff09;&#xff1a;6G技術加速落地 衛星通信網絡迎來組網高潮 目錄 2025年4月通信科技領域周報&#xff08;4.07-4.13&#xff09;&#xff1a;6G技術加速落地 衛星通信網絡迎來組網高潮一、本周熱點回顧1. 華為發布全球首…

vxe-table 動態列篩選,以及篩選項動態變化的解決方案記錄

需求場景&#xff1a; table 的列是由接口動態返回的&#xff1b;列的篩選項就是數據的值&#xff0c;比如【姓名】這個字段總共有三個值&#xff0c;那么姓名這一列的篩選項就是這三個值本身&#xff1b;當有一列篩選后&#xff0c;其他列的篩選項也要動態變化。 vxe-table …

UE5游戲分辨率設置和窗口模式

第一種方法: 在項目配置Config文件夾下新建 DefaultGameUserSettings.ini 輸入代碼 [/Script/Engine.GameUserSettings] bUseVSyncFalse ResolutionSizeX1960 ResolutionSizeY1080 LastUserConfirmedResolutionSizeX800 LastUserConfirmedResolutionSizeY600 WindowPosX-1 …

鏈表知識回顧

類型&#xff1a;單鏈表&#xff0c;雙鏈表、循環鏈表 存儲&#xff1a;在內存中不是連續存儲 刪除操作&#xff1a;即讓c的指針指向e即可&#xff0c;無需釋放d&#xff0c;因為java中又內存回收機制 添加節點&#xff1a; 鏈表的構造函數 public class ListNode {// 結點…

詳解與FTP服務器相關操作

目錄 什么是FTP服務器 搭建FTP服務器相關 ?編輯 Unity中與FTP相關的類 上傳文件到FTP服務器 使用FTP服務器上傳文件的關鍵點 開始上傳 從FTP服務器下載文件到客戶端 使用FTP下載文件的關鍵點 開始下載 關于FTP服務器的其他操作 將文件的上傳&#xff0c;下載&…

Day92 | 靈神 | 二叉樹 路徑總和

Day92 | 靈神 | 二叉樹 路徑總和 112.路徑總和 112. 路徑總和 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 1.遞歸函數意義 如果在根節點為t的樹中可以找到長度為target的路徑就返回true&#xff0c;找不到就返回false 2.參數和返回值 bool tra(TreeNode …

探索鴻蒙應用開發:ArkTS應用執行入口揭秘

# 探索鴻蒙應用開發&#xff1a;ArkTS應用執行入口揭秘 在鴻蒙應用開發的領域中&#xff0c;ArkTS作為聲明式開發語言&#xff0c;為開發者們帶來了便捷與高效。對于剛接觸鴻蒙開發的小伙伴來說&#xff0c;搞清楚ArkTS應用程序的執行入口是邁向成功開發的關鍵一步。今天&…