Key Vault VM 拡張機能を Azure Cloud Services (延長サポート) に適用する

この記事では、Windows 用の Azure Key Vault VM 拡張機能に関する基本的な情報と、Azure Cloud Services で有効にする方法について説明します。

Key Vault VM 拡張機能とは

Key Vault VM 拡張機能では、Azure キー コンテナーに保存されている証明書の自動更新が行われます。 具体的には、拡張機能では、キー コンテナーに格納されている確認済みの証明書のリストが監視されます。 拡張機能により変更が検出されると、対応する証明書が取得およびインストールされます。 詳細については、Windows 用の Key Vault VM 拡張機能に関する記事を参照してください。

Key Vault VM 拡張機能の新機能

Key Vault VM 拡張機能は Azure Cloud Services (延長サポート) プラットフォームでサポートされたため、証明書をエンド ツー エンドで管理できるようになりました。 拡張機能を使用すると、事前に定義されたポーリング間隔で、構成済みのキー コンテナーから証明書をプルしてインストールし、サービスで使用できるようになります。

Key Vault VM 拡張機能の使用方法

次の手順では、まずコンテナーにブートストラップ証明書を作成し、Microsoft Entra ID からトークンを取得することで、Azure Cloud Services に Key Vault VM 拡張機能をインストールする方法について説明します。 このトークンは、コンテナーで拡張機能を認証する際に役立ちます。 認証プロセスが設定され、拡張機能がインストールされると、すべての最新の証明書が定期的なポーリング間隔で自動的にプルされます。

Note

Key Vault VM 拡張機能は、Windows 証明書ストア内のすべての証明書を、VM 拡張機能設定の certificateStoreLocation プロパティによって指定された場所にダウンロードします。 現在、Key Vault VM 拡張機能は、ローカル システム管理者アカウントにのみ証明書の秘密キーへのアクセスを許可します。

前提条件

Azure Key Vault VM 拡張機能を使うには、Microsoft Entra テナントが必要です。 詳細については、クイックスタート: テナントの設定を参照してください。

Azure Key Vault VM 拡張機能を有効にする

  1. コンテナーで証明書を生成し、その証明書の .cer ファイルをダウンロードします。

  2. Azure portal[アプリの登録] に移動します。

    Screenshot of resources available in the Azure portal, including app registrations.

  3. アプリの登録 ページで、新しい登録 を選択します。

    Screenshot that shows the page for app registrations in the Azure portal.

  4. 次のページでフォームに入力し、アプリの作成を完了します。

  5. 証明書の .cer ファイルを Microsoft Entra アプリ ポータルにアップロードします。

    必要に応じて、Key Vault の Azure Event Grid 通知機能を使用して証明書をアップロードできます。

  6. Key Vault で Microsoft Entra アプリにシークレット アクセス許可を付与します。

    • ロールベースのアクセス制御 (RBAC) プレビューを使っている場合は、作成した Microsoft Entra アプリの名前を検索し、それを Key Vault Secrets User (プレビュー) ロールに割り当てます。
    • コンテナー アクセス ポリシーを使っている場合は、作成した Microsoft Entra アプリに Secret-Get アクセス許可を割り当てます。 詳細については、アクセス ポリシーの割り当てに関する記事を参照してください
  7. cloudService リソース用の Azure Resource Manager テンプレート スニペットを使用して、Key Vault VM 拡張機能をインストールします。

    {
        "osProfile":
        {
            "secrets":
            [
                {
                    "sourceVault":
                    {
                        "id": "[parameters('sourceVaultValue')]"
                    },
                    "vaultCertificates":
                    [
                        {
                            "certificateUrl": "[parameters('bootstrpCertificateUrlValue')]"
                        }
                    ]
                }
            ]
        },
        "extensionProfile":
        {
            "extensions":
            [
                {
                    "name": "KVVMExtensionForPaaS",
                    "properties":
                    {
                        "type": "KeyVaultForPaaS",
                        "autoUpgradeMinorVersion": true,
                        "typeHandlerVersion": "1.0",
                        "publisher": "Microsoft.Azure.KeyVault",
                        "settings":
                        {
                            "secretsManagementSettings":
                            {
                                "pollingIntervalInS": "3600",
                                "certificateStoreName": "My",
                                "certificateStoreLocation": "LocalMachine",
                                "linkOnRenewal": false,
                                "requireInitialSync": false,
                                "observedCertificates": "[parameters('keyVaultObservedCertificates']"
                            },
                            "authenticationSettings":
                            {
                                "clientId": "Your AAD app ID",
                                "clientCertificateSubjectName": "Your boot strap certificate subject name [Do not include the 'CN=' in the subject name]"
                            }
                        }
                    }
                }
            ]
        }
    }
    

    ServiceDefinition.csdef でブートストラップ証明書の証明書ストアを指定する必要があります。

        <Certificates>
                 <Certificate name="bootstrapcert" storeLocation="LocalMachine" storeName="My" />
        </Certificates> 
    

次のステップ

Azure Cloud Services (延長サポート) での監視を有効にすることによって、デプロイをさらに向上させます。