Azure Pipelines の設定
安全な CI/CD ワークフローのために Azure CI を設定する方法を学習します。
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションに Azure Pipelines を使用している場合、シークレットと環境変数が不足しているためにパイプラインの実行が失敗する可能性があります。シークレットがないと、Quay、JFrog Artifactory、Red Hat Advanced Cluster Security (ACS) との統合が機能せず、脆弱性スキャン、イメージ署名、コンプライアンスのための SBOM 生成などのセキュリティータスクが機能しなくなります。
これを防ぐには、シークレットと環境変数を Azure に安全に保存する必要があります。このガイドでは、パイプラインをスムーズかつセキュアに実行するためのプロセスを順を追って説明します。
第1章 外部ツールとの統合のために Azure Pipelines にシークレットと変数を追加する リンクのコピーリンクがクリップボードにコピーされました!
この手順では、Azure Pipelines にシークレットと環境変数を追加する方法と、必要な変数のリストを示します。Azure Pipelines が RHTAP および関連する Red Hat 製品で正しく動作するようにするには、リストされているすべての変数を追加する必要があります。
前提条件
Azure Pipelines を設定する前に、次のものがあることを確認してください。
- Bitbucket または GitHub のリポジトリーへの管理者アクセス。
- Azure DevOps プロジェクトとパイプライン設定への管理者アクセス。
- Quay.io、JFrog Artifactory、または Sonatype Nexus からコンテナーイメージをプルするための コンテナーレジストリー認証情報。
特定の Azure Pipelines タスクの 認証の詳細:
ACS セキュリティータスクの場合:
- ROX Central サーバーエンドポイント
- ROX API トークン
SBOM およびアーティファクト署名タスクの場合:
- 署名鍵のパスワード、秘密鍵、公開鍵に署名する
- Trustification API と発行者 URL、クライアント ID、クライアントシークレット、サポートされている CycloneDX バージョン
注記認証情報やその他の詳細は、すでに Base64 でエンコードされているため、再度エンコードする必要はありません。これらの認証情報は、RHTAP のインストール中に作成した
private.envファイルにあります。
手順
- https://dev.azure.com にログインし、Azure DevOps プロジェクトを開きます。
- 左側のナビゲーションパネルで Pipelines を選択し、Library を選択します。
- Variable group を選択して、新しい変数グループを作成します。
-
変数グループの名前を入力します (例:
rhtap)。 変数グループエディターで、以下を行います。
- Add を選択して、新しい変数を追加します。
-
Name フィールドにキーを入力します。たとえば、
GITOPS_AUTH_PASSWORDです。 - Value フィールドに、更新されたイメージ情報をプッシュするために GitOps リポジトリーで認証するために使用される値を入力します。
- UI とログで値をマスクするには、Keep this value secret チェックボックスをオンにします。
手順 5 を繰り返して、必要なシークレットをすべて追加します。
Expand 表1.1 イメージレジストリーおよび GitOps シークレット 変数 説明 IMAGE_REGISTRY_PASSWORDコンテナーイメージレジストリーにアクセスするためのパスワード。
GITOPS_AUTH_PASSWORD新しくビルドされたイメージの GitOps リポジトリーを更新するためにシステムが使用するトークン。
Expand 表1.2 ACS および SBOM タスクに必要なシークレット 変数 説明 ROX_API_TOKENROX サーバーにアクセスするための API トークン。
COSIGN_SECRET_PASSWORDCosign 署名鍵のパスワード。
COSIGN_SECRET_KEYCosign の秘密鍵。
TRUSTIFICATION_OIDC_CLIENT_SECRETTrustification Bombastic API への認証にクライアント ID と一緒に使用されるクライアントシークレット。
ここで、通常の環境変数を追加し、その値をマスクしないでください。変数グループエディターで、以下を行います。
- Add を選択します。
-
Name フィールドにキーを入力します。たとえば、
IMAGE_REGISTRY_USERです。 - Value フィールドに値を入力します。この例では、コンテナーイメージレジストリーにアクセスするためのユーザー名です。
- Keep this value secret チェックボックスを選択しないでください。
手順 6 を繰り返して、必要なすべての環境変数を追加します。
Expand 表1.3 イメージレジストリーおよび GitOps 変数 変数 説明 IMAGE_REGISTRY_USERコンテナーイメージレジストリーにアクセスするためのユーザー名
GITOPS_AUTH_USERNAME(任意)OpenShift GitOps のユーザー名。この変数は、Azure が Bitbucket と連携するために必要です。デフォルトでは、この変数を含む行は
azure-pipelines.ymlファイル内でコメント化されます。Bitbucket の使用を開始するには、# GITOPS_AUTH_USERNAME: $(GITOPS_AUTH_USERNAME)の行の 5 つのインスタンスすべてをコメント解除します。Expand 表1.4 ACS タスクおよび SBOM タスクに必要な変数 変数 説明 ROX_CENTRAL_ENDPOINTROX Central サーバーのエンドポイント。
COSIGN_PUBLIC_KEYCosign の公開鍵。
TRUSTIFICATION_BOMBASTIC_API_URLSBOM 生成で使用される Trustification Bombastic API の URL。
TRUSTIFICATION_OIDC_ISSUER_URLTrustification Bombastic API と対話する際の認証に使用される OIDC 発行者 URL。
TRUSTIFICATION_OIDC_CLIENT_IDOIDC を使用して Trustification Bombastic API に認証するためのクライアント ID。
TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSIONシステムがサポートして生成する CycloneDX SBOM バージョンを指定します。
オプション: CI プロバイダーランナーが RHTAP インスタンスと同じクラスター上で実行されていない場合は、Rekor および TUF 変数を設定します。
Expand 表1.5 Rekor および TUF 変数 変数 説明 REKOR_HOSTRekor サーバーの URL。
TUF_MIRRORTUF サービスの URL。
- Save を選択します。
パイプラインがこの変数グループを使用するように承認します。
- Pipeline permissions タブを選択します。
- Add pipeline を選択します。
- この変数グループへのアクセスを必要とするパイプラインを選択し、Authorize selected pipelines を選択します。
オプション: 変数グループに
rhtap以外の別の名前を使用する場合は、azure-pipelines.ymlファイルで変数グループ名を更新する必要があります。variables: - group: <my-variable-group>variables: - group: <my-variable-group>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
- 最新のパイプラインを再実行します。シークレットが正しく適用されていれば、パイプラインは正常に完了します。実行が成功したら、RHACS や SBOM などのタスクに期待どおりの詳細が表示されることを確認します。
改訂日時: 2025-05-01