當(dāng)涉及處理機密信息(如密碼、令牌、密鑰文件等)等,以下問題值得考慮:
- 安全性十分重要,但高安全性往往伴隨著高度的不便 。
- 在團隊中,共享某些密鑰有時無法避免(因此現(xiàn)在我們需要考慮在多人之間分發(fā)和更新密鑰的安全方法) 。
- 具體的密鑰通常取決于環(huán)境 。
git-secret 和 gpg 。本文將對以下幾點展開講解:
- 識別包含密鑰的文件
- 確保將密鑰添加到
.gitignore
- 通過
git-secret進行加密
- 將加密文件提交到存儲庫
make secret-decrypt這將會披露代碼庫中的密鑰,在必要時對其進行修改,然后運行:make secret-encrypt需要再次加密密鑰,以便提交(并推送到遠程存儲庫),要查看實際效果請運行以下命令:# checkout the branchgit checkout part-6-git-secret-encrypt-repository-docker# build and start the docker setupmake make-initmake docker-buildmake docker-up# "create" the secret key - the file "secret.gpg.example" would usually NOT live in the repo!cp secret.gpg.example secret.gpg# initialize gpgmake gpg-init# ensure that the decrypted secret file does not existls passwords.txt# decrypt the secret filemake secret-decrypt# show the content of the secret filecat passwords.txtTooling我們在 PHP base 鏡像中設(shè)置 gpg 和 git-secret 以便這些工具在所有其他容器中都可用 。以下所有命令都在 application 容器中執(zhí)行 。請注意,
git-secret 在主機系統(tǒng)和 docker 容器之間共享的文件夾中使用時需要注意 。將在下面稱為 “git-secret 目錄和gpg-agent socket”的部分中更詳細地解釋這一點 。gpggpg 是The GNU Privacy Guard的縮寫,是 OpenPGP 標(biāo)準(zhǔn)的開源實踐 。簡而言之,GNU允許我們創(chuàng)建一個個人密鑰文件對(類似于 SSH 密鑰),其中包含一個私有密鑰和一個可以與您想要解密其消息的其他方共享的公共密鑰 。
gpg 安裝關(guān)于安裝,我們可以簡單地運行
apk add gnupg 并相應(yīng)更新 .docker/images/php/base/Dockerfile:# File: .docker/images/php/base/DockerfileRUN apk add --update --no-cache \bash \gnupg \make \#...創(chuàng)建 gpg 密鑰對我們需要通過以下方式創(chuàng)建 gpg 密鑰對(Key Pair):name="Pascal Landau"email="pascal.landau@example.com"gpg --batch --gen-key <<EOFKey-Type: 1Key-Length: 2048Subkey-Type: 1Subkey-Length: 2048Name-Real: $nameName-Email: $emailExpire-Date: 0%no-protectionEOF%no-protection 創(chuàng)建一個沒有密碼的key 。輸出:
$ name="Pascal Landau"$ email="pascal.landau@example.com"$ gpg --batch --gen-key <<EOF> Key-Type: 1> Key-Length: 2048> Subkey-Type: 1> Subkey-Length: 2048> Name-Real: $name> Name-Email: $email> Expire-Date: 0> %no-protection> EOFgpg: key E1E734E00B611C26 marked as ultimately trustedgpg: revocation certificate stored as '/root/.gnupg/opengpg-revocs.d/74082D81525723F5BF5B2099E1E734E00B611C26.rev'也可以在沒有 --batch 標(biāo)志的情況下以交互方式引導(dǎo)整個過程運行gpg --gen-key,然后導(dǎo)出、列出和導(dǎo)入私有 gpg Key,可以通過以下方式導(dǎo)出:email="pascal.landau@example.com"path="secret.gpg"gpg --output "$path" --armor --export-secret-key "$email"
經(jīng)驗總結(jié)擴展閱讀
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Docker容器獲取宿主機信息
- 飯圈xjb是什么意思?
- 飯圈xtm是什么意思?
- 上官婉兒有哪些連招(上官婉兒100招口訣)
- NIKKE:勝利女神教堂圖紙在哪里獲取
- 小米11s配置參數(shù)_小米11s配置消息
- 河南史上最強高考狀元 河南高考狀元
- 目前世界上肥胖人口是多少 中國肥胖人口數(shù)據(jù)
- 上官婉兒怎么連招(婉兒100%飛天的連招張大仙)
- 愛上錦鯉是什么意思?
