国产精品免费嫩草研究院|无遮羞动漫在线观看AV|国产麻豆精品传媒AV国产在线|村在线观看|寂寞情人1正版|韩国床震韩国床震古|精品系列专区久久

上 git-secret:在 Git 存儲庫中加密和存儲密鑰

當(dāng)涉及處理機密信息(如密碼、令牌、密鑰文件等)等,以下問題值得考慮:

  • 安全性十分重要,但高安全性往往伴隨著高度的不便 。
  • 在團隊中,共享某些密鑰有時無法避免(因此現(xiàn)在我們需要考慮在多人之間分發(fā)和更新密鑰的安全方法) 。
  • 具體的密鑰通常取決于環(huán)境 。
目前市面上已經(jīng)存在許多較為成熟的密鑰管理產(chǎn)品,比如 HashiCorp Vault,AWS Secrets Manager 以及 GCP Secret Manager 。由于這些產(chǎn)品需要集成和維護等服務(wù),因此在項目中引入會增加一定成本和開銷 。閱讀本文,將帶你了解如何在 Docker 容器中設(shè)置 git-secretgpg
本文將對以下幾點展開講解:
  • 識別包含密鑰的文件
  • 確保將密鑰添加到.gitignore
  • 通過 git-secret 進行加密
  • 將加密文件提交到存儲庫
在最后我們將能夠調(diào)用:
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è)置 gpggit-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é)擴展閱讀