管理加密的袐密
祕密是您可以建立的加密環境變數,用來儲存權杖、認證或您 GitHub Actions 工作流程和動作可能依賴的任何其他類型的敏感性資訊。 建立之後,就可以在可存取儲存其所在的組織、存放庫或存放庫環境在工作流程和動作中使用它們。
在此章節中,您將會探索 GitHub Enterprise Cloud 和 GitHub Enterprise Server 中可用的不同工具和策略,以便管理加密袐密的使用。 我們也將說明如何在工作流程和動作中存取加密的秘密。
管理組織層級加密的袐密
在組織層級建立加密的袐密以儲存敏感性資訊,是確保此資訊的安全性,同時將企業中的管理額外負荷降到最低的絕佳方式。
假設在您的 GitHub 組織中撰寫工作流程的某些開發人員需要認證,以在其部分工作流程中將程式碼部署至生產環境。 為了避免共用此敏感性資訊,您可以在組織層級建立包含認證的加密的袐密。 如此一來,就可以在工作流程中使用認證,而不會被公開。
若要在組織層級建立袐密,請移至您的組織 [設定],然後從側邊欄選取 [袐密和變數] > [動作] > [新增組織袐密]。 在出現的畫面中,輸入名稱和值,然後選擇您袐密的存放庫存取原則:
儲存後,存取原則會出現在袐密清單中的袐密底下:
您可以選取 [更新] 以取得袐密所設定權限的詳細資訊。
管理存放庫層級的加密的袐密
如果您需要將加密的袐密範圍設定為特定的存放庫,GitHub Enterprise Cloud 和 GitHub Enterprise Server 也可讓您在存放庫層級建立袐密。
若要在存放庫層級建立袐密,請移至您的存放庫 [設定],然後從左側邊欄選取 [袐密] > [動作] > [新增存放庫袐密]。 在出現的畫面中,輸入袐密的名稱和值:
存取動作和工作流程內加密的袐密
在工作流程中
若要在工作流程中存取加密的袐密,您必須在您的工作流程檔案中使用 secrets
內容。 例如:
steps:
- name: Hello world action
with: # Set the secret as an input
super_secret: ${{ secrets.SuperSecret }}
env: # Or as an environment variable
super_secret: ${{ secrets.SuperSecret }}
在動作中
若要存取動作中加密的袐密,您必須將袐密指定為 action.yml
中繼資料檔案中的 input
參數。 例如:
inputs:
super_secret:
description: 'My secret token'
required: true
如果您需要在動作程式碼中存取加密的袐密,動作程式碼可以使用 $SUPER_SECRET
環境變數來讀取輸入的值。
警告
撰寫您自己的動作時,請務必不要在動作的原始程式碼中包含任何加密的袐密,因為動作是可共用的工作單位。 如果您的動作需要使用加密的袐密或其他使用者提供的輸入,則最好使用來自 Actions 工具組的核心模組。