署名について
オプションで、構成ファイルに署名して、信頼性を検証し、改ざんを防ぐことができます。これは、リポジトリが公開されていて、構成への不正な変更を防ぐ必要がある場合に役立ちます。
ユーザーが構成を変更し、署名の検証が失敗した場合、パイプラインは、リポジトリへの書き込みまたは管理アクセス権を持つ許可されたユーザーによる手動承認を待ってブロックされます。
署名の実施
署名の検証を実施するには、リポジトリの保護モードを有効にする必要があります。リポジトリの設定画面に移動し、 [Protected]チェックボックスをオンにします。
署名の保存
signature
リソースとしてYaml構成ファイルに保存されます。署名リソースは、構成のhmac署名を提供します。
1 ---
2 kind: pipeline
3 type: docker
4 name: default
5
6 steps:
7 - name: build
8 image: golang
9 commands:
10 - go build
11 - go test
12
13 ---
14 kind: signature
15 hmac: F10E2821BBBEA527EA02200352313BC059445190
16
17 ...
署名の計算
既存の署名リソースを除く各yamlリソースのコンテンツは、256ビットのシークレットキーを使用して署名されます。シークレットキーはリポジトリごとに一意であり、Droneサーバを離れることはありません。
署名の作成
署名は、Droneコマンドラインユーティリティを使用して作成されます。このコマンドは、認証されたリクエストをDroneサーバに送信し、yaml構成ファイルを送信して、hmac署名を計算して返します。
コマンドの例:
$ drone sign octocat/hello-world --save