パイプラインのセキュリティ
シークレット・マネジメント
シークレット管理とは、開発者が機密データを厳重なアクセス制御のある安全な環境に安全に保管するためのシステムです。シークレットとは、機密を保持すべきクレデンシャルのことで、以下のようなものがあります:
- パスワード。
- SSHキー。
- アクセストークン。
- 露出が組織にとって有害となるその他のタイプのクレデンシャル。
シークレットストレージ
シークレット管理プロバイダー
最も機密性が高く、最も厳格なポリシーの下にあるシークレットは、シークレットマネジメントに保管されるべきです。Vaultはこの分野のプロバイダの一つです。Vaultを使う場合、シークレットはGitLabインスタンスの外に保存されます。
必要な時にCI/CDパイプラインでそれらのシークレットを取り出すためにGitLabVaultインテグレーションを使うことができます。
CI/CD 変数
CI/CD変数はCI/CDパイプラインでデータを保存して使用する便利な方法ですが、変数は秘密管理プロバイダよりもセキュリティが低いです。変数の値です:
- GitLabのプロジェクト、グループ、インスタンスの設定に保存されます。設定にアクセスできるユーザーは変数にアクセスできます。
- 上書きされる可能性があり、どの値が使われたかを特定するのが難しい。
- 偶発的なパイプラインの設定ミスにより露呈する可能性があります。
機密性の高いデータは、シークレット管理ソリューションに保存する必要があります。CI/CD変数に保存したい機密性の低いデータがある場合は、必ず: