Azure DevOps のセキュリティで保護されたファイルを実装する
Azure DevOps のセキュリティで保護されたファイルは、コード署名証明書、SSH キー、Azure DevOps 組織の境界内のサードパーティプロビジョニング プロファイルなど、機密性の高いファイル資産用の暗号化されたストレージ インフラストラクチャを実装します。 ファイルは、Azure DevOps で保護されたリソース指定を使用して 2048 ビット RSA キーを使用して保存時の暗号化を受け取り、承認されたユーザーとパイプラインへのアクセスを排他的に制限します。 暗号化キーは、Azure DevOps プラットフォーム操作によって内部的に管理される Azure Key Vault インフラストラクチャ内に保持されます。
Azure DevOps CI/CD ワークフローとの安全なファイル統合により、パイプライン実行コンテキスト内で直接機密ファイルを使用できるようになります。 Azure DevOps 内のアクセス制御メカニズムでは、セキュリティで保護されたファイルのアップロード、ダウンロード、パイプライン使用率の機能を制御するきめ細かいアクセス許可管理がサポートされています。
実装
セキュリティで保護されたファイルの実装には、Azure DevOps への機密性の高いファイルのアップロードと、パイプラインまたはリリース定義の参照が含まれます。
セキュリティで保護されたファイルのアップロード ワークフロー:
- Web ポータル インターフェイス内の Azure DevOps プロジェクトに移動します。
- 目的のセキュリティで保護されたファイル使用率コンテキストに合わせて [パイプライン] タブまたは [リリース] タブを選択します。
- 左側のナビゲーション メニューからライブラリにアクセスします。
- "[セキュアファイル] を選択し、[+ セキュアファイル] を使ってアップロードワークフローを開始します。"
- ターゲット ファイルを選択し、わかりやすい識別子を割り当てます。
パイプラインアクセス許可付与ワークフロー:
- 新しくプロビジョニングされたセキュリティで保護されたファイルを選択します。
- セキュリティで保護されたファイル プロパティ ツール バーからパイプラインのアクセス許可を移動します。
- [セキュリティで保護されたファイルの構成] ウィンドウの [パイプラインの追加 (+)] ボタンを選択します。
- セキュリティで保護されたファイル アクセスを許可する、現在のプロジェクト パイプライン インベントリから承認されたパイプラインを選択します。
YAML パイプラインのセキュリティで保護されたファイル参照の実装:
YAML パイプライン内でのファイルの安全な使用は、DownloadSecureFile@1タスクを利用します。 次の例は、証明書のセキュリティで保護されたファイルのダウンロードと Linux システムのインストールを示しています。
- task: DownloadSecureFile@1
name: caCertificate
displayName: 'Download CA certificate'
inputs:
secureFile: 'myCACertificate.pem'
- script: |
echo Installing $(caCertificate.secureFilePath)
sudo chown root:root $(caCertificate.secureFilePath)
sudo chmod a+r $(caCertificate.secureFilePath)
sudo ln -s -t /etc/ssl/certs/ $(caCertificate.secureFilePath)