跳至頁尾內容
USING IRONSECUREDOC

Docker 簽名 PDF(開發者教程)

在快速變化的軟體開發和部署環境中,安全性往往被列為首要考慮因素。Docker 是一個容器化平台,因其在應用程式的一致性、可擴展性和隔離方面的優勢而廣受歡迎。 不過,任何技術如未正確操作都有可能存在漏洞。 Docker安全中最重要的方面之一是保持乾淨且可信的Docker映像。 這就是 Docker Signer Add 的用武之地。 以下文章將探討什麼是Docker Signer,為什麼它很重要,以及如何在開發流程中有效實施它。

什麼是Docker Signer?

Docker Signer 是一個工具,旨在通過使用數位簽章增強Docker映像的安全性。 這個簽章用於為Docker映像提供身份驗證和完整性驗證,從而確保沒有任何型別的篡改或更改發生。

在數位簽章的情況下,它們在生成 Docker 映像的加密簽章後使用,以證明自映像簽署以來未進行任何映像更改。 將Docker Signer插入您的CI/CD流程即意味著您應用了一個強大的安全模型,其中您僅部署受信任的映像。

為什麼Docker Signer很重要?

  • 完整性驗證: Docker映像本質上只是一個文件和元資料的壓縮包。 否則,無法保證您部署的內容就是您想要的。 Docker Signer提供了確保完整性的方法,檢查映像沒有被更改或破壞。

  • 身份驗證: 數位簽章確保了Docker映像的來源。 這意味著您可以確定它來自您信任的人,並且在傳輸過程中沒有發生任何變化。

  • 合規性和審計: 許多行業和企業對安全性和審計有嚴格的合規性要求。 Docker signer 通過非常清晰的映像真實性和完整性追蹤來幫助合規性。

  • 信任管理: 這在任何多團隊或多組織設置中都是不言而喻的。Docker Signer允許管理信任,最低限度不使用未簽名的映像 - 已驗證來源。

Docker Signer 如何運作

Docker Signer 使用一些加密技術來生成和驗證簽章。 步驟如下:

1. Docker 映像簽署:

  • 生成簽章: 在建構 Docker 容器時,使用先前使用的root密鑰和建立的私鑰作為公開和私有密鑰對的一部分,加密生成容器的數位簽章。

  • 將簽章納入映像: 此輸出的簽章將應用於 Docker 容器,可以通過相關的元資料或在完全不同的簽名文件中進行。

2. Docker 映像驗證:

  • 簽章驗證: Docker Signer 檢查映像的簽章,使用一些已部署或提取的私鑰的ID 對應的公開密鑰,該私鑰是在為其Docker映像簽名時使用的。

  • 完整性檢查: 驗證成功 - 證明映像自簽署以來未被修改; 驗證失敗 - 可能的篡改或損壞。

使用IronSecureDoc 實施 Docker Signer

要有效實施 Docker Signer,請遵循以下步驟:

設置 Docker Signer add 的步驟

啟用 Docker 內容信任

Docker 內容信任預設為關閉。 您可以通過將環境變數DOCKER_CONTENT_TRUST設為1來啟用它。

export DOCKER_CONTENT_TRUST=1
export DOCKER_CONTENT_TRUST=1
SHELL

初始化 Notary 儲存庫

在您實際簽署映像前,必須初始化一個 Notary 伺服器儲存庫。 您的映像的委派鍵和簽章將被儲存在其中。

docker trust key generate <name>
docker trust key generate <name>
SHELL

該命令生成一對新的密鑰並將私鑰保存在本地。

Docker Sign Pdf 1 related to 初始化 Notary 儲存庫

載入已建立的密鑰

使用docker trust key load將現有的私鑰載入至 Docker 的信任管理系統中。 該命令用於匯入新儲存庫的密鑰,這些密鑰是使用者生成的或從其他來源收到的,因此可以用於在 Docker 內容信任下簽署Docker映像。

docker trust key load --name <name> <path-to-public/private-key>
docker trust key load --name <name> <path-to-public/private-key>
SHELL

下圖顯示了對應的公開密鑰文件。

Docker Sign Pdf 2 related to 載入已建立的密鑰

簽署 Docker 映像

可以簡單地將映像推至Docker註冊中心來簽署它。 啟用 Docker 內容信任;推送將簽署映像。

docker push <your-registry>/<your-image>:<tag>
docker push <your-registry>/<your-image>:<tag>
SHELL

如果啟用了 Docker 內容信任,Docker 將使用您的私鑰簽署映像,簽名也將隨之附帶。

驗證已簽署映像

要驗證已簽署的映像,請使用以下命令:

docker trust inspect --pretty <your-registry>/<your-image>:<tag>
docker trust inspect --pretty <your-registry>/<your-image>:<tag>
SHELL

此命令輸出與映像相關的簽名鍵和簽名。

docker trust inspect命令驗證簽名映像

管理簽名鍵

簽名鍵可以使用 docker trust signersdocker trust signer 命令來管理。

要新增簽名者:

docker trust signer add --key <path-to-key> <signer-name> <your-registry>/<your-image>
docker trust signer add --key <path-to-key> <signer-name> <your-registry>/<your-image>
SHELL

下圖顯示將儲存庫密鑰新增到控制台中的ID,然後將證書新增到 Docker 儲存庫中,顯示成功新增簽名者的消息。

docker trust signer命令新增儲存庫密鑰

使用自定義的證書授權(CA)

如果使用自定義的CA,請確保 Docker 信任此 CA。 這通常涉及將 CA 證書放置於 Docker 信任的證書中。

將您的 CA 證書粘貼在Docker主機上的 /etc/docker/certs.d/<your-registry>/ca.crt 文件中。

使用Docker和TLS

要使用 TLS 保護 Docker daemon,生成伺服器和客戶端證書並配置 Docker 使用它們。

生成證書

使用 OpenSSL 建立必要的證書:

openssl genrsa -aes256 -out ca-key.pem 4096
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
openssl genrsa -aes256 -out ca-key.pem 4096
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
SHELL

生成伺服器和客戶端的密鑰和證書:

openssl genrsa -out server-key.pem 4096
openssl req -subj "/CN=your-server" -sha256 -new -key server-key.pem -out server.csr
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem
openssl genrsa -out server-key.pem 4096
openssl req -subj "/CN=your-server" -sha256 -new -key server-key.pem -out server.csr
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem
SHELL

最後,通過將這些證書放置在正確的目錄中並調整 Docker daemon 配置來將 Docker 配置為使用它們。

配置Docker守護程式

修改Docker daemon的配置以使用生成的證書:

{
  "tls": true,
  "tlsverify": true,
  "tlscacert": "/etc/docker/ca.pem",
  "tlscert": "/etc/docker/server-cert.pem",
  "tlskey": "/etc/docker/server-key.pem",
  "hosts": ["tcp://0.0.0.0:2376", "unix:///var/run/docker.sock"]
}

重啟 Docker daemon 以應用更改。

T>## 什麼是IronSecureDoc?

IronSecureDoc 是一個企業級文件安全解決方案,用於保護機密文件免受未授權的存取和資料洩露的影響。 它包括靜態和傳輸中的行業級加密,確保您的文件被安全地儲存和傳輸。 它整合了詳細的存取控制以控制文件檢視和編輯的使用者權限級別。 此外,它還提供先進的資料處理工具,在共享之前模糊關鍵資訊。

IronSecureDoc:PDF安全和合規伺服器

IronSecureDoc 包含實時檢測、審計和文件活動日誌,支援GDPR和HIPAA合規性。 它與文件管理系統和協作平台整合,增強安全性而不破壞工作流程,保護關鍵資訊並提供合規準備格式。 特別適合金融、健康和法律等行業。 有關使用詳情,請參閱 教程 頁面。

將簽名者新增到 IronSecureDoc 的優勢

在 IronSecureDoc 框架內簽署Docker映像繼承了所有 Docker 映像簽署的安全功能,並通過 IronSecureDoc 的專業功能予以增強。 優點包括:

端到端的安全和合規

  • 更有信心的映像完整性: 確保從"構建"到"運行"的完整性。 簽名的映像不能在未經授權的情況下被更改。

  • 法規合規: IronSecureDoc 針對多個安全標準進行調整,簡化Docker signer在嚴格的行業法規下的適用性。

單一視窗的安全性

  • 整合的安全管理: 完全集中管理和保護文件和映像,統一執行安全策略。

  • 無縫的工作流程整合: 將映像簽名與現有的安全工作流程整合,減少複雜性和安全漏洞。

更安全的供應鏈

  • CI/CD 安全管道: 確保 Docker 映像在部署前得到驗證,增強供應鏈安全。

  • 安全部署: 降低供應鏈攻擊的風險,確保只有可靠的映像用於生產。

結論

將 Docker 映像簽署與 IronSecureDoc 結合,以實現您的容器化應用程式的高安全性、合規性和運作效率。 這確保 Docker 映像未被篡改,符合法規標準,並在您的軟體供應鏈中保持可驗證的信任鏈。 將 Docker 簽署納入 IronSecureDoc 框架,實現統一的、自動化的數字資產安全,簡化合規性並通過保護您的品牌和部署於各環境來增進利害相關者的信任。

IronSecureDoc:授權資訊

IronSecureDoc 提供 免費試用。 對於企業授權,請存取 授權 頁面。 IronSecureDoc 提供完整的 文件 以協助您入門。 Iron Software 還提供其他產品,如 IronPDFIronXLIronOCR 以及更多有關PDF轉換、Excel任務、OCR處理等的解決方案。在我們的網站了解更多。

常見問題

如何使用Docker簽署PDF?

若要使用Docker簽署PDF,您可以將Docker Signer整合至像IronSecureDoc這樣的文件安全解決方案中。這確保PDF得到安全簽署並透過密碼學數位簽名維持文件的完整性。

什麼是Docker Signer,如何增強安全性?

Docker Signer是一個透過使用數位簽名來增強Docker映像安全性的實用工具。它確保Docker映像的完整性和真實性,驗證它們未被竄改並驗證其來源。

執行Docker Signer涉及哪些步驟?

執行Docker Signer涉及啟用Docker內容信任、初始化Notary儲存庫、管理簽約密鑰及透過推送它們到註冊來簽署Docker映像。這個過程確保映像安全且值得信賴。

如何將Docker Signer與文件安全解決方案整合?

Docker Signer可以與像IronSecureDoc這樣的文件安全解決方案整合,以確保端到端的安全性。這種整合幫助保護Docker映像的完整性和真實性,支持遵循行業標準並增強CI/CD管道安全性。

為什麼Docker映像簽署在CI/CD管道中很重要?

Docker映像簽署在CI/CD管道中非常重要,因為它驗證映像的真實性和未被竄改。這通過確保只有受信Docker映像被部署,來維持管道的安全性並降低供應鏈風險。

Docker Signer如何促進法規遵循?

Docker Signer透過維持可驗證的映像真實性和完整性記錄來促進法規遵循。這符合行業標準和審核要求,確保機構達到必要的遵循指南。

Docker內容信任在映像安全性中扮演什麼角色?

Docker內容信任確保Docker映像在使用前得到簽署和驗證。啟用Docker內容信任,您可以保證僅使用透過數位簽名驗證的受信映像。

如何確保Docker映像的安全通訊?

您可以透過使用自定義證書授權機構(CA)來確保Docker映像的安全通訊。這涉及將CA證書放在Docker的信任證書中,安全地管理映像通訊。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話