Batch アカウント証明書を Azure Key Vault に移行する

2024 年 2 月 29 日に、Azure Batch アカウント証明書機能は廃止されます。 この記事では、Azure Key Vault を使用して、Azure Batch アカウントの証明書を移行する方法について説明します。

機能について

証明書は、シークレットの復号化、通信チャネルのセキュリティ保護、別のサービスへのアクセスなど、さまざまなシナリオで必要になることがよくあります。 現時点では、Azure Batch には、Batch プールで証明書を管理する 2 つの方法が用意されています。 Batch アカウントに証明書を追加することも、Azure Key Vault VM 拡張機能を使用して Batch プール上の証明書を管理することもできます。 Azure Batch アカウントの証明書機能と、プールの追加プールのパッチ適用プロパティ更新 のために CertificateReference を使って Batch プールに拡張される機能および Get と List Pool API の対応する参照のみが廃止されます。 さらに、Linux プールの場合、環境変数 $AZ_BATCH_CERTIFICATES_DIR は定義も設定も行われなくなります。

機能のサポート終了

Azure Key Vault は、Azure 全体でシークレットと証明書を安全に格納およびアクセスするための標準的な推奨メカニズムです。 そのため、2024 年 2 月 29 日に、Azure Batch の Batch アカウント証明書機能は廃止されます。 代わりに、Batch プールの証明書への安全なアクセスおよびインストールには、Azure Key Vault VM 拡張機能とプール上のユーザー割り当てマネージド ID を使用します。

Azure Batch の証明書機能が 2024 年 2 月 29 日に廃止されると、Batch の証明書は期待どおりに機能しません。 その日を過ぎると、Batch アカウントに証明書を追加したり、これらの証明書を Batch プールにリンクしたりできなくなります。 この日付以降もこの機能を引き続き使用するプールでは、証明書参照の更新や既存の証明書参照のインストールなどが、期待どおりに動作しない可能性があります。

代替手段: プール ユーザー割り当てマネージド ID で Azure Key Vault VM 拡張機能を使用する

Azure Key Vault は、シークレット、証明書、トークン、キーを格納および管理するための制御されたアクセスを提供するフル マネージドの Azure サービスです。 Azure Key Vault では、キー コンテナーからクライアント アプリケーションへのデータ フローが確実に暗号化されるようにすることで、トランスポート層でセキュリティが提供されます。 Azure Key Vault では、重要なアクセス情報を格納し、きめ細かなアクセス制御を設定するための安全な方法が提供されます。 1 つのダッシュボードからすべてのシークレットを管理できます。 ソフトウェアで保護された、またはハードウェアで保護されたハードウェア セキュリティ モジュール (HSM) にキーを格納することを選択できます。 また、証明書を自動更新するように Key Vault を設定することもできます。

プール ユーザー割り当てマネージド ID を使用して Azure Key Vault VM 拡張機能を有効にする方法の完全なガイドについては、「Batch プールで証明書の自動ローテーションを有効にする」を参照してください。

FAQ

  • CloudServiceConfiguration プールでは、プール上の Azure Key Vault VM 拡張機能とマネージド ID がサポートされますか?

    いいえ。 CloudServiceConfiguration プールは、2024 年 2 月 29 日の Azure Batch アカウント証明書の提供終了と同じ日に廃止されます。 その日の前に、これらのソリューションを使用できる VirtualMachineConfiguration プールに移行することをお勧めします。

  • ユーザー サブスクリプション プールの割り当て Batch アカウントでは Azure Key Vault がサポートされますか?

    はい。 プールで使用する場合と同じ Key Vault を Batch アカウントで使用できますが、Batch プールの証明書に使用する Key Vault は完全に分離されている場合があります。

  • Key Vault VM 拡張機能では、Linux プールと Windows Batch プールの両方がサポートされていますか?

    はい。 WindowsLinux のドキュメントを参照してください。

  • Key Vault VM 拡張機能を使用するように既存のプールを更新することはできますか?

    いいえ。これらのプロパティはプール上での更新は不可能です。 プールを再作成する必要があります。

  • $AZ_BATCH_CERTIFICATES_DIR が削除された後に、Linux Batch プールの証明書への参照を取得するにはどのようにすればよいですか?

    Linux 用の Key Vault VM 拡張機能を使用すると、証明書が格納されている場所への絶対パスである certificateStoreLocation を指定できます。 指定された場所にインストールされた証明書のスコープは、スーパーユーザー (root) 特権のみとなるように Key Vault VM 拡張機能によって設定されます。 実行するタスクが昇格されて既定でこれらの証明書にアクセスできることを確認する必要があります。または、直接アクセス可能な場所に証明書をコピーするか、証明書ファイルのファイル モードを適切に調整する必要があります。 このようなコマンドは、昇格された開始タスクまたはジョブ準備タスクの一部として実行できます。

  • 秘密キーが含まれていない .cer ファイルをインストールするにはどうすればよいですか?

    このようなファイルは秘密キー情報が含まれていないため、Key Vault では特権付きとはみなされません。 次のいずれかの方法を使用して .cer ファイルをインストールできます。 Key Vault シークレットを使用するとともに、関連付けられたユーザー割り当てマネージド ID に適切なアクセス特権を付与し、.cer ファイルを開始タスクの中でフェッチしてインストールします。 または、.cer ファイルを Azure Storage Blob として保存しておき、開始タスクの中で Batch リソース ファイルとして参照してインストールします。

  • タスクレベルの nonadmin 自動ユーザー プール ID のための、Key Vault 拡張機能によってインストールされる証明書にアクセスするにはどうすればよいですか?

    タスクレベルの自動ユーザーはオンデマンドで作成されるため、Key Vault VM 拡張機能の accounts プロパティで指定するために事前定義することはできません。 カスタム プロセスを使用して、必要な証明書を一般的にアクセス可能なストアにエクスポートするか、タスクレベル自動ユーザーによるアクセスに適した ACL を設定する必要があります。

  • Azure Key Vault を使用するためのベスト プラクティスはどこで確認できますか?

    Azure Key Vault のベスト プラクティスに関するページを参照してください。

次のステップ

詳細に関しては、Key Vault の証明書のアクセスの制御に関するページを参照してください。 この移行に関連する Batch 機能の詳細については、Azure Batch のプール拡張機能Azure Batch のプール マネージド ID に関するページを参照してください。