滅入るんるん

何か書きます

Azure PipelineでDownload Secure File taskが認証できずに失敗する対処法

docs.microsoft.com

git管理外にしておきたいファイルをAzure PipelineではSecure Fileとして配置することができます。Secure Fileとして配置することで、ビルド時にSecure Fileを引っ張ってきてビルドソースに突っ込むことができます。

Secure Fileの追加はAzure Pipeline => Library => Secure filesからできます。

ここで問題のエラーはこちらです。たぶんGithubリポジトリの場合に起きると思われ

Step input secureFile references secure file {FILENAME} which could not be found. The secure file does not exist or has not been authorized for use. For authorization details, refer to https://aka.ms/yamlauthz.

stackoverflow.com

このエラーはstack overflowによると、yamlのスキャンのタイミング以降にSecure fileを扱うtaskが追加された場合に起こるようです。

対処法としては、Pipelineの設定でなんらかのvariableを修正して保存するとスキャンが走るようです。

その他気を付けたほうがいいこと

yaml形式でPipelineを作成している際にはSecure Fileの取り扱いには注意しなければいけないです。PullRequestのビルドをしているPipelineでSecure Fileを扱っていると、PullRequestにSecure Fileをダンプするyamlファイルの書き換えをコミットに含めてやれば、PullRequestのビルドログにSecure Fileの中身を垂れ流すこともできます。

そのためCIとしてPullRequestをビルドするPipelineではSecure Fileを扱わないほうがいいでしょう。また、Secure fileの設定にあるAuthorize for use in all pipelinesはオンにしないほうがいいです。

Secure fileを扱うPipelineはオーナーが明示的に実行できるトリガーのみに絞りましょう。