Citrix DaaS™

Microsoft Azureへの接続

接続とリソースの作成および管理では、接続を作成するウィザードについて説明しています。以下の情報は、Azure Resource Managerクラウド環境に固有の詳細を扱います。

注:

Microsoft Azureへの接続を作成する前に、Azureアカウントをリソースの場所として設定を完了する必要があります。Microsoft Azure Resource Manager仮想化環境を参照してください。

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

  • 接続を作成する前に、接続がAzureリソースにアクセスするために使用するサービスプリンシパルを設定する必要があります。接続は次の2つの方法で作成できます。

  • Studioを使用してサービスプリンシパルと接続を同時に作成
  • 以前に作成したサービスプリンシパルを使用して接続を作成

このセクションでは、以下のタスクを完了する方法を示します。

考慮事項

  • 開始する前に、以下の考慮事項に注意してください。

  • 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にあなたとしてアクセス**
    > -  **アプリケーションの読み取りと書き込み**
    > -  **サインインとプロファイルの読み取り**
    > -  **アクセスを許可したデータへのアクセスを維持**
    
    1. 同意を選択すると、接続の詳細ページに戻ります

      注:

      Azureへの認証が成功すると、新規作成ボタンと既存を使用ボタンは表示されなくなります。接続成功というテキストが緑色のチェックマークとともに表示され、Azureサブスクリプションへの接続が成功したことを示します

    1. APIリクエストをCitrix Cloud™ Connector経由でAzureにルーティングするには、Citrix Cloud Connector経由でトラフィックをルーティングチェックボックスをオンにします。Cloud Connectorに直接インターネットアクセスがない場合、Citrix Cloud Connectorで構成されたプロキシを使用を選択して、Azure接続がCitrix Cloud Connector経由で正しく機能するようにすることができます

      または、PowerShellを使用してこの機能を有効にすることもできます。詳細については、「Azure管理トラフィックのセキュアな環境を作成」を参照してください

      注:

      このオプションは、展開にアクティブなCitrix Cloud Connectorがある場合にのみ利用できます。現在、この機能はConnector Appliancesではサポートされていません

  1. 次へを選択します。

注:

Azureへの認証に成功し、必要な権限の付与に同意するまで、次のページに進むことはできません。

  1. 接続のリソースを次のように構成します。

    • リージョンページで、リージョンを選択します。
    • ネットワークページで、以下を実行します。
      • リージョンとネットワークの組み合わせを識別するために、1~64文字のリソース名を入力します。リソース名には、空白のみ、または文字\/;:#.*?=<>|[]{}"'()'を含めることはできません。
      • 仮想ネットワーク/リソースグループのペアを選択します。(同じ名前の仮想ネットワークが複数ある場合、ネットワーク名とリソースグループをペアにすることで、一意の組み合わせが提供されます。)前のページで選択したリージョンに仮想ネットワークがない場合は、そのページに戻り、仮想ネットワークがあるリージョンを選択します。
  2. 概要ページで、設定の概要を確認し、完了を選択してセットアップを完了します。

アプリケーションIDの表示

接続を作成した後、その接続がAzureリソースへのアクセスに使用するアプリケーションIDを表示できます。

  • 接続とリソースリストで、接続を選択して詳細を表示します。詳細タブにアプリケーションIDが表示されます。

    • 「接続とリソースの追加」ページでのアプリケーションID

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`
  1. サービスプリンシパルを作成する Azure Resource Manager サブスクリプションを選択します。

    Get-AzSubscription -SubscriptionId $subscriptionId | Select-AzSubscription

      1. AD テナントにアプリケーションを作成します。
    • $AzureADApplication = New-AzADApplication -DisplayName $ApplicationName

      1. サービスプリンシパルを作成します。
      • New-AzADServicePrincipal -ApplicationId $AzureADApplication.AppId

        1. サービスプリンシパルにロールを割り当てます。
      • New-AzRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $AzureADApplication.AppId –scope /subscriptions/$SubscriptionId
  2. PowerShell コンソールの出力ウィンドウから ApplicationId をメモします。ホスト接続を作成する際に、この ID を指定します。

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

    -  [既存のサービスプリンシパルを使用した接続の作成](#create-a-connection-using-an-existing-service-principal)を行うには、まず Azure portal でサービスプリンシパルのアプリケーションIDとシークレットを取得する必要があります。

詳細な手順は次のとおりです。

  1. Studio または PowerShell を使用して アプリケーションID を取得します。
      1. Azure portal にサインインします。
      1. Azure で Microsoft Entra ID を選択します。
      1. Microsoft Entra ID の [アプリの登録] から、アプリケーションを選択します。
      1. [証明書とシークレット] に移動します。
      1. [クライアントシークレット] をクリックします。
    -  ![Azure portal でのアプリケーションシークレット](/en-us/citrix-daas/media/secret-id-azure-portal.png)
    

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

既存のサービスプリンシパルがある場合は、それを使用して Studio で接続を作成できます。

以下の項目を準備してください。

    -  サブスクリプションID

詳細な手順は次のとおりです。

[接続とリソースの追加] ウィザードで、次の手順を実行します。

    1. [接続] ページで、[新しい接続の作成][Microsoft Azure] 接続の種類、および Azure 環境を選択します。
  1. 仮想マシンの作成に使用するツールを選択し、[次へ] を選択します。
    1. [接続の詳細] ページで、[アプリケーションクライアントシークレット] 認証モードを選択し、Azure サブスクリプションIDと接続の名前を入力します。

    注:

    接続名には 1~64 文字を含めることができ、空白のみ、または文字 \/;:#.*?=<>|[]{}"'() を含めることはできません。

  1. [既存のものを使用] を選択します。[既存のサービスプリンシパルの詳細] ウィンドウで、既存のサービスプリンシパルに対して以下の設定を入力します。詳細を入力すると、[保存] ボタンが有効になります。[保存] を選択します。有効な詳細情報を提供するまで、このページから先に進むことはできません。

    • サブスクリプションID。Azure サブスクリプションIDを入力します。サブスクリプションIDを取得するには、Azure portal にサインインし、[サブスクリプション] > [概要] に移動します。
    • 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。この (*) は Key Vault 名のワイルドカード文字です。例: https://<your-key-vault-name>.vault.azure.net
    • Service Bus サフィックス: https://*.servicebus.windows.net。この (*) はグローバル Azure クラウドで作成された名前空間のワイルドカード文字です。例: https://{serviceNamespace}.servicebus.windows.net/{path}
  1. 保存を選択すると、接続の詳細ページに戻ります。次へを選択して次のページに進みます。

  2. 接続のリソースを次のように構成します。

    • リージョンページで、リージョンを選択します。
    • ネットワークページで、次の操作を行います。
      • リージョンとネットワークの組み合わせを識別するのに役立つ、1~64文字のリソース名を入力します。リソース名には、空白文字のみ、または文字 \/;:#.*?=<>|[]{}"'()'を含めることはできません。
      • 仮想ネットワーク/リソースグループのペアを選択します。(同じ名前の仮想ネットワークが複数ある場合、ネットワーク名とリソースグループをペアにすることで一意の組み合わせが提供されます。)前のページで選択したリージョンに仮想ネットワークがない場合は、そのページに戻り、仮想ネットワークがあるリージョンを選択します。
  3. サマリーページで、設定の概要を確認し、完了を選択してセットアップを完了します。

サービスプリンシパルと接続の管理

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

-  [Azure スロットリング設定の構成](#configure-azure-throttling-settings)
-  [既存のホスティング接続のサービスプリンシパルの管理](#manage-service-principal-of-an-existing-hosting-connection)

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 から、左側のペインでホスティングを選択します。 - 1. 編集する Azure 関連の接続を選択します。 - 1. 接続の編集ウィザードで、詳細設定を選択します。 - 1. 詳細設定ページで、構成オプションを使用して、同時アクションの数、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 で必要な設定を行う必要があります。

    -  [テナント内でのイメージ共有(サブスクリプション間)](#share-images-within-a-tenant-across-subscriptions)

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

異なるサブスクリプションに属する Azure Compute Gallery のイメージを選択するには、そのサブスクリプションのサービスプリンシパル(SPN)とイメージを共有する必要があります。

たとえば、Studio で次のように構成されているサービスプリンシパル(SPN 1)がある場合:

サービスプリンシパル: SPN 1

サブスクリプション: subscription 1

テナント: tenant 1

-  イメージが別のサブスクリプションにあり、Studio で次のように構成されている場合:

-  サブスクリプション: サブスクリプション 2

テナント: テナント 1

サブスクリプション 2 のイメージをサブスクリプション 1 (SPN 1) と共有する場合は、サブスクリプション 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
    <!--NeedCopy-->
    

    詳細については、「テナント 2 へのアクセス許可」を参照してください。

  3. アプリケーションにテナント 2 のリソースグループへのアクセスを許可します。テナント 2 としてサインインし、ギャラリーイメージを持つリソースグループにアプリケーション登録へのアクセスを許可します。詳細については、「テナント間の要求の認証」を参照してください。

Studio を使用した接続への共有テナントの追加

Studio でマシンカタログを作成または更新する際に、異なる Azure テナントおよびサブスクリプション (Azure Compute Gallery を介して共有) から共有イメージを選択できます。この機能では、関連するホスト接続の共有テナントおよびサブスクリプション情報を提供する必要があります。

注:

テナント間でのイメージ共有を有効にするために、Azure で必要な設定を構成済みであることを確認してください。詳細については、「テナント間でのイメージ共有」を参照してください。

接続に対して次の手順を完了します。

  1. Studio から、左ペインで [ホスティング] を選択します。
  2. 接続を選択し、アクションバーで [接続の編集] を選択します。

    Shared tenants

  3. [共有テナント] で、次の操作を実行します。
    1. 接続のサブスクリプションに関連付けられているアプリケーション ID とアプリケーションシークレットを指定します。DaaS はこの情報を使用して Microsoft Entra ID に対して認証を行います。
    2. Azure Compute Gallery を接続のサブスクリプションと共有するテナントとサブスクリプションを追加します。最大 8 つの共有テナントと、各テナントにつき 8 つのサブスクリプションを追加できます。
  4. 完了したら、[適用] を選択して行った変更を適用し、ウィンドウを開いたままにするか、[OK] を選択して変更を適用し、ウィンドウを閉じます。

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

このセクションでは、PowerShell を使用してイメージを共有するプロセスについて説明します。

-  [別のサブスクリプションからのイメージの選択](#select-an-image-from-a-different-subscription)
    -  [共有テナント ID を使用したホスティング接続カスタムプロパティの更新](#update-hosting-connection-custom-properties-with-shared-tenant-ids)
    -  [別のテナントからのイメージの選択](#select-an-image-from-a-different-tenant)

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

同じ Azure テナント内の別の共有サブスクリプションに属する Azure Compute Gallery のイメージを選択して、PowerShell コマンドを使用して MCS カタログを作成および更新できます。

  1. ホスティングユニットのルートフォルダーに、Citrix は sharedsubscription という新しい共有サブスクリプションフォルダーを作成します。
  2. テナント内のすべての共有サブスクリプションを一覧表示します。

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\sharedsubscription.folder"
    <!--NeedCopy-->
    
  3. 1 つの共有サブスクリプションを選択し、その共有サブスクリプションのすべての共有リソースグループを一覧表示します。

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription"
    <!--NeedCopy-->
    
  4. リソースグループを選択し、そのリソースグループのすべてのギャラリーを一覧表示します。

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup"
    <!--NeedCopy-->
    
  5. ギャラリーを選択し、そのギャラリーのすべてのイメージ定義を一覧表示します。

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\testgallery.gallery"
    <!--NeedCopy-->
    
  6. 1 つのイメージ定義を選択し、そのイメージ定義のすべてのイメージバージョンを一覧表示します。

    Get-ChildItem -Path "XDhyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\sigtestdef.imagedefinition"
    <!--NeedCopy-->
    
  7. 次の要素を使用して MCS カタログを作成および更新します。

    -  リソースグループ
    -  ギャラリー
    -  ギャラリーイメージ定義
    -  ギャラリーイメージバージョン
    

共有テナント ID を使用したホスティング接続カスタムプロパティの更新

Set-Item を使用して、共有テナント ID とサブスクリプション ID でホスティング接続のカスタムプロパティを更新します。CustomPropertiesSharedTenants プロパティを追加します。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"]}]
<!--NeedCopy-->

例:


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

<!--NeedCopy-->

注:

複数のテナントを追加できます。各テナントは複数のサブスクリプションを持つことができます。

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

PowerShellコマンドを使用してMCSカタログを作成および更新するために、別のAzureテナントに属するAzure Compute Galleryのイメージを選択できます。

    -  1.  ホスティングユニットのルートフォルダーに、Citrixは`sharedsubscription`という新しい共有サブスクリプションフォルダーを作成します。
    -  1.  すべての共有サブスクリプションを一覧表示します。

    -  ```
    -  Get-ChildItem XDHyp:\HostingUnits\azres\sharedsubscription.folder
    -  <!--NeedCopy--> ```

    -  1.  1つの共有サブスクリプションを選択し、その共有サブスクリプションのすべての共有リソースグループを一覧表示します。

    ```
    -  Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription
    <!--NeedCopy--> ```
  1. リソースグループを選択し、そのリソースグループのすべてのギャラリーを一覧表示します。
    -  Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\ xyz.resourcegroup
<!--NeedCopy-->
  1. ギャラリーを選択し、そのギャラリーのすべてのイメージ定義を一覧表示します。

    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery
    <!--NeedCopy-->
    
  2. 1つのイメージ定義を選択し、そのイメージ定義のすべてのイメージバージョンを一覧表示します。

    Get-ChildItem XDHyp:\HostingUnits\azres\image.folder\abc123.sharedsubscription\xyz.resourcegroup\efg.gallery\hij.imagedefinition
    <!--NeedCopy-->
    
    +  1.  次の要素を使用してMCSカタログを作成および更新します。
    
    • リソースグループ
    • ギャラリー
    • ギャラリーイメージ定義
    • ギャラリーイメージバージョン

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

MCSを使用すると、ネットワークトラフィック(Citrix CloudからAzureハイパーバイザーへのAPI呼び出し)を環境内のCloud Connector経由でルーティングできます。この実装により、特定のIPアドレスからのネットワークトラフィックを許可するようにAzureサブスクリプションをロックダウンできます。これを行うには、CustomPropertiesProxyHypervisorTrafficThroughConnectorを追加します。カスタムプロパティを設定した後、Azure管理ディスクへのプライベートディスクアクセスを可能にするAzureポリシーを構成できます。

新しいディスクごとにプライベートエンドポイントを使用するようにディスクアクセスを自動的に作成するAzureポリシーを構成した場合、Azureによって強制されるように、同じディスクアクセスオブジェクトで同時に5つを超えるディスクまたはスナップショットをアップロードまたはダウンロードすることはできません。この制限は、リソースグループレベルでAzureポリシーを構成する場合は各マシンカタログに適用され、サブスクリプションレベルでAzureポリシーを構成する場合はすべてのマシンカタログに適用されます。 新しいディスクごとにプライベートエンドポイントを使用するようにディスクアクセスを自動的に作成するAzureポリシーを構成しない場合、5つの同時操作の制限は適用されません。

注:

現在、この機能はConnector Applianceではサポートされていません。この機能に関連するAzureの制限については、「Azure Private Linkを使用してマネージドディスクのインポート/エクスポートアクセスを制限する」を参照してください。

プロキシの有効化

プロキシを有効にするには、ホスト接続でカスタムプロパティを次のように設定します。

  1. Remote PowerShell SDKを使用してPowerShellウィンドウを開きます。詳細については、https://docs.citrix.com/en-us/citrix-daas/sdk-api.html#citrix-virtual-apps-and-desktops-remote-powershell-sdk/を参照してください。 + 1. 次のコマンドを実行します。

    ```
    +  Add-PSSnapin citrix*.
    +  cd XDHyp:\Connections\
    +  dir
    <!--NeedCopy--> ```
    
  2. 接続から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>
    <!--NeedCopy-->
    
  3. 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>'
<!--NeedCopy-->
  1. $cred = Get-Credentialを実行します。プロンプトが表示されたら、接続資格情報を入力します。資格情報はAzureアプリケーションIDとシークレットです。
  2. 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>
    <!--NeedCopy-->
    
    1. dirを実行して、更新されたCustomProperties設定を確認します。

リダイレクトされた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" />
<!--NeedCopy-->

例:


<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>
<!--NeedCopy-->

注:

このプロパティを設定すると、Citrix Cloud Connector の netsh winhttp 設定で構成されたプロキシが、クラウドサービスプロバイダーへのアウトバウンドトラフィックに使用されます。

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

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

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

Azure portal を介して、接続のアプリケーションシークレットを作成できます。

  1. Microsoft Entra ID を選択します。
  2. Microsoft Entra ID の [アプリの登録] から、アプリケーションを選択します。
  3. [証明書とシークレット] に移動します。
  4. [クライアントシークレット] > [新しいクライアントシークレット] をクリックします。

    アプリケーションシークレットの作成

  5. シークレットの説明を入力し、期間を指定します。完了したら、[追加] を選択します。

    注:

    クライアントシークレットは後で取得できないため、必ず保存してください。

    1. クライアントシークレットの値と有効期限をコピーします。
    1. Studio で、対応する接続を編集し、[アプリケーションシークレット] および [シークレットの有効期限] フィールドの内容をコピーした値に置き換えます。

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

Studio を使用して、使用中のアプリケーションシークレットの有効期限を追加または変更できます。

  1. [接続とリソースの追加] ウィザードで、接続を右クリックし、[接続の編集] をクリックします。
  2. [接続プロパティ] ページで、[シークレットの有効期限] をクリックして、使用中のアプリケーションシークレットの有効期限を追加または変更します。

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

Azure マネージドID を使用したホスト接続の作成

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

[認証モード] には、次の3つのオプションがあります。

  • AppClientSecret
  • SystemAssignedManagedIdentity
  • UserAssignedManagedIdentity

開始する前に

Azure マネージドID を使用してホスト接続を作成する前に、次の手順を実行する必要があります。

  1. Azure VM に Citrix Cloud Connector™ をインストールします。
  2. その Cloud Connector VM で Azure マネージドID を有効にします。

    • ユーザー割り当てマネージドID の場合:

      1. Azure portal で、ユーザー割り当てマネージドID を作成します。詳しくは、「ユーザー割り当てマネージドID の作成と割り当て」を参照してください。
      2. マネージドID に Azure ロールを割り当てます。「必要な Azure 権限」を参照してください。
      3. Cloud Connector として Azure VM を作成し、それにユーザー割り当てID を追加します。
    • システム割り当てマネージドID の場合:

      1. Azure portal を開き、VM に移動します。
      2. VM の設定で [ID] ブレードを選択します。
      3. [システム割り当て済み] タブで、ステータスを [オン] に設定します。
      4. [保存] をクリックします。
      5. 必要な Azure 権限を付与します。

      注:

      Cloud Connector VM でシステム割り当てマネージドID を有効にし、それを使用してホスト接続を作成した場合、Cloud Connector VM で無効にした後でも、システム割り当てマネージドID を使用してホスト接続を作成できます。ID が無効になってから24時間後でも、ホスト接続の作成は成功する可能性があります。これは、マネージドID トークンが基盤となる Azure インフラストラクチャによってキャッシュされるために発生します。詳しくは、「マネージドID トークンはキャッシュされますか?」を参照してください。

Studio を使用した Azure マネージドID でのホスト接続の作成

  • [接続とリソースの追加] ウィザードで:
  1. [接続] ページで:
    1. [新しい接続の作成]、Microsoft Azure 接続の種類、および Azure 環境を選択します。
    1. 仮想マシンの作成に使用するツールを選択し、[次へ] を選択します。
  1. [接続の詳細] ページで、[認証モード] を選択します。

    • [ユーザー割り当てマネージドID] の場合は、次の設定を入力します。詳細を入力したら、[次へ] を選択して次のページに進みます。有効な詳細情報を提供するまで、このページから先に進むことはできません。

      • サブスクリプションID: Azure サブスクリプションID を入力します。サブスクリプションID を取得するには、Azure portal にサインインし、[サブスクリプション] > [概要] に移動します。
      • Active Directory ID (テナントID): Microsoft Entra ID に登録したアプリケーションのディレクトリ (テナント) ID を入力します。
      • クライアントID: Azure portal で作成したマネージドID のクライアントID を入力します。
      • 認証URL: このフィールドは自動的に入力され、編集できません。
      • 管理URL: このフィールドは自動的に入力され、編集できません。
      • ストレージサフィックス: このフィールドは自動的に入力され、編集できません。
    • [システム割り当てマネージドID] の場合は、次の設定を入力します。詳細を入力したら、[次へ] を選択して次のページに進みます。有効な詳細情報を提供するまで、このページから先に進むことはできません。

      • サブスクリプションID: Azure サブスクリプションID を入力します。サブスクリプションID を取得するには、Azure portal にサインインし、[サブスクリプション] > [概要] に移動します。
      • Active Directory ID (テナントID): Microsoft Entra ID に登録したアプリケーションのディレクトリ (テナント) ID を入力します。
      • 認証URL: このフィールドは自動的に入力され、編集できません。
      • 管理URL: このフィールドは自動的に入力され、編集できません。
      • ストレージサフィックス: このフィールドは自動的に入力され、編集できません。
  • PowerShell を使用した Azure マネージドID でのホスト接続の作成

このホスト接続は、新しいCustomProperty AuthenticationMode を使用して作成できます。AuthenticationMode には、AppClientSecretSystemAssignedManagedIdentity、および UserAssignedManagedIdentity の3つのオプションがあります。認証モードオプションの説明は次のとおりです。

  • AppClientSecret: これはデフォルト値です。アプリケーションIDとシークレットが必要です。
  • UserAssignedManagedIdentity: これには、ユーザー名を通じてクライアントIDを提供する必要があります。
  • SystemAssignedManagedIdentity: これには入力は不要です。クライアントIDを提供しても無視されます。

  • 注:

    PowerShellを使用する場合、マネージドIDを使用するには、パラメーター ProxyHypervisorTrafficThroughConnector をtrueにする必要があります。

    1. PowerShellウィンドウを開きます。
  1. asnp citrix* を実行して、Citrix固有のPowerShellモジュールをロードします。
  2. ホスト接続を作成します。例:

    • ユーザー割り当てマネージド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
       <!--NeedCopy-->
      
    • システム割り当てマネージド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
       <!--NeedCopy-->
      

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

Studioの使用

ホスティング接続を作成した後、既存のホスティング接続を次のように更新することを選択できます。

  • システム割り当てマネージドID
  • ユーザー割り当てマネージドID
  • 新しいユーザー割り当てマネージドID
  1. Studioから、左側のペインで [ホスティング] を選択します。
  2. 接続を選択し、アクションバーで [接続の編集] を選択します。
  3. 表示される [接続プロパティ] ページで、[認証モードの編集] をクリックします。これで、認証モードを更新することを選択できます。

    • そのホスティング接続にユーザー割り当てマネージドIDを使用するには、[ユーザー割り当てマネージドID] をクリックします。クライアントIDの入力に従ってください。
    • そのホスティング接続にシステム割り当てマネージドIDを使用するには、[システム割り当てマネージドID] をクリックします。

PowerShellの使用

PowerShellを使用して、既存のホスト接続を更新し、システム割り当てIDまたはユーザー割り当てマネージドIDを使用することもできます。たとえば、次のPowerShellコマンドを実行します。

    1. PowerShellウィンドウを開きます。
  1. asnp citrix* を実行して、Citrix固有のPowerShellモジュールをロードします。
  2. 次のコマンドを実行します。

    ``` $connName = “ConnectionName”

  • $conn = get-item XDHyp:\Connections$connName $conn.CustomProperties

    ```

  1. ProxyHypervisorTrafficThroughConnectorTrue に変更し、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>'
    <!--NeedCopy-->
    
    1. $cred = Get-Credential を実行します。ここに何か入力します。
  1. Set-Item -PSPath XDHyp:\Connections\$connName -CustomProperties $CustomProperties -username $cred.username -Securepassword $cred.password を実行します。

Azure Extended Zones

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

Azure Extended Zonesの詳細については、Microsoftドキュメントの「Azure Extended Zones documentation」を参照してください。

ユースケース

この機能は、永続カタログと非永続カタログに適用できます。

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

制限事項

  • 現在、Azure Extended Zonesの使用にはいくつかの制限があります。これらの制限の多くは、現在のAzureの制約によるものです。

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

前提条件

Extended Zonesを使用する前に、次の前提条件の手順を完了していることを確認してください。

  1. Azureへの登録:

    1. Extended Zonesはデフォルトでは有効になっていません。
    2. Azureサブスクリプションで Microsoft.EdgeZones リソースプロバイダーを登録します:Register your subscription for resource provider Microsoft.EdgeZones
  1. Citrixリソースの準備:

    1. Extended Zoneに仮想ネットワークを作成します。
    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 @() 
    <!--NeedCopy-->
    
  2. 拡張ゾーンでの MCS カタログの作成

    ホスティングユニットを作成したら、Studio または PowerShell を使用してカタログ作成に進みます。カタログが拡張ゾーンホスティングユニットを参照していることを確認してください。

トラブルシューティング

問題が発生した場合は、以下を確認してください。

  1. サブスクリプションが拡張ゾーンに登録されていることを確認します。
    1. サブスクリプションが Microsoft.EdgeZones リソースプロバイダーに登録されていることを確認します。
    2. 各拡張ゾーンが個別に登録されていることを確認します。
  2. サービスプリンシパルに新しい権限があることを確認します。

    1. サービスプリンシパルには Microsoft.EdgeZones/extendedZones/read 権限が必要です。

登録または権限が不足している場合、拡張ゾーンのインベントリアイテムは「不明な拡張ゾーン」と表示されることがあります。

注:

親リージョンで拡張ゾーンのマスターイメージを使用してカタログを作成する場合でも、拡張ゾーンの登録と権限が必要です。

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

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

前提条件

サービスプリンシパルに必要な次の権限を構成します。

  • 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
    <!--NeedCopy-->
    
  3. ホスティングユニットを選択して詳細を取得します。

    Get-Item "XDHyp:\HostingUnits\<hostingunitname>"
    <!--NeedCopy-->
    
  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>
    <!--NeedCopy-->
    
  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>"
    <!--NeedCopy-->
    
  6. $cred = Get-Credential を実行します。プロンプトが表示されたら、接続資格情報を入力します。資格情報は Azure アプリケーション ID とシークレットです。
  7. 次のコマンドを実行します。

    Set-Item -PSPath XDHyp:\HostingUnits\<hostingunitname> -CustomProperties $customProperty -username $cred.username -Securepassword $cred.password
    <!--NeedCopy-->
    

    重要:

    SubscriptionId が見つからないというメッセージが表示された場合は、カスタムプロパティ内のすべての二重引用符 (“) をバッククォートの後に二重引用符 (`”) を付けたものに置き換えてください。

  8. dir を実行して、更新された CustomProperties 設定を確認します。

注:

更新が反映されるまでに 1 分以上かかります。

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

ネットワークセキュリティグループの詳細を取得するには、まずネットワークセキュリティグループを含むリソースグループを取得し、次にリソースグループ名に基づいてネットワークセキュリティグループを取得します。

  1. ネットワークセキュリティグループを含むリソースグループを取得します。例:

    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["networksecuritygroup"]}'
    <!--NeedCopy-->
    
  2. リソースグループ名に基づいてネットワークセキュリティグループを取得します。例:

    Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType securitygroup -MaxRecords 5 -AdditionalDataFilter '{"location": ["eastus", "westus"], "resourcegroup":["resourcegroupname"]}'
    <!--NeedCopy-->
    

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

マシンカタログ作成時にマスターイメージ、マシンプロファイル、または準備済みイメージを選択する際、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"]}'
     <!--NeedCopy-->
    
  • トークンを使用して次のページを取得し、特定のリソースを持つリソースコンテナを検索するためにフィルタリング:

    • ```

    • 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"]}'
     <!--NeedCopy-->
    
  • タグ Citrix internal tag を持つ準備済みイメージをフィルタリングし、MaxRecords で最大レコード数を制限:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["manageddisk", "snapshot", "imageversion"]}'
     <!--NeedCopy-->
    
  • タグ Citrix internal tag を持つマシンプロファイル(準備済みイメージ)をフィルタリングし、MaxRecords で最大レコード数を制限:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx04con01unit01" -ResourceType resourceGroup -MaxRecords 5 -AdditionalDataFilter '{"containedresourcetypes": ["vm", "templatespecversion"]}'
     <!--NeedCopy-->
    
  • タグ 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
     <!--NeedCopy-->
    

必要な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"
<!--NeedCopy-->

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",
<!--NeedCopy-->

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"
<!--NeedCopy-->

以下の機能については、最小限の権限に加えて、次の追加権限が必要です。

  • マスターイメージがホスティング接続と同じリージョンのストレージアカウント内のVHDである場合

     "Microsoft.Storage/storageAccounts/read",
     "Microsoft.Storage/storageAccounts/listKeys/action",
     <!--NeedCopy-->
    
  • マスターイメージがAzure Compute Gallery(旧Shared Image Gallery)のImageVersionである場合

     "Microsoft.Compute/galleries/read",
     "Microsoft.Compute/galleries/images/read",
     "Microsoft.Compute/galleries/images/versions/read",
     <!--NeedCopy-->
    
  • マスターイメージがマネージドディスク、スナップショット、または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",
     <!--NeedCopy-->
    
  • Citrix管理のリソースグループを使用する場合

     "Microsoft.Resources/subscriptions/resourceGroups/write",
     "Microsoft.Resources/subscriptions/resourceGroups/delete",
     <!--NeedCopy-->
    
  • マスターイメージを共有テナントまたはサブスクリプションの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",
     <!--NeedCopy-->
    
  • Azure専用ホストサポートを使用する場合

     "Microsoft.Compute/hostGroups/read",
     "Microsoft.Compute/hostGroups/write",
     "Microsoft.Compute/hostGroups/hosts/read",
     <!--NeedCopy-->
    
  • 顧客管理キー(CMK)を使用したサーバー側暗号化(SSE)を使用する場合

     "Microsoft.Compute/diskEncryptionSets/read",
     <!--NeedCopy-->
    
  • 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",
     <!--NeedCopy-->
    
  • Azureテンプレート仕様をマシンプロファイルとして使用する場合

     "Microsoft.Resources/templateSpecs/read",
     "Microsoft.Resources/templateSpecs/versions/read",
     <!--NeedCopy-->
    

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

マスターイメージが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"
<!--NeedCopy-->

コスト管理

VMの価格を取得するために必要となる最小限の権限は次のとおりです。

"Microsoft.Consumption/pricesheets/read"
<!--NeedCopy-->

VMのコストを取得するために必要となる最小限の権限は次のとおりです。

"Microsoft.CostManagement/query/read"
<!--NeedCopy-->

注:

Azureマシンカタログのコストインサイトタブを表示するには、Cost Management > Manage > Read cost権限(クラウド管理者にはデフォルトで付与)が必要です。コストインサイトタブの詳細については、「カタログの詳細を表示」を参照してください。

一般的な権限

共同作成者ロールには、すべてのリソースを管理するためのフルアクセス権があります。この権限セットは、新しい機能の取得を妨げるものではありません。

以下の権限セットは、現在の機能セットで必要とされる以上の権限が含まれていますが、今後も最高の互換性を提供します。

"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"

<!--NeedCopy-->

Azure ホスト接続に必要な権限の構成

ARM テンプレートを使用すると、ホスト接続に関連付けられた Azure のサービスプリンシパルまたはユーザーアカウントがすべての MCS 操作を実行するために必要な最小限の権限を簡単に構成できます。この ARM テンプレートは、次の処理を自動化します。

  • 操作に必要な最小限の権限を持つ Azure ロールの作成。
  • このロールを既存の Azure サービスプリンシパルにサブスクリプションレベルで割り当て。

この ARM テンプレートは、Azure Portal または PowerShell コマンドを使用して展開できます。詳細については、「Citrix Virtual Apps and Desktops 操作用 ARM テンプレート」を参照してください。

ホスト接続での権限の検証

ホスト接続の権限を検証して、MCS マシンカタログの作成と管理に関連するタスクを実行できます。この実装は、VM の作成、削除、更新、VM の電源管理など、さまざまなシナリオで必要な不足している権限を事前に特定するのに役立ち、重要なときにブロックされるのを回避できます。

PowerShell コマンド Test-HypHypervisorConnection を使用して、ホスト接続の権限を検証できます。コマンドの結果はリストとしてキャプチャされ、リスト内の各項目は 3 つのセクションに分かれています。

  • カテゴリ: ユーザーが MCS マシンカタログを作成および管理するために実行できるアクションまたはタスク。
  • 是正措置: 管理者がユーザーの不足している権限の不一致を解決するために実行する必要がある手順。
  • 不足している権限: カテゴリの不足している権限のリスト。

権限を検証するには、次の手順を実行します。

  1. Azure へのホスト接続を作成します。
  2. Delivery Controller™ ホストから PowerShell ウィンドウを開きます。
  3. asnp citrix* を実行して、Citrix 固有の PowerShell モジュールをロードします。
  4. 接続をテストするために必要な権限があるかどうかを確認するには、次のコマンドを実行します。

    Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AzureCon"
    <!--NeedCopy-->
    

    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
     <!--NeedCopy-->
    

    例:

    高いレベルの承認なしでリソースグループレベルで接続をテストする場合:

    Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\testles -CustomProperties $customProperties | Format-List
    <!--NeedCopy-->
    

    注:

    リソースグループは接続固有の情報であるため、CustomProperties パラメーターはリソースグループレベルを提供するために使用されます。

    例:

    リソースグループレベルでより高いレベルの承認で接続をテストする場合:

    Test-HypHypervisorConnection -LiteralPath XDHyp:\Connections\testles -SecurePassword $password -UserName 922e65d5-38ae-4cf5-832b-54122196b7dd -CustomProperties $customProperties
    <!--NeedCopy-->
    

権限の詳細については、「必要な Azure 権限」を参照してください。

次のステップ

詳細情報