Azure Container Registry は、2028 年 3 月 31 日に Docker Content Trust (DCT) を廃止します。 この移行を支援するために、この記事では、DCT を無効にし、Notary Project を採用してコンテナー イメージに署名して検証する方法に関するガイダンスを提供します。
DCT の非推奨
DCT を使用すると、イメージ発行元はイメージに署名でき、イメージ コンシューマーは、プルしたイメージが署名されていることを確認できます。 技術の進歩により、DCT はコンテナーの最新のサプライ チェーン セキュリティの要件を満たさなくなりました。 その結果、DCT の廃止は 2025 年 3 月 31 日に開始されました。 DCT は、2028 年 3 月 31 日に Azure Container Registry から完全に削除されます。
DCT の代わりに、Microsoft は、Notary Project に基づく署名および検証ソリューションを提供しています。 公証人プロジェクト は、本物のコンテナー イメージやその他の Open Container Initiative (OCI) 成果物を使用してソフトウェアサプライ チェーンをセキュリティで保護するための業界間の標準を提供する一連の仕様とツールです。
Notary Project のツールである Notation は、そのプロジェクトの仕様を実装します。 これには、コンテナー イメージと成果物の署名と検証を行うコマンド ライン インターフェイス (CLI) とライブラリが含まれています。 コンテナー イメージの整合性と信頼性を確保するために、Notary Project ソリューションを使用する利点は次のとおりです。
- 移植性と相互運用性: Notary Project 署名はOCI 標準 に準拠しており、コンテナー レジストリなどの OCI 準拠レジストリに格納できます。 これらの機能により、クラウド環境間での署名の移植性と相互運用性が容易になります。
- セキュリティで保護されたキー管理: Azure Key Vault を使用して、署名キーと証明書を管理できます。
- 継続的インテグレーションと継続的デリバリー (CI/CD) パイプラインとの統合: Azure DevOps や GitHub ワークフローを含む CI/CD パイプラインに署名を実装します。
- 包括的な検証: CI/CD パイプライン (Azure DevOps や GitHub ワークフローなど) と Azure Kubernetes Service (AKS) 上のコンテナー イメージを検証して、信頼されていないイメージの使用とデプロイを防ぎます。
DCT を無効にする
Notation Project ソリューションに移行する前に、DCT を無効にする必要があります。 次のいずれかの方法を使用します。
DOCKER_CONTENT_TRUST環境変数を0に設定して、シェルから DCT を無効にします。 たとえば、Bash シェルで次のコマンドを使用します。export DOCKER_CONTENT_TRUST=0もしくは、次の手順で環境変数の設定を解除することもできます。
unset DOCKER_CONTENT_TRUSTAzure portal から DCT を無効にします。 レジストリに移動し、[ポリシー] で [コンテンツの信頼>Disabled>Save を選択します。
Azure CLI を使用して DCT を無効にします。
az acr config content-trust update -r myregistry --status disabled
Notary Project を使用してコンテナー イメージに署名して確認する
DCT を無効にした後、Notary Project を使用してコンテナー イメージに署名して検証できます。 開始するには、次の参考資料をご覧ください。
次の手順でコンテナー イメージに署名します。
- 自己署名証明書で Key Vault を使用するには、「Notation、 Azure Key Vault、自己署名証明書を使用してコンテナー イメージに署名する」を参照してください。
- 証明機関 (CA) によって発行された証明書で Key Vault を使用するには、「 Notation、Azure Key Vault、CA によって発行された証明書を使用してコンテナー イメージに署名する」を参照してください。
- Azure DevOps パイプラインにサインインするには、Azure パイプラインで Notation を使用してコンテナー イメージに署名して検証する方法に関するページを参照してください。
- GitHub ワークフローにサインインするには、 GitHub Actions で Notation を使用してコンテナー イメージに署名するを参照してください。
次の手順でコンテナー イメージを検証します。
- Azure DevOps パイプラインで確認するには、Azure パイプラインで Notation を使用してコンテナー イメージに署名して検証する方法に関するページを参照してください。
- GitHub ワークフローで確認するには、 GitHub Actions で Notation を使用してコンテナー イメージを確認するを参照してください。
- AKS で確認するには、「 Ratify と Azure Policy を使用してコンテナー イメージの署名を確認する」を参照してください。