Microsoft Azure リソースマネージャーへの接続

最終公開日 : Oct 24, 2026
(/ja-jp/citrix-daas/install-configure/connections.html)では、接続を作成するウィザードについて説明します。以下の情報は、Azure Resource Managerクラウド環境に固有の詳細を扱います。
注:
Microsoft Azureへの接続を作成する前に、Azureアカウントをリソースの場所として設定を完了する必要があります。(/ja-jp/citrix-daas/install-configure/resource-location/azure-resource-manager.html)を参照してください。

サービスプリンシパルと接続の作成

接続を作成する前に、接続がAzureリソースにアクセスするために使用するサービスプリンシパルを設定する必要があります。接続は2つの方法で作成できます。
  • Studioを使用してサービスプリンシパルと接続を同時に作成する
  • 以前に作成したサービスプリンシパルを使用して接続を作成する
このセクションでは、次のタスクを完了する方法を示します。
  • Studio を使用してサービスプリンシパルと接続を作成する](#create-a-service-principal-and-connection-using-studio)
  • (#create-a-service-principal-using-powershell)
  • (#get-the-application-secret-in-azure)
  • 既存のサービスプリンシパルを使用して接続を作成する](#create-a-connection-using-an-existing-service-principal)

考慮事項

開始する前に、以下の考慮事項に注意してください。
  • Citrix® は、共同作成者 ロールを持つサービスプリンシパルの使用を推奨しています。ただし、最小限の権限のリストについては、最小限の権限 セクションを参照してください。
  • 最初の接続を作成するとき、Azure は必要な権限を付与するよう求めます。今後の接続では、引き続き認証が必要ですが、Azure は以前の同意を記憶しており、プロンプトを再度表示することはありません。
  • 初めて Azure で認証すると、認証されたアカウントに代わって、Citrix が所有するマルチテナントアプリケーション (ID: 08b70dc3-76c5-4611-ba7d-3312ba36cb2b) が Microsoft Entra ID に招待されます。
  • 認証に使用されるアカウントは、Azure RBAC を使用してサブスクリプション内でロールを割り当てる権限を持っている必要があります。例として、サブスクリプションの所有者、ロールベースのアクセス制御管理者、またはユーザーアクセス管理者などです。
  • 認証に使用されるアカウントは、サブスクリプションのディレクトリのメンバーである必要があります。注意すべきアカウントの種類は、「職場または学校」と「個人用 Microsoft アカウント」の2種類です。詳細については、CTX219211 を参照してください。
  • 既存の Microsoft アカウントをサブスクリプションのディレクトリのメンバーとして追加して使用することはできますが、ユーザーが以前にディレクトリのリソースのいずれかへのゲストアクセスを許可されていた場合、問題が発生する可能性があります。この場合、ディレクトリ内に必要な権限を付与しないプレースホルダーエントリが存在し、エラーが返される可能性があります。
    これを修正するには、ディレクトリからリソースを削除し、明示的に再度追加します。ただし、このアカウントがアクセスできる他のリソースに意図しない影響を与える可能性があるため、このオプションは慎重に実行してください。
  • 特定のアカウントが実際にはメンバーであるにもかかわらず、ディレクトリゲストとして検出される既知の問題があります。このような構成は、通常、古くから確立されているディレクトリアカウントで発生します。回避策: ディレクトリにアカウントを追加し、適切なメンバーシップ値を取得します。
  • リソースグループは単にリソースのコンテナであり、自身のリージョン以外のリージョンからのリソースを含むことができます。これは、リソースグループのリージョンに表示されるリソースが利用可能であると期待している場合、混乱を招く可能性があります。
  • 必要な数のマシンをホストするのに十分な大きさのネットワークとサブネットがあることを確認してください。これにはある程度の先見性が必要ですが、Microsoft はアドレス空間の容量に関するガイダンスを提供し、適切な値を指定するのに役立ちます。

Studio を使用してサービスプリンシパルと接続を作成する

重要:
この機能は、Azure China サブスクリプションではまだ利用できません。
Studio を使用すると、単一のワークフローでサービスプリンシパルと接続の両方を作成できます。サービスプリンシパルは、接続に Azure リソースへのアクセスを許可します。サービスプリンシパルを作成するために Azure に認証すると、Azure にアプリケーションが登録されます。登録されたアプリケーションには、秘密鍵 (クライアントシークレット または アプリケーションシークレット と呼ばれます) が作成されます。登録されたアプリケーション (この場合は 接続) は、クライアントシークレットを使用して Microsoft Entra ID に認証します。
開始する前に、以下の前提条件を満たしていることを確認してください。
  • サブスクリプションのMicrosoft Entraテナントにユーザーアカウントがあること。
  • 認証に使用されるアカウントは、Azure RBACを使用してサブスクリプションでロールを割り当てる権限を持っている必要があります。例として、サブスクリプションの所有者、ロールベースのアクセス制御管理者、またはユーザーアクセス管理者などです。
  • 認証のために、グローバル管理者、アプリケーション管理者、またはアプリケーション開発者の権限を持っていること。これらの権限は、ホスト接続を作成した後に取り消すことができます。ロールの詳細については、「Microsoft Entra組み込みロール」を参照してください。
接続とリソースの追加ウィザードを使用して、サービスプリンシパルと接続を一緒に作成します。
  1. 接続ページで、新しい接続の作成、Microsoft Azure接続タイプ、およびAzure環境を選択します。
  2. 仮想マシンを作成するために使用するツールを選択し、次へを選択します。
  3. 接続の詳細ページで、アプリケーションクライアントシークレット認証モードを選択し、サービスプリンシパルを作成して、接続名を次のように設定します。
    1. AzureサブスクリプションIDと接続名を入力します。サブスクリプションIDを入力すると、新規作成ボタンが有効になります。
    注:
    接続名には1~64文字を含めることができ、空白のみ、または文字\/;:#.*?=<>|[]{}"'()'を含めることはできません。
    1. 新規作成を選択し、Microsoft Entraアカウントのユーザー名とパスワードを入力します。
    2. サインインを選択します。
    3. 同意するを選択して、Citrix DaaS™にリストされている権限を付与します。Azureは、Citrix DaaSが指定されたユーザーに代わってAzureリソースを管理できるようにするサービスプリンシパルを作成します。
      注:
      Citrix DaaSが新しいサービスプリンシパルを作成するには、次の権限が必要です。
      • あなたとして Azure Service Management にアクセスする
      • アプリケーションの読み取りと書き込み
      • サインインしてプロファイルを読み取る
      • アクセスを許可したデータへのアクセスを維持する
    4. 承諾を選択すると、接続の詳細ページに戻ります。
      注:
      Azure への認証が正常に完了すると、新規作成ボタンと既存を使用ボタンが非表示になります。緑色のチェックマークとともに接続に成功しましたというテキストが表示され、Azure サブスクリプションへの接続が正常に完了したことを示します。
    5. API リクエストを Citrix Cloud™ Connectors 経由で Azure にルーティングするには、Citrix Cloud Connectors 経由でトラフィックをルーティングするチェックボックスを選択します。Cloud Connectors に直接インターネットアクセスがない場合は、Citrix Cloud Connectors で構成されたプロキシを使用するを選択して、Citrix Cloud Connectors 経由で Azure 接続が適切に機能するようにすることができます。
      または、PowerShell を使用してこの機能を有効にすることもできます。詳細については、「Azure 管理対象トラフィックのセキュアな環境を作成する」を参照してください。
      注:
      このオプションは、展開環境にアクティブな Citrix Cloud Connector がある場合にのみ使用できます。現在、この機能は Connector Appliances ではサポートされていません。
    6. 次へを選択します。
    注:
    Azure への認証が正常に完了し、必要な権限の付与に同意するまで、次のページに進むことはできません。
  4. 接続のリソースを次のように構成します。
    • 「地域」ページで、地域を選択します。
    • 「ネットワーク」ページで、次の操作を行います。
      • 地域とネットワークの組み合わせを識別するために、1~64文字のリソース名を入力します。リソース名には、空白のみ、または文字\/;:#.*?=<>|[]{}"'()'を含めることはできません。
      • 仮想ネットワーク/リソースグループのペアを選択します。(同じ名前の仮想ネットワークが複数ある場合、ネットワーク名とリソースグループをペアにすることで、一意の組み合わせが提供されます。)前のページで選択した地域に仮想ネットワークがない場合は、そのページに戻り、仮想ネットワークがある地域を選択してください。
  5. 「概要」ページで、設定の概要を確認し、「完了」を選択してセットアップを完了します。

アプリケーションIDを表示する

接続を作成した後、その接続がAzureリソースへのアクセスに使用するアプリケーションIDを表示できます。
「接続とリソース」リストで、詳細を表示する接続を選択します。「詳細」タブにアプリケーションIDが表示されます。
接続とリソースの追加ページでのアプリケーションID(/en-us/citrix-daas/media/application-id-console-new.png)

PowerShellを使用してサービスプリンシパルを作成する

PowerShellを使用してサービスプリンシパルを作成するには、Azure Resource Managerサブスクリプションに接続し、以下のセクションで提供されているPowerShellコマンドレットを使用します。
次の項目を準備してください。
  • SubscriptionId: VDAをプロビジョニングするサブスクリプションのAzure Resource Manager SubscriptionID。
  • ActiveDirectoryID: Microsoft Entra IDに登録したアプリケーションのテナントID。
  • ApplicationName: Microsoft Entra IDで作成するアプリケーションの名前。
詳細な手順は次のとおりです。
  1. Azure Resource Manager サブスクリプションに接続します。
    Connect-AzAccount
  2. サービスプリンシパルを作成する Azure Resource Manager サブスクリプションを選択します。
    Get-AzSubscription -SubscriptionId $subscriptionId | Select-AzSubscription
  3. AD テナントにアプリケーションを作成します。
    $AzureADApplication = New-AzADApplication -DisplayName $ApplicationName
  4. サービスプリンシパルを作成します。
    New-AzADServicePrincipal -ApplicationId $AzureADApplication.AppId
  5. サービスプリンシパルにロールを割り当てます。
    New-AzRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $AzureADApplication.AppId –scope /subscriptions/$SubscriptionId
  6. PowerShell コンソールの出力ウィンドウから ApplicationId をメモします。ホスト接続を作成する際に、その ID を指定します。

Azure でアプリケーションシークレットを取得する

既存のサービスプリンシパルを使用して接続を作成するには、まず Azure ポータルでサービスプリンシパルのアプリケーション ID とシークレットを取得する必要があります。
詳細な手順は次のとおりです。
  1. StudioまたはPowerShellを使用してアプリケーションIDを取得します。
  2. Azureポータルにサインインします。
  3. Azureで、Microsoft Entra IDを選択します。
  4. Microsoft Entra IDのアプリの登録から、アプリケーションを選択します。
  5. 証明書とシークレットに移動します。
  6. クライアントシークレットをクリックします。
Azureポータルでのアプリケーションシークレット(/en-us/citrix-daas/media/secret-id-azure-portal.png)

既存のサービスプリンシパルを使用して接続を作成する

既存のサービスプリンシパルがある場合は、それを使用してStudioで接続を作成できます。
以下の項目を準備してください。
  • SubscriptionId
  • ActiveDirectoryID (テナントID)
  • アプリケーションID
  • アプリケーションシークレット
    詳細については、「アプリケーションシークレットの取得」を参照してください。
  • シークレットの有効期限
詳細な手順は次のとおりです。
接続とリソースの追加ウィザードで、次の手順を実行します。
  1. 接続ページで、新しい接続を作成、Microsoft Azure接続タイプ、およびAzure環境を選択します。
  2. 仮想マシンを作成するために使用するツールを選択し、次へを選択します。
  3. 接続の詳細ページで、アプリケーションクライアントシークレット認証モードを選択し、AzureサブスクリプションIDと接続の名前を入力します。
    注:
    接続名には1~64文字を含めることができ、空白のみ、または文字\/;:#.*?=<>|[]{}"'()'を含めることはできません。
  4. 既存を使用を選択します。既存のサービスプリンシパルの詳細ウィンドウで、既存のサービスプリンシパルに対して次の設定を入力します。詳細を入力すると、保存ボタンが有効になります。保存を選択します。有効な詳細情報を提供するまで、このページから先に進むことはできません。
    • サブスクリプションID。AzureサブスクリプションIDを入力します。サブスクリプションIDを取得するには、Azureポータルにサインインし、サブスクリプション > 概要に移動します。
    • Active Directory ID(テナントID)。Microsoft Entra IDに登録したアプリケーションのディレクトリ(テナント)IDを入力します。
    • アプリケーションID。Microsoft Entra IDに登録したアプリケーションのアプリケーション(クライアント)IDを入力します。
    • アプリケーションシークレット。シークレットキー(クライアントシークレット)を入力します。登録されたアプリケーションは、このキーを使用してMicrosoft Entra IDに対して認証を行います。セキュリティ上の理由から、定期的にキーを変更することをお勧めします。キーは後で取得できないため、必ず保存してください。
    • シークレットの有効期限。アプリケーションシークレットの有効期限が切れる日付を入力します。シークレットキーの有効期限が切れる14日前から、コンソールにアラートが表示されます。ただし、シークレットキーの有効期限が切れると、エラーが発生します。
      注:
      セキュリティ上の理由から、有効期限は現在から2年を超えることはできません。
    • 認証URL。このフィールドは自動的に入力され、編集できません。
    • 管理URL。このフィールドは自動的に入力され、編集できません。
    • ストレージサフィックス。このフィールドは自動的に入力され、編集できません。
    • ディスクまたはスナップショットをアップロードまたはダウンロードするためのAzure BLOBストレージエンドポイント。このフィールドは自動的に入力され、編集できません。
    • Key Vaultサービス。このフィールドは自動的に入力され、編集できません。
    • サービスバスサフィックス。このフィールドは自動的に入力され、編集できません。
      AzureでMCSカタログを作成するには、以下のエンドポイントへのアクセスが必要です。これらのエンドポイントへのアクセスにより、ネットワークとAzureポータルおよびそのサービス間の接続が最適化されます。
      • 認証URL: https://login.microsoftonline.com
      • 管理URL: https://management.azure.com。これはAzure Resource ManagerプロバイダーAPIのリクエストURLです。管理のエンドポイントは環境によって異なります。たとえば、Azure Globalの場合はhttps://management.azure.com、Azure US Governmentの場合はhttps://management.usgovcloudapi.netです。
      • ストレージサフィックス: https://*.core.windows.net。これはストレージサフィックスのワイルドカード文字(*)です。例: https://demo.table.core.windows.net。
      • ディスクまたはスナップショットをアップロードまたはダウンロードするためのAzure BLOBストレージエンドポイント: https://*.storage.azure.net。これはBLOBストレージのインポートおよびエクスポート操作のワイルドカード文字(*)です。例: https://md-impexp-xxxxx.z[00-50].blob.storage.azure.net。
      • Key Vaultサービス: https://*.vault.azure.net。これはキーコンテナー名のワイルドカード文字(*)です。例: https://<your-key-vault-name>.vault.azure.net。
      • サービスバスサフィックス: https://*.servicebus.windows.net。これはグローバルAzureクラウドで作成された名前空間のワイルドカード文字(*)です。例: https://{serviceNamespace}.servicebus.windows.net/{path}。
  5. 保存を選択すると、接続の詳細ページに戻ります。次のページに進むには、次へを選択します。
  6. 接続のリソースを次のように構成します。
    • 地域ページで、地域を選択します。
    • ネットワークページで、次の操作を行います。
      • 地域とネットワークの組み合わせを識別するために、1~64文字のリソース名を入力します。リソース名には、空白のみ、または文字\/;:#.*?=<>|[]{}"'()'を含めることはできません。
      • 仮想ネットワーク/リソースグループのペアを選択します。(同じ名前の仮想ネットワークが複数ある場合、ネットワーク名をリソースグループとペアにすることで、一意の組み合わせが提供されます。)前のページで選択した地域に仮想ネットワークがない場合は、そのページに戻り、仮想ネットワークがある地域を選択します。
  7. 概要ページで、設定の概要を確認し、完了を選択してセットアップを完了します。

サービスプリンシパルと接続を管理する

このセクションでは、サービスプリンシパルと接続を管理する方法について詳しく説明します。

Azure スロットリング設定の構成

Azure Resource Manager は、サブスクリプションとテナントの要求をスロットルし、プロバイダーの特定のニーズに合わせて調整された定義済みの制限に基づいてトラフィックをルーティングします。詳細については、Microsoft サイトの「Resource Manager の要求のスロットリング」を参照してください。サブスクリプションとテナントには制限があり、多数のマシンを管理すると問題が発生する可能性があります。たとえば、多数のマシンを含むサブスクリプションでは、電源操作に関連するパフォーマンスの問題が発生する可能性があります。
ヒント:
詳細については、「Machine Creation Services を使用した Azure パフォーマンスの向上」を参照してください。
これらの問題を軽減するために、Citrix DaaS では、MCS の内部スロットリングを削除して、Azure から利用可能な要求クォータをより多く使用できます。
たとえば、1,000 台の VM を含む大規模なサブスクリプションで VM の電源をオンまたはオフにする場合は、次の最適な設定をお勧めします。
  • 絶対同時操作数: 500
  • 1 分あたりの最大新規操作数: 2000
  • 操作の最大同時実行数: 500
Studio を使用して、特定のホスト接続の Azure 操作を構成します。
  1. Studio から、左側のペインで を選択します。
  2. Azure 関連の接続を選択して編集します。
  3. ウィザードで、 を選択します。
  4. ページで、構成オプションを使用して、同時アクションの数、1 分あたりの最大新規アクション数、および追加の接続オプションを指定します。
Azure スロットリング
MCS はデフォルトで最大 500 の同時操作をサポートします。または、Remote PowerShell SDK を使用して、同時操作の最大数を設定することもできます。
PowerShell プロパティ MaximumConcurrentProvisioningOperations を使用して、Azure プロビジョニングの同時操作の最大数を指定します。このプロパティを使用する際は、以下を考慮してください。
  • MaximumConcurrentProvisioningOperations のデフォルト値は 500 です。
  • PowerShell コマンド Set-item を使用して、MaximumConcurrentProvisioningOperations パラメーターを構成します。

既存のホスティング接続のサービスプリンシパルを管理する

サービスプリンシパルを使用してホスティング接続を作成した後、ホスティング接続を編集して以下のようにすることができます。
  • 新しいサービスプリンシパル
  • 別の既存のサービスプリンシパルを使用する
  1. Studio で、左ペインから を選択します。
  2. 接続を選択し、アクションバーで を選択します。
  3. 左ペインから を選択します。
  4. 表示される ページで、 をクリックします。ここで、新しいサービスプリンシパルを作成するか、別の既存のサービスプリンシパルを使用するかを選択できます。
    設定の編集
    • をクリックして、新しいサービスプリンシパルを作成します。プロンプトに従って Microsoft Entra ユーザーアカウントにログインします。Citrix は、マルチテナントアプリケーション ID 08b70dc3-76c5-4611-ba7d-3312ba36cb2b を使用して、既存のホスト接続用の新しいサービスプリンシパルを作成し、適切な権限を付与します。
    • をクリックして、そのホスティング接続に別の既存のサービスプリンシパルを使用します。

Azure でのイメージ共有を有効にする

マシンカタログを作成または更新する際、異なるAzureテナントおよびサブスクリプション(Azure Compute Galleryを介して共有)から共有イメージを選択できます。テナント内またはテナント間でイメージ共有を有効にするには、Azureで必要な設定を行う必要があります。

テナント内でのイメージ共有(サブスクリプション間)

別のサブスクリプションに属するAzure Compute Galleryのイメージを選択するには、そのサブスクリプションのサービスプリンシパル (SPN) とイメージを共有する必要があります。
たとえば、Studioで次のように構成されているサービスプリンシパル (SPN 1) がある場合:
サービスプリンシパル: SPN 1
サブスクリプション: subscription 1
テナント: tenant 1
イメージは別のサブスクリプションにあり、Studioで次のように構成されています:
サブスクリプション: subscription 2
テナント: tenant 1
subscription 2のイメージをsubscription 1 (SPN 1) と共有したい場合は、subscription 2に移動し、リソースグループをSPN1と共有します。
イメージは、Azureロールベースのアクセス制御 (RBAC) を使用して別のSPNと共有する必要があります。Azure RBACは、Azureリソースへのアクセスを管理するために使用される承認システムです。Azure RBACの詳細については、Microsoftドキュメント「Azure ロールベースのアクセス制御 (Azure RBAC) とは」を参照してください。アクセスを許可するには、リソースグループスコープで共同作成者ロールを持つサービスプリンシパルにロールを割り当てます。Azureロールを割り当てるには、ユーザーアクセス管理者や所有者などのMicrosoft.Authorization/roleAssignments/write権限が必要です。別のSPNとイメージを共有する方法の詳細については、Microsoftドキュメント「Azure portal を使用して Azure ロールを割り当てる」を参照してください。

テナント間で画像を共有する

Azure Compute Gallery を使用してテナント間で画像を共有するには、アプリケーション登録を作成または更新し、このアプリケーションを使用してホスティング接続を作成します。
たとえば、2つのテナント (テナント1とテナント2) があり、テナント1とイメージギャラリーを共有したい場合は、次の手順を実行します。
  1. テナント1のアプリケーション登録を作成します。詳細については、「アプリ登録の作成」を参照してください。
  2. ブラウザを使用してサインインを要求することで、テナント2にアプリケーションへのアクセスを許可します。Tenant2 ID をテナント1のテナントIDに置き換えます。Application (client) ID を作成したアプリケーション登録のアプリケーションIDに置き換えます。置換が完了したら、URLをブラウザに貼り付け、サインインプロンプトに従ってテナント2にサインインします。例:
    https://login.microsoftonline.com/<Tenant 2 ID>/oauth2/authorize?client_id=<Application (client) ID>&response_type=code&redirect_uri=https%3A%2F%2Fwww.microsoft.com%2F
    詳細については、「テナント2へのアクセス許可」を参照してください。
  3. アプリケーションにテナント2のリソースグループへのアクセスを許可します。テナント2としてサインインし、ギャラリーイメージを持つリソースグループへのアクセスをアプリケーション登録に許可します。詳細については、「テナント間での要求の認証」を参照してください。

Studio を使用して共有テナントを接続に追加する

Studio でマシンカタログを作成または更新する際、異なるAzureテナントおよびサブスクリプション (Azure Compute Gallery を介して共有) から共有イメージを選択できます。この機能では、関連するホスト接続の共有テナントおよびサブスクリプション情報を提供する必要があります。
注:
テナント間でイメージ共有を有効にするために、Azure で必要な設定が構成されていることを確認してください。詳細については、「テナント間で画像を共有する」を参照してください。
接続に対して次の手順を実行します。
  1. Studio で、左側のペインで を選択します。
  2. 接続を選択し、アクションバーで を選択します。
    共有テナント
  3. 「共有テナント」で、以下を実行します。
    1. 接続のサブスクリプションに関連付けられているアプリケーションIDとアプリケーションシークレットを指定します。DaaSはこの情報を使用してMicrosoft Entra IDに認証します。
    2. 接続のサブスクリプションとAzure Compute Galleryを共有するテナントとサブスクリプションを追加します。各テナントにつき、最大8つの共有テナントと8つのサブスクリプションを追加できます。
  4. 完了したら、適用を選択して行った変更を適用し、ウィンドウを開いたままにするか、OKを選択して変更を適用し、ウィンドウを閉じます。

PowerShellを使用したイメージ共有の実装

別のサブスクリプションからイメージを選択する

同じAzureテナント内の別の共有サブスクリプションに属するAzure Compute Galleryのイメージを選択して、PowerShellコマンドを使用してMCSカタログを作成および更新できます。
  1. ホスティングユニットのルートフォルダーに、Citrixはsharedsubscriptionという新しい共有サブスクリプションフォルダーを作成します。
  2. テナント内のすべての共有サブスクリプションを一覧表示します。
    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\sharedsubscription.folder"
  3. 1つの共有サブスクリプションを選択し、その共有サブスクリプションのすべての共有リソースグループを一覧表示します。
    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription"
  4. リソースグループを選択し、そのリソースグループのすべてのギャラリーを一覧表示します。
    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup"
  5. ギャラリーを選択し、そのギャラリーのすべてのイメージ定義を一覧表示します。
    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\testgallery.gallery"
  6. 1つのイメージ定義を選択し、そのイメージ定義のすべてのイメージバージョンを一覧表示します。
    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\sigtestdef.imagedefinition"
  7. 次の要素を使用してMCSカタログを作成および更新します。
    • リソースグループ
    • ギャラリー
    • ギャラリーイメージ定義
    • ギャラリーイメージバージョン

共有テナントIDでホスティング接続のカスタムプロパティを更新する

Set-Item を使用して、共有テナントIDとサブスクリプションIDでホスティング接続のカスタムプロパティを更新します。CustomProperties にプロパティ SharedTenants を追加します。Shared Tenants の形式は次のとおりです。
[{"Tenant":"94367291-119e-457c-bc10-25337231f7bd","Subscriptions":["7bb42f40-8d7f-4230-a920-be2781f6d5d9"]},{"Tenant":"50e83564-c4e5-4209-b43d-815c45659564","Subscriptions":["06ab8944-6a88-47ee-a975-43dd491a37d0"]}]
例:
Set-Item -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`">
<Property xsi:type=`"StringProperty`" Name=`"SubscriptionId`" Value=`"123`" />
<Property xsi:type=`"StringProperty`" Name=`"ManagementEndpoint`" Value=`"https://management.azure.com/`" />
<Property xsi:type=`"StringProperty`" Name=`"AuthenticationAuthority`" Value=`"https://login.microsoftonline.com/`" />
<Property xsi:type=`"StringProperty`" Name=`"StorageSuffix`" Value=`"core.windows.net`" />
<Property xsi:type=`"StringProperty`" Name=`"TenantId`" Value=`"123abc`" />
<Property xsi:type=`"StringProperty`" Name=`"SharedTenants`" Value=`"`[ { 'Tenant':'123abc', 'Subscriptions':['345', '567'] } ]`"` />
</CustomProperties>"
-LiteralPath @("XDHyp:\Connections\aazure") -PassThru -UserName "advc345" -SecurePassword
$psd
注:
複数のテナントを追加できます。各テナントは複数のサブスクリプションを持つことができます。

別のテナントからイメージを選択する

PowerShellコマンドを使用してMCSカタログを作成および更新するために、別のAzureテナントに属するAzure Compute Galleryのイメージを選択できます。
  1. ホスティングユニットのルートフォルダーに、Citrixは sharedsubscription という新しい共有サブスクリプションフォルダーを作成します。
  2. すべての共有サブスクリプションを一覧表示します。
    Get-ChildItem XDHyp:\HostingUnits\azres\sharedsubscription.folder
  3. 共有サブスクリプションを1つ選択し、その共有サブスクリプションのすべての共有リソースグループを一覧表示します。
    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription
  4. リソースグループを選択し、そのリソースグループのすべてのギャラリーを一覧表示します。
    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup
  5. ギャラリーを選択し、そのギャラリーのすべてのイメージ定義を一覧表示します。
    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery
  6. イメージ定義を1つ選択し、そのイメージ定義のすべてのイメージバージョンを一覧表示します。
    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery\hij.imagedefinition
  7. 次の要素を使用してMCSカタログを作成および更新します。
    • リソースグループ
    • ギャラリー
    • ギャラリーイメージ定義
    • ギャラリーイメージバージョン

Azure管理トラフィックのセキュアな環境を作成する

MCSを使用すると、ネットワークトラフィック(Citrix CloudからAzureハイパーバイザーへのAPI呼び出し)を環境内のCloud Connector経由でルーティングできます。この実装により、特定のIPアドレスからのネットワークトラフィックを許可するようにAzureサブスクリプションをロックダウンできます。これを行うには、CustomPropertiesにProxyHypervisorTrafficThroughConnectorを追加します。カスタムプロパティを設定した後、Azureマネージドディスクへのプライベートディスクアクセスを許可するようにAzureポリシーを構成できます。
新しいディスクごとにプライベートエンドポイントを使用するためのディスクアクセスを自動的に作成するようにAzureポリシーを構成した場合、Azureによって強制されるように、同じディスクアクセスオブジェクトで同時に5つを超えるディスクまたはスナップショットをアップロードまたはダウンロードすることはできません。この制限は、リソースグループレベルでAzureポリシーを構成した場合は各マシンカタログに適用され、サブスクリプションレベルでAzureポリシーを構成した場合はすべてのマシンカタログに適用されます。 新しいディスクごとにプライベートエンドポイントを使用するためのディスクアクセスを自動的に作成するようにAzureポリシーを構成しない場合、5つの同時操作の制限は適用されません。
注:
現在、この機能はConnector Applianceではサポートされていません。この機能に関連するAzureの制限については、「Azure Private Linkを使用してマネージドディスクのインポート/エクスポートアクセスを制限する」を参照してください。

プロキシを有効にする

プロキシを有効にするには、ホスト接続でカスタムプロパティを次のように設定します。
  1. Remote PowerShell SDK を使用して PowerShell ウィンドウを開きます。詳細については、<https://docs.citrix.com/ja-jp/citrix-daas/sdk-api.html#citrix-virtual-apps-and-desktops-remote-powershell-sdk/> を参照してください。
  2. 次のコマンドを実行します。
    Add-PSSnapin citrix*.
    cd XDHyp:\Connections\
    dir
  3. 接続から CustomProperties をメモ帳にコピーし、プロキシを有効にするためにプロパティ設定 <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" /> を CustomProperties に追加します。例:
    <CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">
    <Property xsi:type="StringProperty" Name="SubscriptionId" Value="4991xxxx-2xxx-4xxx-8xxx-ff59a830xxxx" />
    <Property xsi:type="StringProperty" Name="ManagementEndpoint" Value="https://management.azure.com/" />
    <Property xsi:type="StringProperty" Name="AuthenticationAuthority" Value="https://login.microsoftonline.com/" />
    <Property xsi:type="StringProperty" Name="StorageSuffix" Value="core.windows.net" />
    <Property xsi:type="StringProperty" Name="TenantId" Value="5cxxxxx-9xxx-4xxx-8xxx-dffe3efdxxxx" />
    <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" />
    </CustomProperties>
  4. PowerShell ウィンドウで、変更されたカスタムプロパティに変数を割り当てます。例:
    $customProperty = '<CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">
    <Property xsi:type="StringProperty" Name="SubscriptionId" Value="4991xxxx-2xxx-4xxx-8xxx-ff59a830xxxx" />
    <Property xsi:type="StringProperty" Name="ManagementEndpoint" Value="https://management.azure.com/" />
    <Property xsi:type="StringProperty" Name="AuthenticationAuthority" Value="https://login.microsoftonline.com/" />
    <Property xsi:type="StringProperty" Name="StorageSuffix" Value="core.windows.net" />
    <Property xsi:type="StringProperty" Name="TenantId" Value="5cxxxxx-9xxx-4xxx-8xxx-dffe3efdxxxx" />
    <Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" />
    </CustomProperties>'
  5. $cred = Get-Credential を実行します。プロンプトが表示されたら、接続資格情報を入力します。資格情報は Azure アプリケーション ID とシークレットです。
  6. Set-Item -PSPath XDHyp:\Connections\<Connection_Name> -CustomProperties $customProperty -username $cred.username -Securepassword $cred.password を実行します。
    重要:
    SubscriptionId が見つからないというメッセージが表示された場合は、カスタムプロパティ内のすべての二重引用符 (”) をバッククォートと二重引用符 (`”) に置き換えます。例:
    <CustomProperties xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`" xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`">
    <Property xsi:type=`"StringProperty`" Name=`"SubscriptionId`" Value=`"4991xxxx-2xxx-4xxx-8xxx-ff59a830xxxx`" />
    <Property xsi:type=`"StringProperty`" Name=`"ManagementEndpoint`" Value=`"https://management.azure.com/`" />
    <Property xsi:type=`"StringProperty`" Name=`"AuthenticationAuthority`" Value=`"https://login.microsoftonline.com/`" />
    <Property xsi:type=`"StringProperty`" Name=`"StorageSuffix`" Value=`"core.windows.net`" />
    <Property xsi:type=`"StringProperty`" Name=`"TenantId`" Value=`"5cxxxxx-9xxx-4xxx-8xxx-dffe3efdxxxx`" />
    <Property xsi:type=`"StringProperty`" Name=`"ProxyHypervisorTrafficThroughConnector`" Value=`"True`" />
    </CustomProperties>
  7. 更新された CustomProperties 設定を確認するには、dir を実行します。

リダイレクトされた Azure API トラフィックに Citrix Cloud Connector でシステムプロキシを使用するオプション

すべての外部トラフィックを非透過型プロキシ経由でルーティングするには、カスタムプロパティ UseSystemProxyForHypervisorTrafficOnConnectors を使用してホスト接続を構成します。これにより、Citrix Cloud Connector 上の Azure API インターネットトラフィックがシステムプロキシ経由でリダイレクトされます。
プロキシを有効にする で概説されているのと同じ手順を実行して、カスタムプロパティでホスト接続を構成します。ただし、プロキシを有効にするために、プロパティ設定 <Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True" /> を CustomProperties に必ず追加してください。
<Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True" />
例:
<CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">
<Property xsi:type="StringProperty" Name="SubscriptionId" Value="4991xxxx-2xxx-4xxx-8xxx-ff59a830xxxx" />
<Property xsi:type="StringProperty" Name="ManagementEndpoint" Value="https://management.azure.com/" />
<Property xsi:type="StringProperty" Name="AuthenticationAuthority" Value="https://login.microsoftonline.com/" />
<Property xsi:type="StringProperty" Name="StorageSuffix" Value="core.windows.net" />
<Property xsi:type="StringProperty" Name="TenantId" Value="5cxxxxx-9xxx-4xxx-8xxx-dffe3efdxxxx" />
<Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" />
<Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True" />
</CustomProperties>
注:
このプロパティを設定すると、Citrix Cloud Connector の netsh winhttp 設定で構成されたプロキシが、クラウドサービスプロバイダーへのアウトバウンドトラフィックに使用されます。

アプリケーションシークレットとシークレットの有効期限を管理する

シークレットの有効期限が切れる前に、接続のアプリケーションシークレットを必ず変更してください。シークレットキーの有効期限が切れる前に、Studio でアラートが届きます。

Azure でアプリケーションシークレットを作成する

Azure portal を介して、接続のアプリケーションシークレットを作成できます。
  1. Microsoft Entra ID を選択します。
  2. Microsoft Entra ID の から、アプリケーションを選択します。
  3. に移動します。
  4. > をクリックします。
    アプリケーションシークレットの作成
  5. シークレットの説明を入力し、期間を指定します。完了したら、 を選択します。
    注:
    クライアントシークレットは後で取得できないため、必ず保存してください。
  6. クライアントシークレットの値と有効期限をコピーします。
  7. Studioで、対応する接続を編集し、アプリケーションシークレットおよびシークレットの有効期限フィールドの内容をコピーした値に置き換えます。

シークレットの有効期限を変更する

Studioを使用して、使用中のアプリケーションシークレットの有効期限を追加または変更できます。
  1. 接続とリソースの追加ウィザードで、接続を右クリックし、接続の編集をクリックします。
  2. 接続プロパティページで、シークレットの有効期限をクリックして、使用中のアプリケーションシークレットの有効期限を追加または変更します。
シークレットの有効期限を変更する(/en-us/citrix-daas/media/modify-expiration-date-console.png)

Azure Managed Identityを使用してホスト接続を作成する

Azure Managed Identityを使用して、Microsoft Azure Resource Managerへのホスト接続を作成できます。AzureマネージドIDは、資格情報を管理することなくAzureサービスにアクセスするための安全でスケーラブルな方法を提供します。このアプローチにより、シークレットの保存、ローテーション、管理に関連するリスクが排除されます。
認証モードには3つのオプションがあります。
  • AppClientSecret
  • SystemAssignedManagedIdentity
  • UserAssignedManagedIdentity

始める前に

Azure Managed Identityを使用してホスト接続を作成する前に実行する必要がある手順は次のとおりです。
  1. Azure VMにCitrix Cloud Connector™をインストールします。
  2. そのCloud Connector VMでAzure Managed Identityを有効にします。
    • ユーザー割り当てマネージドIDの場合:
      1. Azureポータルで、ユーザー割り当てマネージドIDを作成します。詳細については、ユーザー割り当てマネージドIDの作成と割り当てを参照してください。
      2. マネージドIDにAzureロールを割り当てます。必要なAzure権限を参照してください。
      3. Cloud ConnectorとしてAzure VMを作成し、それにユーザー割り当てIDを追加します。
    • システム割り当てマネージドIDの場合:
      1. Azureポータルを開き、VMに移動します。
      2. VMの設定で「ID」ブレードを選択します。
      3. システム割り当てタブで、ステータスをオンに設定します。
      4. 保存をクリックします。
      5. 必要なAzure権限を付与します。
      注:
      Cloud Connector VMでシステム割り当てマネージドIDを有効にし、それを使用してホスト接続を作成した場合、Cloud Connector VMで無効にした後でも、システム割り当てマネージドIDを使用してホスト接続を作成できます。IDが無効になってから24時間後でもホスト接続の作成が成功する場合があります。これは、マネージドIDトークンが基盤となるAzureインフラストラクチャによってキャッシュされるためです。詳細については、マネージドIDトークンはキャッシュされますか?を参照してください。

Studioを使用してAzure Managed Identityでホスト接続を作成する

接続とリソースの追加ウィザードで:
  1. 「接続」ページで:
    1. 「新しい接続の作成」、Microsoft Azure接続タイプ、およびAzure環境を選択します。
    2. 仮想マシンを作成するために使用するツールを選択し、「次へ」を選択します。
  2. 「接続の詳細」ページで、「認証モード」を選択します。
    • 「ユーザー割り当てマネージドID」については、次の設定を入力します。詳細を入力したら、「次へ」を選択して次のページに進みます。有効な詳細情報を提供するまで、このページから先に進むことはできません。
      • サブスクリプションID:AzureサブスクリプションIDを入力します。サブスクリプションIDを取得するには、Azureポータルにサインインし、「サブスクリプション > 概要」に移動します。
      • Active Directory ID(テナントID):Microsoft Entra IDに登録したアプリケーションのディレクトリ(テナント)IDを入力します。
      • クライアントID:Azureポータルで作成したマネージドIDのクライアントIDを入力します。
      • 認証URL:このフィールドは自動的に入力され、編集できません。
      • 管理URL:このフィールドは自動的に入力され、編集できません。
      • ストレージサフィックス:このフィールドは自動的に入力され、編集できません。
    • 「システム割り当てマネージドID」については、次の設定を入力します。詳細を入力したら、「次へ」を選択して次のページに進みます。有効な詳細情報を提供するまで、このページから先に進むことはできません。
      • サブスクリプションID:AzureサブスクリプションIDを入力します。サブスクリプションIDを取得するには、Azureポータルにサインインし、「サブスクリプション > 概要」に移動します。
      • Active Directory ID(テナントID):Microsoft Entra IDに登録したアプリケーションのディレクトリ(テナント)IDを入力します。
      • 認証URL:このフィールドは自動的に入力され、編集できません。
      • 管理 URL: このフィールドは自動的に入力され、編集できません。
      • ストレージサフィックス: このフィールドは自動的に入力され、編集できません。

PowerShell を使用して Azure マネージド ID でホスト接続を作成する

新しい CustomProperty AuthenticationMode を使用して、このホスト接続を作成できます。AuthenticationMode には、AppClientSecret、SystemAssignedManagedIdentity、UserAssignedManagedIdentity の 3 つのオプションがあります。認証モードのオプションの説明は次のとおりです。
  • AppClientSecret: これはデフォルト値です。アプリケーション ID とシークレットが必要です。
  • UserAssignedManagedIdentity: これは、UserName を介してクライアント ID を提供する必要があります。
  • SystemAssignedManagedIdentity: これは入力を必要としません。クライアント ID を指定しても無視されます。
注:
PowerShell を使用する場合、マネージド ID を使用するには、パラメーター ProxyHypervisorTrafficThroughConnector を true に設定する必要があります。
  1. PowerShell ウィンドウを開きます。
  2. Citrix 固有の PowerShell モジュールをロードするには、asnp citrix* を実行します。
  3. ホスト接続を作成します。例:
    • ユーザー割り当てマネージド ID の場合:
      $UserName = "should be the Client ID of the user-assigned managed identity"
      $Password = "It can be any string.Not used"

      $CustomProperties = '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' `
      + '<Property xsi:type="StringProperty" Name="SubscriptionId" Value="' + $SubscriptionId + '" />'`
      + '<Property xsi:type="StringProperty" Name="ManagementEndpoint" Value="https://management.azure.com/" />'`
      + '<Property xsi:type="StringProperty" Name="AuthenticationAuthority" Value="https://login.microsoftonline.com/" />'`
      + '<Property xsi:type="StringProperty" Name="StorageSuffix" Value="core.windows.net" />'`
      + '<Property xsi:type="StringProperty" Name="TenantId" Value="' + $TenantId + '" />'`
      + '<Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" />'`
      + '<Property xsi:type="StringProperty" Name="AuthenticationMode" Value="UserAssignedManagedIdentity" />'`
      + '</CustomProperties>'

      New-Item -ConnectionType "Custom" `
      -CustomProperties $CustomProperties `
      -HypervisorAddress @($HypervisorAddress) `
      -Path @("XDHyp:\Connections\$($ConnectionName)") `
      -Metadata $Metadata `
      -Persist `
      -PluginId "AzureRmFactory" `
      -Scope @() `
      -Password $Password `
      -UserName $UserName `
      -ZoneUid $zoneUid
    • システム割り当てマネージド ID の場合:
      $UserName = "It can be any string. Not used"
      $Password = "It can be any string. Not used"  
      $CustomProperties = '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">' `
      + '<Property xsi:type="StringProperty" Name="SubscriptionId" Value="' + $SubscriptionId + '" />'`
      + '<Property xsi:type="StringProperty" Name="ManagementEndpoint" Value="https://management.azure.com/" />'`
      + '<Property xsi:type="StringProperty" Name="AuthenticationAuthority" Value="https://login.microsoftonline.com/" />'`
      + '<Property xsi:type="StringProperty" Name="StorageSuffix" Value="core.windows.net" />'`
      + '<Property xsi:type="StringProperty" Name="TenantId" Value="' + $TenantId + '" />'`
      + '<Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True" />'`
      + '<Property xsi:type="StringProperty" Name="AuthenticationMode" Value="SystemAssignedManagedIdentity" />'`
      + '</CustomProperties>'

      New-Item -ConnectionType "Custom" `
      -CustomProperties $CustomProperties `
      -HypervisorAddress @($HypervisorAddress) `
      -Path @("XDHyp:\Connections\$($ConnectionName)") `
      -Metadata $Metadata `
      -Persist `
      -PluginId "AzureRmFactory" `
      -Scope @() `
      -Password $Password `
      -UserName $UserName `
      -ZoneUid $zoneUid

既存のホスティング接続の Azure マネージド ID を管理する

Studioを使用する

ホスティング接続を作成した後、既存のホスティング接続を更新して、次のいずれかを持つように選択できます。
  • システム割り当てマネージドID
  • ユーザー割り当てマネージドID
  • 新しいユーザー割り当てマネージドID
  1. Studioから、左側のペインでホスティングを選択します。
  2. 接続を選択し、アクションバーで接続の編集を選択します。
  3. 表示される接続プロパティページで、認証モードの編集をクリックします。これで、認証モードを更新することを選択できます。
    • そのホスティング接続にユーザー割り当てマネージドIDを使用するには、ユーザー割り当てマネージドIDをクリックします。入力するクライアントIDに従ってください。
    • そのホスティング接続にシステム割り当てマネージドIDを使用するには、システム割り当てマネージドIDをクリックします。

PowerShellを使用する

PowerShellを使用して、既存のホスト接続を更新し、システム割り当てIDまたはユーザー割り当てマネージドIDを使用することもできます。たとえば、次のPowerShellコマンドを実行します。
  1. PowerShellウィンドウを開きます。
  2. Citrix固有のPowerShellモジュールをロードするには、asnp citrix*を実行します。
  3. 次のコマンドを実行します。
    $connName = "ConnectionName"
    $conn = get-item XDHyp:\Connections\$connName
    $conn.CustomProperties
  4. ProxyHypervisorTrafficThroughConnector を True に変更し、AuthenticationMode のカスタムプロパティを SystemAssignedManagedIdentity または UserAssignedManagedIdentity に設定します。例:
    $customProps = '<CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation"><Property xsi:type="StringProperty" Name="SubscriptionId" Value="subscriptionId" /><Property xsi:type="StringProperty" Name="ManagementEndpoint" Value="https://management.azure.com/" /><Property xsi:type="StringProperty" Name="AuthenticationAuthority" Value="https://login.microsoftonline.com/" /><Property xsi:type="StringProperty" Name="StorageSuffix" Value="core.windows.net" /><Property xsi:type="StringProperty" Name="TenantId" Value="tenantId" /><Property xsi:type="StringProperty" Name="AzureAdDeviceManagement" Value="false" /><Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="true" /><Property xsi:type="StringProperty" Name="AuthenticationMode" Value="SystemAssignedManagedIdentity" /></CustomProperties>'
  5. $cred = Get-Credential を実行します。ここに何か入力してください。
  6. Set-Item -PSPath XDHyp:\Connections\$connName -CustomProperties $CustomProperties -username $cred.username -Securepassword $cred.password を実行します。

Azure 拡張ゾーン

Azure 拡張ゾーンは、既存の Azure リージョンのフットプリントの小さい拡張機能であり、組織がワークロードをユーザーの近くで実行できるようにすることで、パフォーマンスとコンプライアンスを向上させます。Azure 上の MCS は、拡張ゾーン内の VM のプロビジョニングと電源管理をサポートするようになりました。
Azure 拡張ゾーンの詳細については、Microsoft ドキュメントの Azure Extended Zones documentation を参照してください。

ユースケース

この機能は、永続カタログと非永続カタログに適用できます。
  • 電源管理のみのVM: 既存の拡張ゾーンVMを電源管理のみのカタログにインポートし、Citrix MCSで電源管理できます。
  • MCSプロビジョニング済みVM: 新しいVMを拡張ゾーンにプロビジョニングし、MCSで管理できます。この機能には、イメージ管理ワークフローのサポートも含まれています。

制限事項

現在、Azure 拡張ゾーンの使用にはいくつかの制限があります。これらの制限の多くは、現在の Azure の制約によるものです。
  • 専用ホストはサポートされていません。
  • 容量予約はサポートされていません。
  • 近接配置グループはサポートされていません。
  • スポットVMはサポートされていません。
  • 拡張ゾーンではアベイラビリティゾーンはサポートされていません。
  • サポートされているストレージタイプは、StandardSSD_LRS および Premium_LRS のみです。
  • 現在、UseSharedImageGallery 機能を使用して、マスターイメージを拡張ゾーンのAzure Compute Gallery(またはShared Image Gallery)に保存することはできません。その結果、エフェメラルOSディスクもサポートされていません。
  • Azure Compute Galleryのイメージバージョンをマスターイメージとして使用している場合は、使用する前に拡張ゾーンでのレプリケーションが完全に完了していることを確認してください。レプリケーションが完了する前にイメージバージョンを使用しようとすると、展開が失敗する可能性があります。

前提条件

拡張ゾーンを使用する前に、以下の前提条件となる手順を完了していることを確認してください。
  1. Azureへの登録:
    1. 拡張ゾーンはデフォルトでは有効になっていません。
    2. AzureサブスクリプションでMicrosoft.EdgeZonesリソースプロバイダーを登録します: リソースプロバイダーMicrosoft.EdgeZonesのサブスクリプションを登録する。
    3. 必要な各拡張ゾーンを個別に登録します(例: LosAngeles、Perth): Azure拡張ゾーンに登録する。
  2. Citrixリソースの準備:
    1. 拡張ゾーンに仮想ネットワークを作成します。
    2. 必要に応じてマスターイメージとスナップショットを作成します。

必要な権限

拡張ゾーンにカタログを作成するには、サービスプリンシパルに次の権限が必要です: Microsoft.EdgeZones/extendedZones/read。
必要な最小限の権限の詳細については、「最小権限」を参照してください。

構成手順

  1. 拡張ゾーンでホスティングユニットを作成する
    .extendedzoneタイプを使用する拡張ゾーンは、Citrix MCSインベントリのリージョンと並んで表示されます。拡張ゾーンにプロビジョニングするには、その拡張ゾーンに紐付けられた新しいホスティングユニットを作成する必要があります。
    例: ロサンゼルス拡張ゾーンにホスティングユニットを作成する
    $RootPath = "XDHyp:\Connections\MyConnectionName\Los Angeles.extendedzone"

    $NetworkPath = "XDHyp:\Connections\MyConnectionName\Los Angeles.extendedzone\virtualprivatecloud.folder\MyResourceGroup.resourcegroup\MyExtendedZoneNetwork.virtualprivatecloud\MyExtendedZoneSubnet.network"

    $HostingUnitPath = "XDHyp:\HostingUnits\MyHostingUnitName"

    New-Item -HypervisorConnectionName MyConnectionName -NetworkPath @($NetworkPath) -Path @($HostingUnitPath) -RootPath $RootPath -StoragePath @()
  2. 拡張ゾーンでMCSカタログを作成する
    ホスティングユニットを作成したら、StudioまたはPowerShellを使用してカタログ作成に進みます。カタログが拡張ゾーンホスティングユニットを参照していることを確認してください。

トラブルシューティング

問題が発生した場合は、以下を確認してください。
  1. サブスクリプションが拡張ゾーンに登録されていることを確認します。
    1. サブスクリプションがMicrosoft.EdgeZonesリソースプロバイダーに登録されていることを確認します。
    2. 各拡張ゾーンが個別に登録されていることを確認します。
  2. サービスプリンシパルに新しい権限があることを確認します。
    1. サービスプリンシパルにはMicrosoft.EdgeZones/extendedZones/read権限が必要です。
登録または権限が不足している場合、拡張ゾーンのインベントリアイテムは「不明な拡張ゾーン」として表示されることがあります。
注:
拡張ゾーンのマスターイメージを使用して親リージョンにカタログを作成する場合でも、拡張ゾーンの登録と権限が必要です。

事前作成されたネットワークセキュリティグループを使用する

CitrixにNSGの作成と変更を要求する代わりに、イメージ準備用のDeny-Allネットワークセキュリティグループを作成します。ホスティングユニットのカスタムプロパティをPowerShellコマンド Set-Item を使用して編集し、Deny-Allネットワークセキュリティグループを提供するためのパラメーター NsgForPreparation を含めます。

前提条件

サービスプリンシパルに必要な以下の権限を構成します。
  • Microsoft.Network/networkSecurityGroups/join/action: ネットワークセキュリティグループをサブネットまたはネットワークインターフェイスに関連付ける
  • Microsoft.Network/networkSecurityGroups/read: ネットワークセキュリティグループを取得する
  • Microsoft.Network/networkSecurityGroups/securityRules/read: ルールを取得する

事前作成されたDeny-Allネットワークセキュリティグループを追加する

事前作成されたDeny-Allネットワークセキュリティグループを追加するには、ホスティングユニットでカスタムプロパティを次のように設定します。
  1. Remote PowerShell SDKを使用してPowerShellウィンドウを開きます。
  2. 次のコマンドを実行します。
    Add-PSSnapin citrix*.
    cd XDHyp:\HostingUnits\
    Dir
  3. 詳細を取得するホスティングユニットを選択します。
    Get-Item "XDHyp:\HostingUnits\<hostingunitname>"
  4. CustomPropertiesをメモ帳にコピーし、プロパティ設定<Property xsi:type="StringProperty" Name="NsgForPreparation" Value="{ResourceGroupName}/{NetworkSecurityGroupName}"/>を追加します。例:
    <CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"><Property xsi:type=`"StringProperty`" Name=`"NsgForPreparation`" Value=`{ResourceGroupName}/{NetworkSecurityGroupName}`"/></CustomProperties>
  5. PowerShellウィンドウで、変更されたカスタムプロパティに変数を割り当てます。例:
    $customProperty = "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"><Property xsi:type=`"StringProperty`" Name=`"NsgForPreparation`" Value=`"{ResourceGroupName}/{NetworkSecurityGroupName}`"/></CustomProperties>"
  6. $cred = Get-Credentialを実行します。プロンプトが表示されたら、接続資格情報を入力します。資格情報はAzureアプリケーションIDとシークレットです。
  7. 次のコマンドを実行します。
    Set-Item -PSPath XDHyp:\HostingUnits\<hostingunitname> -CustomProperties $customProperty -username $cred.username -Securepassword $cred.password
    重要:
    SubscriptionIdがありませんというメッセージが表示された場合は、カスタムプロパティ内のすべての二重引用符(“)をバッククォートの後に二重引用符(`”)に置き換えてください。
  8. 更新されたCustomProperties設定を確認するには、dirを実行します。
注:
更新が反映されるまでに1分以上かかります。

ネットワークセキュリティグループの詳細を取得する

ネットワークセキュリティグループの詳細を取得するには、まずネットワークセキュリティグループを含むリソースグループを取得し、次にリソースグループ名に基づいてネットワークセキュリティグループを取得します。
  1. ネットワークセキュリティグループを含むリソースグループを取得します。例:
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["networksecuritygroup"]}'
  2. リソースグループ名に基づいてネットワークセキュリティグループを取得します。例:
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType securitygroup -MaxRecords 5 -AdditionalDataFilter '{"location": ["eastus", "westus"], "resourcegroup":["resourcegroupname"]}'

空のリソースグループをフィルターする

マシンカタログ作成時にマスターイメージ、マシンプロファイル、または準備済みイメージを選択する際に、PowerShellコマンドGet-HypInventoryItemを使用して空のリソースグループをフィルターします。
例:
  • ページ内の最大レコード数を取得する:
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5
  • ページ内の最大レコード数を取得し、特定のリソースを持つリソースコンテナを見つけるためにフィルタリングする。
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "manageddisk", "snapshot", "imageversion", "storageaccount"]}'
  • スキップを使用してページを直接指定して取得し、特定のリソースを持つリソースコンテナを見つけるためにフィルタリングする。
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -skip 20 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "manageddisk", "snapshot", "imageversion", "storageaccount"]}'
  • トークンを使用して次のページを取得し、特定のリソースを持つリソースコンテナを見つけるためにフィルタリングする。
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "manageddisk", "snapshot", "imageversion", "storageaccount"]}' -ContinuationToken 'ew0KICAiJGlkIjogIjEiLA0KICAiTWF4Um93cyI6IDUsDQogICJSb3dzVG9Ta2lwIjogMjUsDQogICJLdXN0b0NsdXN0ZXJVcmwiOiAiaHR0cHM6Ly9hcmctbmV1LTEzLXNmLmFyZy5jb3JlLndpbmRvd3MubmV0Ig0KfQ=='
  • タグ「Citrix internal tag」を持つすべてのリソースグループを取得し、MaxRecordsで最大レコード数を制限する。
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5
  • タグ「Citrix internal tag」を持つマシンプロファイル(マスターイメージ)をフィルタリングし、MaxRecordsで最大レコード数を制限する。
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "templatespecversion"]}'
  • タグ「Citrix internal tag」を持つ準備済みイメージをフィルタリングし、MaxRecordsで最大レコード数を制限する。
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion"]}'
  • タグ「Citrix internal tag」を持つマシンプロファイル(準備済みイメージ)をフィルタリングし、MaxRecordsで最大レコード数を制限する。
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "templatespecversion"]}'
  • タグ「Citrix internal tag」を持つイメージをフィルタリングし、MaxRecordsと場所で最大レコード数を制限する。
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion", "storageaccount"], "location": ["eastus", "westus"]}'
  • タグを考慮せずにすべてのリソースグループを取得する CitrixResource。
    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 50 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion", "storageaccount"]}' -Force $true

必要なAzure権限

このセクションでは、Azureに必要な最小限の権限と一般的な権限について詳しく説明します。

最小限の権限

最小限の権限は、より優れたセキュリティ制御を提供します。ただし、追加の権限を必要とする新機能は、最小限の権限しか与えられていない場合、失敗します。このセクションでは、アクションごとの最小限の権限を一覧表示します。

ホスト接続の作成

Azureから取得した情報を使用してホスト接続を追加します。
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/disks/read",
"Microsoft.Resources/providers/read",
"Microsoft.Resources/subscriptions/locations/read",
"Microsoft.Resources/tenants/read",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/securityRules/read",
"Microsoft.EdgeZones/extendedZones/read"

VMの電源管理

マシンインスタンスの電源をオンまたはオフにします。
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Insights/diagnosticsettings/delete",
"Microsoft.Insights/diagnosticsettings/read",
"Microsoft.Insights/diagnosticsettings/write",

VMの作成、更新、または削除

マシンカタログを作成し、マシンを追加、削除、更新し、マシンカタログを削除します。
ホスト接続と同じリージョンにあるマネージドディスクまたはスナップショットがマスターイメージである場合に必要となる最小限の権限のリストを以下に示します。
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Resources/tags/read",
"Microsoft.Resources/tags/write",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/snapshots/read",
"Microsoft.Compute/snapshots/write",
"Microsoft.Compute/snapshots/delete",
"Microsoft.Compute/snapshots/beginGetAccess/action",
"Microsoft.Compute/snapshots/endGetAccess/action",
"Microsoft.Compute/disks/read",
"Microsoft.Compute/disks/write",
"Microsoft.Compute/disks/delete",
"Microsoft.Compute/disks/beginGetAccess/action",
"Microsoft.Compute/disks/endGetAccess/action",
"Microsoft.Compute/locations/publishers/artifacttypes/types/versions/read",
"Microsoft.Compute/skus/read",
"Microsoft.Compute/virtualMachines/extensions/read",
"Microsoft.Compute/virtualMachines/extensions/write",
"Microsoft.Features/providers/features/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/write",
"Microsoft.Network/networkSecurityGroups/delete",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkInterfaces/read",
"Microsoft.Network/networkInterfaces/write",
"Microsoft.Network/networkInterfaces/delete",
"Microsoft.Network/networkInterfaces/join/action",
"Microsoft.Network/locations/usages/read",
"Microsoft.Compute/capacityReservationGroups/capacityReservations/read",
"Microsoft.Compute/capacityReservationGroups/deploy/action"
以下の機能については、最小限の権限に加えて、以下の追加権限が必要です。
  • マスターイメージが、ホスト接続と同じリージョンのストレージアカウントにあるVHDである場合:
    "Microsoft.Storage/storageAccounts/read",
    "Microsoft.Storage/storageAccounts/listKeys/action",
  • マスターイメージがAzure Compute Gallery(旧Shared Image Gallery)のImageVersionである場合:
    "Microsoft.Compute/galleries/read",
    "Microsoft.Compute/galleries/images/read",
    "Microsoft.Compute/galleries/images/versions/read",
  • マスターイメージが、ホスト接続のリージョンとは異なるリージョンにあるマネージドディスク、スナップショット、またはVHDである場合:
    "Microsoft.Storage/storageAccounts/read",
    "Microsoft.Storage/storageAccounts/listKeys/action",
    "Microsoft.Storage/storageAccounts/write",
    "Microsoft.Storage/storageAccounts/delete",
    "Microsoft.Storage/checknameavailability/read",
    "Microsoft.Storage/locations/usages/read",
    "Microsoft.Storage/skus/read",
  • Citrix管理のリソースグループを使用する場合:
    "Microsoft.Resources/subscriptions/resourceGroups/write",
    "Microsoft.Resources/subscriptions/resourceGroups/delete",
  • マスターイメージを共有テナントまたはサブスクリプションのAzure Compute Gallery(旧Shared Image Gallery)に配置する場合:
    "Microsoft.Compute/galleries/write",
    "Microsoft.Compute/galleries/images/write",
    "Microsoft.Compute/galleries/images/versions/write",
    "Microsoft.Compute/galleries/read",
    "Microsoft.Compute/galleries/images/read",
    "Microsoft.Compute/galleries/images/versions/read",
    "Microsoft.Compute/galleries/delete",
    "Microsoft.Compute/galleries/images/delete",
    "Microsoft.Compute/galleries/images/versions/delete",
    "Microsoft.Resources/subscriptions/read",
  • Azure専用ホストサポートを使用する場合:
    "Microsoft.Compute/hostGroups/read",
    "Microsoft.Compute/hostGroups/write",
    "Microsoft.Compute/hostGroups/hosts/read",
  • カスタマーマネージドキー(CMK)を使用したサーバー側暗号化(SSE)を使用する場合:
    "Microsoft.Compute/diskEncryptionSets/read",
  • ARM テンプレート (マシンプロファイル) を使用して VM を展開する場合:
    "Microsoft.Resources/deployments/write",
    "Microsoft.Resources/deployments/operationstatuses/read",
    "Microsoft.Resources/deployments/read",
    "Microsoft.Resources/deployments/delete",
    "Microsoft.Insights/DataCollectionRuleAssociations/Read",
    "Microsoft.Insights/dataCollectionRules/read",
  • Azure テンプレート仕様をマシンプロファイルとして使用する場合:
    "Microsoft.Resources/templateSpecs/read",
    "Microsoft.Resources/templateSpecs/versions/read",

アンマネージドディスクを使用したマシンの作成、更新、削除

マスターイメージが VHD であり、管理者が提供するリソースグループを使用する場合に必要となる最小限の権限のリストは次のとおりです。
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/tags/read",
"Microsoft.Resources/tags/write",
"Microsoft.Storage/storageAccounts/delete",
"Microsoft.Storage/storageAccounts/listKeys/action",
"Microsoft.Storage/storageAccounts/read",
"Microsoft.Storage/storageAccounts/write",
"Microsoft.Storage/checknameavailability/read",
"Microsoft.Storage/locations/usages/read",
"Microsoft.Storage/skus/read",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Network/networkInterfaces/delete",
"Microsoft.Network/networkInterfaces/join/action",
"Microsoft.Network/networkInterfaces/read",
"Microsoft.Network/networkInterfaces/write",
"Microsoft.Network/networkSecurityGroups/delete",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/write",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.Network/locations/usages/read"

コスト管理

VM の価格を取得するために必要な最小限の権限は次のとおりです。
"Microsoft.Consumption/pricesheets/read"
VM のコストを取得するために必要な最小限の権限は次のとおりです。
"Microsoft.CostManagement/query/read"
注:
Azure マシンカタログの Cost Insights タブを表示するには、Cost Management > Manage > Read cost 権限 (Cloud Administrators のデフォルト) が必要です。Cost Insights タブの詳細については、「カタログの詳細を表示」を参照してください。

一般的な権限

共同作成者ロールは、すべてのリソースを管理するためのフルアクセス権を持っています。この権限セットは、新機能の取得を妨げるものではありません。
以下の権限セットは、現在の機能セットで必要とされる以上の権限が含まれていますが、今後も最高の互換性を提供します。
"Microsoft.Compute/diskEncryptionSets/read",
"Microsoft.Compute/disks/beginGetAccess/action",
"Microsoft.Compute/disks/delete",
"Microsoft.Compute/disks/endGetAccess/action",
"Microsoft.Compute/disks/read",
"Microsoft.Compute/disks/write",
"Microsoft.Compute/galleries/delete",
"Microsoft.Compute/galleries/images/delete",
"Microsoft.Compute/galleries/images/read",
"Microsoft.Compute/galleries/images/versions/delete",
"Microsoft.Compute/galleries/images/versions/read",
"Microsoft.Compute/galleries/images/versions/write",
"Microsoft.Compute/galleries/images/write",
"Microsoft.Compute/galleries/read",
"Microsoft.Compute/galleries/write",
"Microsoft.Compute/hostGroups/hosts/read",
"Microsoft.Compute/hostGroups/read",
"Microsoft.Compute/hostGroups/write",
"Microsoft.Compute/snapshots/beginGetAccess/action",
"Microsoft.Compute/snapshots/delete",
"Microsoft.Compute/snapshots/endGetAccess/action",
"Microsoft.Compute/snapshots/read",
"Microsoft.Compute/snapshots/write",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Compute/locations/publishers/artifacttypes/types/versions/read",
"Microsoft.Compute/skus/read",
"Microsoft.Compute/virtualMachines/extensions/read",
"Microsoft.Compute/virtualMachines/extensions/write",
"Microsoft.Network/networkInterfaces/delete",
"Microsoft.Network/networkInterfaces/join/action",
"Microsoft.Network/networkInterfaces/read",
"Microsoft.Network/networkInterfaces/write",
"Microsoft.Network/networkSecurityGroups/delete",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/write",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.Network/locations/usages/read",
"Microsoft.Resources/deployments/operationstatuses/read",
"Microsoft.Resources/deployments/read",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Resources/deployments/write",
"Microsoft.Resources/deployments/delete",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/subscriptions/resourceGroups/write",
"Microsoft.Resources/subscriptions/resourceGroups/delete",
"Microsoft.Resources/providers/read",
"Microsoft.Resources/subscriptions/locations/read",
"Microsoft.Resources/subscriptions/read",
"Microsoft.Resources/tags/read",
"Microsoft.Resources/tags/write",
"Microsoft.Resources/tenants/read",
"Microsoft.Resources/templateSpecs/read",
"Microsoft.Resources/templateSpecs/versions/read",
"Microsoft.Storage/storageAccounts/delete",
"Microsoft.Storage/storageAccounts/listKeys/action",
"Microsoft.Storage/storageAccounts/read",
"Microsoft.Storage/storageAccounts/write",
"Microsoft.Storage/checknameavailability/read",
"Microsoft.Storage/locations/usages/read",
"Microsoft.Storage/skus/read",
"Microsoft.Features/providers/features/read",
"Microsoft.Insights/DataCollectionRuleAssociations/Read",
"Microsoft.Insights/dataCollectionRules/read",
"Microsoft.Insights/diagnosticsettings/delete",
"Microsoft.Insights/diagnosticsettings/read",
"Microsoft.Insights/diagnosticsettings/write",
"Microsoft.Compute/capacityReservationGroups/capacityReservations/read",
"Microsoft.Consumption/pricesheets/read",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/securityRules/read",
"Microsoft.Compute/capacityReservationGroups/deploy/action",
"Microsoft.EdgeZones/extendedZones/read"

必要な Azure ホスト接続権限を構成する

ホスト接続に紐付けられた Azure のサービスプリンシパルまたはユーザーアカウントがすべての MCS 操作を実行するために必要な最小限の権限は、ARM テンプレートを使用して簡単に構成できます。この ARM テンプレートは、以下を自動化します。
  • 操作に必要な最小限の権限を持つ Azure ロールの作成。
  • このロールを既存のAzureサービスプリンシパルにサブスクリプションレベルで割り当てる。
このARMテンプレートは、Azure PortalまたはPowerShellコマンドを使用して展開できます。詳細については、Citrix Virtual Apps and Desktops Operations用ARMテンプレートを参照してください。

ホスト接続の権限を検証する

ホスト接続の権限を検証して、MCSマシンカタログの作成と管理に関連するタスクを実行できます。この実装は、VMの作成、削除、更新、VMの電源管理など、さまざまなシナリオに必要な不足している権限を事前に特定するのに役立ち、重要な時期にブロックされるのを回避できます。
PowerShellコマンド Test-HypHypervisorConnection を使用して、ホスト接続の権限を検証できます。コマンドの結果はリストとしてキャプチャされ、リスト内の各項目は3つのセクションに分かれています。
  • カテゴリ: ユーザーがMCSマシンカタログを作成および管理するために実行できるアクションまたはタスク。
  • 修正措置: 管理者がユーザーの不足している権限の不一致を解決するために実行する必要がある手順。
  • 不足している権限: カテゴリの不足している権限のリスト。
権限を検証するには、次の手順を実行します。
  1. Azureへのホスト接続を作成します。
  2. Delivery Controller™ホストからPowerShellウィンドウを開きます。
  3. Citrix固有のPowerShellモジュールをロードするには、asnp citrix* を実行します。
  4. 接続をテストするために必要な権限があるかどうかを確認するには、次のコマンドを実行します。
    Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AzureCon"
    SPNに必要なロールレベルの権限:
    • Microsoft.Authorization/roleDefinitions/read (サブスクリプションレベル、またはリソースグループが指定されている場合はリソースグループレベル)
    • Microsoft.Authorization/roleAssignments/read (サブスクリプションレベル、またはリソースグループが指定されている場合はリソースグループレベル)
    SPN に必要な API レベルの権限:
    Microsoft.Graph:
    • Application.Read.All
    • Directory.Read.All
    • ServicePrincipalEndpoint.Read.All
  5. 権限を検索するために必要な不足している権限を追加した後、次のコマンドを実行して、さまざまなカテゴリで権限があるかどうかを確認します。
    例:
    より高いレベルの承認が必要なサブスクリプションレベルで接続をテストするには:
    Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\ AzureCon -SecurePassword $password -UserName 922e65d5-38ae-4cf5-xxxx-xxxxxxxxx
    例:
    高いレベルの承認なしでリソースグループレベルで接続をテストするには:
    Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\testles -CustomProperties $customProperties | Format-List
    注:
    CustomProperties パラメーターは、リソースグループが接続固有の情報であるため、リソースグループレベルを提供するために使用されます。
    例:
    リソースグループレベルでより高いレベルの承認を使用して接続をテストするには:
    Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\testles -SecurePassword $password -UserName 922e65d5-38ae-4cf5-832b-54122196b7dd -CustomProperties $customProperties
アクセス許可については、必要なAzureアクセス許可を参照してください。

次のステップ

詳細情報