Citrix DaaS

Image Portability Serviceの使用によるリソースの場所間でのワークロードの移行

Image Portability Serviceは、すべてのプラットフォームにおいてイメージを簡単に管理できるようにします。Citrix Virtual Apps and DesktopsのREST APIを使用して、Citrix Virtual Apps and Desktopsサイト内のリソースの管理を自動化できます。

Image Portabilityワークフローは、Citrix Cloudを使用して2つのリソースの場所間でイメージを移行しようとすると、開始されます。イメージをエクスポートした後、Image Portability Serviceは、ターゲットのハイパーバイザーまたはパブリッククラウドで実行するためのイメージの転送、準備を支援をします。最終的に、Citrix ProvisioningまたはMachine Creation Servicesは、ターゲット環境でイメージをプロビジョニングします。

コンポーネント

Image Portability Serviceのコンポーネントは以下のようなものがあります:

  • Citrix Cloudサービス
  • Citrix Credential Wallet
  • Citrix Connector Appliance
  • Compositing Engine VM
  • PowerShellのサンプルスクリプト

Citrix Cloudサービス

Citrix Cloud Services APIは、Image Portability Serviceと通信するREST APIサービスです。REST APIサービスを使用すると、Image Portabilityジョブを作成および監視できます。たとえば、API呼び出しを行って、ディスクのエクスポートなどのImage Portabilityジョブを開始してから、呼び出しを行ってそのジョブのステータスを取得します。

Citrix Credential Wallet

Citrix Credentials Walletサービスは、システムの資格情報を安全に管理し、Image Portability Serviceがアセットと通信できるようにします。たとえば、vSphereからSMB共有にディスクをエクスポートする場合、Image Portability Serviceは、ディスクの書き込みのために、SMB共有への接続を開くための資格情報を必要とします。資格情報がCredential Walletに保存されている場合、Image Portability Serviceはそれらの資格情報を取得して使用できます。

このサービスにより、資格情報を完全に管理することができます。Cloud Services APIはアクセスポイントとして機能し、資格情報を作成、更新、および削除する機能を提供します。

Compositing Engine

Compositing Engineは、Image Portability Serviceの主力製品です。Compositing Engine(CE)は、Image Portabilityのエクスポートまたは準備ジョブの開始時に作成される単一のVMです。このVMは、ジョブが実行されているのと同じ環境で作成されます。たとえば、vSphereからディスクをエクスポートする場合、CEはvSphereサーバー上に作成されます。同様に、Azure、AWS、またはGoogle Cloudで準備ジョブを実行すると、CEはそれぞれAzure、AWS、またはGoogleで作成されます。CEはディスクを自身にマウントしてから、必要な操作をディスクに対して実行します。準備またはエクスポートジョブが完了すると、CE VMとそのすべてのコンポーネントが削除されます。

Connector Appliance

IPSリソースを管理するためにプロバイダーソフトウェアを実行しているConnector Applianceは、ご使用の環境(オンプレミスと、Azure、AWS、またはGoogle Cloudサブスクリプション)で実行され、個々のジョブのコントローラーとして機能します。クラウドサービスからジョブの指示を受け取り、Compositing Engine VMを作成および管理します。Connector Appliance VMは、クラウドサービスとご使用の環境との間の安全な単一の通信ポイントとして機能します。各リソースの場所(オンプレミス、Azure、AWS、またはGoogle Cloud)に1つまたは複数のConnector Applianceを展開します。Connector Applianceは、セキュリティのために各リソースの場所に展開されます。Connector ApplianceとCompositing Engineを同じ場所に配置することで、すべてのコンポーネントと通信がリソースの場所内に保持されるため、展開のセキュリティ体制が大幅に向上します。

PowerShellモジュール

スクリプト内で使用するPowerShellモジュールのコレクションを提供しており、これを開始時に使用することで独自のカスタムの自動処理を開発できます。提供されているモジュールはそのままでサポートされますが、ご使用の環境で必要に応じて変更できます。

PowerShell自動化では、提供された構成パラメーターを使用してCitrix Cloud APIサービスへのREST呼び出しを構成し、ジョブを開始してから、ジョブの進行に合わせて定期的に更新できます。

独自の自動化ソリューションを開発する場合は、好みのプログラミング言語を使用してクラウドサービスを直接呼び出すことができます。Image Portability ServiceのRESTエンドポイントとPowerShellモジュールの構成と使用について詳しくは、APIポータルを参照してください。

ワークフロー

Image Portability Serviceは、マルチフェーズワークフローを使用して、パブリッククラウドサブスクリプションのオンプレミスのリソースの場所から、マスターカタログイメージを準備します。このサービスは、オンプレミスのハイパーバイザープラットフォームからイメージをエクスポートし、パブリッククラウドサブスクリプションにアップロードします(提供されているPowerShellアップロードユーティリティを使用すると、これを自動化できます)。次に、Image Portabilityは、パブリッククラウドプラットフォームと互換性があるようにイメージを準備します。最終的に、イメージが公開され、クラウドのリソースの場所に新しいマシンカタログとして展開できるようになります。

Image Portabilityワークフロー

これらの高レベルのワークフローは、イメージのソースおよびターゲットのプロビジョニング構成(Machine CreationまたはCitrix Provisioning)に基づいています。選択したワークフローによって、必要なImage Portabilityのジョブステップが決まります。

次の表を参照して、サポートされている各IPSワークフローに必要なジョブを把握してください。

ワークフロー(ソースからターゲット) エクスポート アップロード 準備 公開
MCSからMCSへ Y Y Y N
PVSからMCSへ* N Y Y N
PVSからPVSへ(AzureまたはGoogle Cloudで)* N Y Y Y
MCSからPVSへ(AzureまたはGoogle Cloudで) Y Y Y Y

*元のイメージはCitrix Provisioning vDiskで、ソースのプラットフォームハイパーバイザーから直接をエクスポートする必要がないと仮定しています。

要件

Image Portabilityを開始するには、次の要件を満たしている必要があります。

Citrixマシンカタログイメージ

IPSでは、以下のいずれかの検証済み構成のイメージを使用する必要があります:

  • Windows Server 2016、2019、2022H2

  • Windows 10または11

  • Machine Creation ServicesまたはCitrix Provisioningを使用してプロビジョニングされている

  • Citrix Virtual Apps and Desktops VDAバージョン1912CU6、1912CU7、2203CU1、2203CU2、2212、2303、または 2305

  • Azureでコンソールアクセスが有効になっているリモートデスクトップサービス

Image Portability Serviceは、以下のハイパーバイザーとクラウドプラットフォームをサポートします:

ソースプラットフォーム:

  • VMware vSphere 7.0および8.0

  • XenServer/XenServer 8.2

  • Nutanix Prism Element 3.x

  • Microsoft Azure

  • Google Cloud Platform

ターゲットプラットフォーム:

  • VMware vSphere 8.0

  • Microsoft Azure

  • AWS

  • Google Cloud Platform

Citrix Connector Appliance

Image Portabilityを使用する予定の各リソースの場所に、Citrix Connector Applianceをインストールして構成する必要があります。たとえば、Image Portabilityを使用して、イメージをvSphereからAzure、AWS、Google Cloudに移行する場合は、少なくとも4つのCitrix Connector Applianceが必要です:

詳しい手順については、「Connector Applianceの展開」を参照してください。

SMB(Windows)ファイル共有

Image Portability Serviceを使用しているオンプレミスのリソースの場所でホストされているエクスポートジョブ中にデータを一時的に保存するには、Windows SMBファイル共有が必要です。共有に使用できる空き容量が、イメージのファイルシステムの構成済みサイズの2倍以上であることを確認してください。

PowerShellスクリプトを実行するためのマシン

PowerShellスクリプトを実行するマシンには、以下のものがあります:

  • PowerShellバージョン5.1。

  • SMBファイル共有への高速ネットワーク接続。ファイル共有をホストしているのと同じマシンにすることができます。

  • Image Portability機能を使用する予定のパブリッククラウドプラットフォームへの高速ネットワーク接続。たとえば、Azure、AWS、またはGoogle Cloudです。

    PowerShellギャラリーからImage Portabilityモジュールをダウンロードして構成する方法について詳しくは、「PowerShell用のマシンの準備」セクションを参照してください。

Citrix Cloud顧客ID

Citrix DaaSのサブスクリプションが有効であることを確認してください。

続行するには、Citrix DaaS(旧称Citrix Virtual Apps and Desktopsサービス)にアクセスする必要があります。アクセス権がない場合は、Citrixの担当者にお問い合わせください。

Image Portabilityで使用するAPIクライアントを作成および構成する手順については、「API Getting Started」のドキュメントを参照してください。

Azureに必要な権限と構成

Image Portability ServiceがAzureリソースで動作するためには、特定のAzure機能へのアクセス権限をImage Portability Serviceが使用するAzureサービスプリンシパルに付与する必要があります。詳細な一覧については、「Microsoft Azureに必要な権限」を参照してください。

関連付けられたリソースのサービスプリンシパルに、Contributor(投稿者)の役割を割り当てることができます。または、必要な最小限のアクセス権限を割り当てるには、必要な権限を使用してカスタム役割を作成し、それを適切なリソースにスコープ設定したサービスプリンシパルに割り当てます。

Azureサービスプリンシパルのセキュリティロールの構成」と「カスタム役割の作成」については、Azureのドキュメントを参照してください。

Google Cloudに必要な権限と構成

Image Portability ServiceがGoogle Cloudプロジェクトで動作するためには、特定の機能へのアクセス権限をImage Portability Serviceが使用するGoogle Cloudサービスプリンシパルに付与する必要があります。

詳細な一覧については、「Google Cloudに必要な権限」を参照してください。

これらの権限は、次の役割を使用して割り当てることができます:

  • Cloud Buildエディター
  • コンピューティング管理者
  • ストレージ管理者
  • サービスアカウントユーザー

サービスアカウントの権限の構成について詳しくは、Google Cloudのドキュメントを参照してください。

Amazon Web Servicesに必要な権限と構成

Amazon Web Services(AWS)アカウントでImage Portability Serviceのワークフローを実行するには、それぞれのIdentity and Access Management(IAM)IDで適切な権限が必要です。

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

Image Portability Serviceのセットアップ

Image Portability Serviceをセットアップするには、以下を実行します:

Connector Applianceを展開する

Image Portabilityでは、Image Portabilityジョブを作成するためにCitrix Connector Applianceが必要です。Connector Applianceは、オンプレミスおよびパブリッククラウド環境との安全な通信をサポートします。Connector Applianceは、Image Portability Serviceと通信して、ジョブのステータスと全体的なサービス稼働状況を報告します。

ご使用の環境でConnector Applianceを展開および構成するには、「クラウドサービス用のConnector Appliance」の手順に従います。

展開を計画するときは、アプライアンスに必要なハードウェア構成ネットワークポートアクセスに注意してください。

アプライアンスを展開して登録すると、Image Portabilityを有効にするために必要なコンポーネントが自動的にインストールされます。

PowerShell用のマシンを準備する

Image Portabilityの起動と実行をサポートするために、サービスを使用し、カスタマイズおよび使用できるPowerShellモジュールを作成しました。

次のセクションでは、PowerShellスクリプトを実行するためのマシンを準備する方法について説明します。これらのスクリプトはほんの一例です。ニーズに合わせて変更または拡張してください。

注:

初期インストール後、Update-Moduleを使用してPowerShellモジュールを更新します。

PowerShellの要件

PowerShellスクリプトを使用するには、次のものが必要です:

  • Image Portabilityジョブを駆動するPowerShellスクリプトを実行するためのWindowsマシン。このマシンでは、以下が必要です:

    • PowerShellの最新バージョン。

    • オンプレミスのSMBファイル共有への10Gbs以上のネットワーク接続、およびパブリッククラウド(Azure、AWS、またはGoogle Cloudなど)への高速接続がある。

    • ファイル共有をホストしているのと同じマシンにすることが可能である。

    • 最新のMicrosoftパッチを適用したWindows10、Windows Server 2019、またはWindows Server 2022を実行しているマシンである。

    • Microsoft PowerShellギャラリーに接続して、必要なPowerShellライブラリをダウンロードできる。

Windowsのバージョンによっては、TLS 1.0または1.1のサポートを無効にする必要がある場合があります。詳しくは、Microsoft PowerShellギャラリーTLSサポートのドキュメントを参照してください。

デフォルトでは、PowerShellはプロキシサーバーを介して自動的に認証されません。Microsoftおよびプロキシベンダーのベストプラクティスに従い、PowerShellセッションがプロキシサーバーを使用するように構成されていることを確認してください。

サービス終了したバージョンまたは古いバージョンのPowerShellGetに関連するPowerShellスクリプトを実行する際にエラーが表示される場合は、次のように最新バージョンをインストールする必要があります:

Install-Module -Name PowerShellGet -Force -Scope CurrentUser -AllowClobber
<!--NeedCopy-->

ライブラリとモジュールのインストール

Image Portability Serviceは、Microsoft PowerShellギャラリーのライブラリを使用して、移植操作を促進します。

重要:

初期インストール後、Update-Moduleを使用して新しいバージョンをインストールします。

  1. 次のPowerShellコマンドを実行して、最新のモジュールをダウンロードします:

    Install-Module -Name "Citrix.Workloads.Portability","Citrix.Image.Uploader" -Scope CurrentUser
    <!--NeedCopy-->
    
    • PATH環境変数を変更するには:

      YEnterキーを押して受け入れます。

    • NuGetプロバイダーをインストールするには:

      YEnterキーを押して受け入れます。

    • 信頼できないリポジトリについて通知された場合:

      A(すべてはい)とEnterキーを押して続行します。

  2. 次のコマンドを実行して、必要なすべてのモジュールがダウンロードされたことを確認します:

    Get-InstalledModule -Name Citrix.*
    <!--NeedCopy-->
    

    このコマンドは、次のような出力を返します:

    名前 リポジトリ 説明
    Citrix.Image.Uploader PSGallery VHD(x)をAzure Storage Account、AWS、またはGCPにアップロードし、VHD(x)に関する情報を取得するコマンド
    Citrix.Workloads.Portability PSGallery Citrix Image Portability Serviceのイメージジョブ用のスタンドアロンコマンドレット

モジュールの最新バージョンへの更新

次のコマンドを実行して、スクリプトを最新バージョンに更新します。

Update-Module -Name "Citrix.Workloads.Portability","Citrix.Image.Uploader" -Force
<!--NeedCopy-->

Citrix Virtual Apps and Desktops Remote PowerShell SDKのインストール

Image Portability Serviceでは、Citrix Cloud内で移植ジョブを作成および管理するために、Citrix Virtual Apps and Desktops Remote PowerShell SDKが必要です。

Remote PowerShell SDKをダウンロードして、マシンにインストールします。

プラットフォーム固有のサードパーティコンポーネントのインストール

Image Portability ServiceのPowerShellモジュールは、サードパーティの依存関係をインストールしません。したがって、対象とするプラットフォームのみにインストールを制限できます。次のいずれかのプラットフォームを使用している場合は、プラットフォームの依存関係のインストールに関する手順に従ってください:

VMware

VMware環境と通信するImage Portabilityジョブを作成している場合は、次のコマンドを実行して、必要なVMware PowerShellモジュールをインストールします。

Install-Module -Name VMWare.PowerCLI -Scope CurrentUser -AllowClobber -Force -SkipPublisherCheck
<!--NeedCopy-->
Amazon Web Services

AWSでImage Portabilityジョブを作成する場合は、AWSコマンドラインインターフェイスをダウンロードしてインストールしてから、次のコマンドを実行して、必要なAWS PowerShellモジュールをインストールします:

Install-Module -Name AWS.Tools.Installer
Install-AWSToolsModule AWS.Tools.EC2,AWS.Tools.S3
<!--NeedCopy-->
Azure

AzureでImage Portabilityジョブを作成する場合は、Azureコマンドラインユーティリティをダウンロードしてインストールしてから、次のコマンドを実行して、必要なAzure PowerShellモジュールをインストールします:

Install-Module -Name Az.Accounts -Scope CurrentUser -AllowClobber -Force
Install-Module -Name Az.Compute -Scope CurrentUser -AllowClobber -Force
<!--NeedCopy-->
Google Cloud

Google CloudでImage Portabilityジョブを作成している場合は、Google Cloud SDKをダウンロードしてマシンにインストールします。

スクリプトとモジュールのアンイストール

次のコマンドを実行して、Image Portabilityソフトウェアで使用されているモジュールをアンインストールします。

注:

IPSモジュールをアンインストールするときに、サードパーティのスクリプトとコンポーネントが自動的に削除されることはありません。

モジュールをアンインストールするには:

Get-InstalledModule -Name "Citrix.Workloads.Portability","Citrix.Images.Uploader" | Uninstall-Module
<!--NeedCopy-->

Credential Walletに資格情報を追加する

エンドツーエンドの自動化のシナリオでは、Citrix Cloud、パブリッククラウド、およびオンプレミスリソースと対話なしに認証できるように、Image Portability Serviceを構成できます。また、Image Portability Serviceは、APIがオンプレミスおよびパブリッククラウドのリソースで直接認証しているときは、常にCitrix Credential Walletに保存されている資格情報を使用します。エクスポート、準備、および公開のジョブを実行するには、このセクションで説明しているように資格情報を設定する必要があります。

ジョブを実行する場合、Image Portability Serviceには、制御可能なリソースへのアクセスが必要です。たとえば、Image Portability ServiceがvSphereサーバーからSMB共有にディスクをエクスポートする場合、Image Portability Serviceには両方のシステムへのログインアクセスが必要です。このアカウント情報を保護するために、Image Portability ServiceはCitrix Credential Walletサービスを使用します。このサービスは、資格情報をユーザー定義の名前を付けてWalletに保存します。ジョブを実行する場合は、使用する資格情報の名前を指定します。また、これらの資格情報はいつでもウォレットから更新または削除できます。

多くの場合、以下のプラットフォームの資格情報が保存されます:

  • Microsoft Azure
  • AWS
  • Google Cloud
  • SMB共有
  • VMware vSphere
  • Nutanix AHV
  • XenServer

資格情報を管理する方法については、「Image Portability Service APIs」と、Developer APIポータルの「Credentials Management」を参照してください。

Image Portability Serviceの使用

オンプレミスのリソースの場所のイメージをパブリッククラウドサブスクリプションに配置するには、Citrix Cloud内にImage Portabilityジョブを作成する必要があります。スクリプトまたはプログラム内でサービスに直接API呼び出しを行うジョブを作成するか、API呼び出しを自動化するために開発したサンプルのPowerShellモジュールを使用して、ジョブを作成できます。REST APIとPowerShellモジュールを使用してIPSジョブを作成する方法については、Image Portability ServiceのDeveloper APIポータル を参照してください。

Citrix Provisioningを使用してマシンカタログを公開する

Image Portability Service(IPS)は、Azure、AWS、Google CloudでMachine Creation Services(MCS)とともに、またはAzureまたはGoogle CloudでCitrix Provisioning(PVS)とともに使用されます。このガイドで説明されているPowerShellおよびRESTソリューションをご使用のプラットフォームツール、プラットフォームのAPI、またはCitrix DaaS SDKと組み合わせることで、準備されたオンプレミスイメージに基づいてマシンカタログを作成する、シームレスで自動化されたエンドツーエンドのワークフローを作成できます。選択したクラウドプラットフォームによっては、IPS準備ジョブの完了とカタログの作成またはPVSターゲットへの割り当ての間に、中間ステップが必要な場合があります。

AWS

AWSでのIPS準備ジョブは、ボリュームを生成します。Machine Creation Servicesでは、カタログの作成中にAmazonマシンイメージ(AMI)が必要です。移行したイメージからAMIを生成するには、最初に生成したボリュームからイメージのスナップショットを作成し、次にそのスナップショットに基づいてAMIを作成する必要があります。これは、AWSコマンドラインインターフェイス(CLI)で実行できます:

> aws ec2 create-snapshot --volume-id <VolumeId>
> aws ec2 register-image --name <AmiName> --architecture 'x86_64' --root-device-name '/dev/sda1 --boot-mode uefi --ena-support --virtualization-type 'hvm' --block-device-mappings 'DeviceName=/dev/sda1,Ebs={SnapshotId=<SnapshotID>}'
<!--NeedCopy-->

<VolumeId>は、IPS準備ジョブからの出力です。生成されたAMIは、MCSマスターイメージとして使用できます。

ワークフローのこの部分を自動化するためのPowerShellサンプルスクリプトは、New-IpsAwsImage.ps1という名前のスクリプトとしてCitrix.Workloads.Portabilityモジュールで提供されます。

Azure

Azureでは、IPSはMCSマスターイメージとして直接使用できる管理対象ディスクを生成します。生成されたイメージをPVSターゲットに割り当てるために、IPSは、管理対象ディスクをPVSストアのVHD(x)ファイルにコピーするための「publish」オペレーションを提供します。

Google Cloud

Google Cloud上のIPS準備ジョブはディスクを生成します。MCSにはGoogle Cloudインスタンステンプレートが必要です。ディスクからMCSのインスタンステンプレートを作成するプロセスについては、「マスター仮想マシンインスタンスと永続ディスクを準備する」で詳しく説明しています。

Google Cloud上のPVSターゲットでは、IPSは、管理対象ディスクをPVSストアのVHD(x)ファイルにコピーするための「publish」オペレーションを提供します。

VDA構成を自動化する

オンプレミスで作成されたCitrix管理のイメージを準備する場合、イメージ内でVDAを再構成して、イメージが準備されているターゲット環境をサポートできます。Image Portability Serviceは、ワークフローの準備フェーズで、臨機応変にVDA構成の変更を適用できます。次の構成パラメーターは、移行されたイメージ内でVDAがどのように動作するかを定義します:InstallMisaXdReconfigure、およびInstallMcsio。IPSジョブの作成時にこれらのパラメーターを定義するには、「Image Portability ServiceのPowerShellの例」を参照してください。

構成

  • InstallMisatrueに構成し、MCSでイメージをプロビジョニングするために必要なVDAコンポーネントをImage Portability Serviceがインストールできるようにします。

  • InstallMisatrueに、またはInstallMcsiotrueに構成するためには、CloudProvisioningTypeMcsに構成する必要があります。

  • InstallPvsを、イメージが展開されているPVSサーバーのバージョンに設定します。InstallPvsが設定されている場合、Image Portability Service(IPS)は、準備ジョブ中に、指定されたバージョンのPVSターゲットデバイスソフトウェアをイメージに自動インストールします。IPSは、最新の2つの長期サービスリリース(LTSR)と最新リリース(CR)に対して、最新の2つのビルド(ベース リリースまたは累積更新プログラム)をサポートします。

InstallPvsを構成するためには、CloudProvisioningTypePvsに構成する必要があります。

InstallMisaInstallMcsioの両方について、次の点に注意してください:

  • これらの機能をサポートしているのは、VDAの最近のLTSRおよびCRリリースのみです。

  • インストールされたVDAに必要なコンポーネントが既に存在する場合、パラメーターが構成されていても、変更は行われません。

  • サポートされているバージョンのVDAの場合、必要なVDAコンポーネントが存在しない場合でも、Image Portabilityは必要なコンポーネントの適切なバージョンをインストールします。

  • サポートされていないバージョンのVDAの場合、再構成は失敗し、必要なVDAコンポーネントが存在しない場合はメッセージがログに記録されます。VDAの再構成が完了しなくても、準備ジョブは完了します。

XdReconfigureには、次のいずれかの値が必要です:controllersまたはsite_guid。それぞれの値を使用した構成パラメーターの例を以下に示します:

controllersを使用:

XdReconfigure = @(
    [pscustomobject]@{
        ParameterName = 'controllers'
        ParameterValue = 'comma-separated-list-of-your-cloud-connectors-fqdns'
    }
)
<!--NeedCopy-->

ここで、ParameterValueは、VDAを指定する新しいDDC(Desktop Delivery Controller)のFQDN(完全修飾ドメイン名)のリストです。複数のDDCをコンマ区切り形式で指定できます。

site_guidを使用:

XdReconfigure = @(
    [pscustomobject]@{
        ParameterName = 'site_guid'
        ParameterValue = 'active-directory-site-guid'
    }
)
<!--NeedCopy-->

XdReconfigureは、/reconfigureインストールスイッチを使用すると、VDAコマンドラインインストーラー実行時に、サポートされる値を受け入れます(例:XenDesktopVdaSetup.exe /reconfigure)。サポートされる値には、wem_agent_portwem_cached_data_sync_portwem_cloud_connectors、またはwem_serverなどがあります。VDA再構成コマンドラインオプションの完全なリストについては、Citrix DaaS VDAのドキュメントを参照してください。

InstallMcsiotrueに構成すると、イメージに自動的にMCSIOがインストールされます。イメージへのMCSIOの自動インストールを無効にするには、InstallMcsiofalseに構成します。

注:

コマンドの実行中に-DryRunを使用して、構成とConnector Applianceのネットワーク設定を検証できます。

リファレンス

このセクションでは、ニーズに基づいたテクニカルリファレンス情報を詳しく説明します。

Image Portability Serviceに必要な権限

このセクションでは、サポートされているオンプレミスおよびクラウドプラットフォームのそれぞれで、Image Portability Serviceに必要とされる権限について詳しく説明します。

Connector Applianceに必要な権限

Image Portability Serviceでイメージを準備するには、Connector Applianceが次のURLにアクセスできる必要があります:

*.layering.cloud.com
credentialwallet.citrixworkspaceapi.net
graph.microsoft.com
login.microsoftonline.com
management.azure.com
*.blob.storage.azure.net
<!--NeedCopy-->

VMware vCenterに必要な権限

VMware環境でIPSエクスポートディスクジョブを実行するには、次のvCenter権限が必要です。これらの権限は、vCenter管理パネルの [アクセス制御] セクションの [役割] にあります。

-  Cryptographic operations
    -  Direct Access

-  Datastore
    -  Allocate space
    -  Browse datastore
    -  Low level file operations
    -  Remove file

-  Folder
    -  Create folder
    -  Delete folder

-  Network
    -  Assign network

-  Resource
    -  Assign virtual machine to resource pool

-  Virtual machine
    -  Change Configuration
        -  Add existing disk
        -  Add new disk
        -  Remove disk

    -  Edit Inventory
        -  Create from existing
        -  Create new
        -  Remove

    -  Interaction
        -  Power off
        -  Power on
<!--NeedCopy-->

Microsoft Azureに必要な権限

Image Portabilityは、Azureサービスアカウントに次の権限があることを必要とします。

Compositing Engineで使用するリソースグループが指定されている場合(REST要求のresourceGroupプロパティで、またはCitrix.Workloads.Portability PowerShellコマンドを使用する場合は-AzureVmResourceGroupパラメーターで)、リソースグループのスコープで次の権限が必要です。

Microsoft.Compute/disks/beginGetAccess/action
Microsoft.Compute/disks/endGetAccess/action
Microsoft.Compute/disks/delete
Microsoft.Compute/disks/read
Microsoft.Compute/disks/write
Microsoft.Compute/virtualMachines/delete
Microsoft.Compute/virtualMachines/powerOff/action
Microsoft.Compute/virtualMachines/read
Microsoft.Compute/virtualMachines/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.Resources/deployments/operationStatuses/read
Microsoft.Resources/deployments/read
Microsoft.Resources/deployments/write
Microsoft.Resources/subscriptions/resourcegroups/read
<!--NeedCopy-->

Compositing Engineで使用するリソースグループが指定されていない場合、サブスクリプションのスコープで次の権限が必要です。

Microsoft.Compute/disks/beginGetAccess/action
Microsoft.Compute/disks/endGetAccess/action
Microsoft.Compute/disks/read
Microsoft.Compute/disks/write
Microsoft.Compute/virtualMachines/powerOff/action
Microsoft.Compute/virtualMachines/read
Microsoft.Compute/virtualMachines/write
Microsoft.Network/networkInterfaces/join/action
Microsoft.Network/networkInterfaces/read
Microsoft.Network/networkInterfaces/write
Microsoft.Network/networkSecurityGroups/join/action
Microsoft.Network/networkSecurityGroups/read
Microsoft.Network/networkSecurityGroups/write
Microsoft.Resources/deployments/operationStatuses/read
Microsoft.Resources/deployments/read
Microsoft.Resources/deployments/write
Microsoft.Resources/subscriptions/resourceGroups/delete
Microsoft.Resources/subscriptions/resourceGroups/write
Microsoft.Authorization/roleAssignments/read
Microsoft.Authorization/roleDefinitions/read
<!--NeedCopy-->

次の権限は、指定されたターゲットリソースグループ(つまり、REST要求のtargetDiskResourceGroupNameプロパティ、またはPowerShellを使用する場合は-TargetResourceGroupパラメーターで指定されたリソースグループ)のスコープで必要です。

Microsoft.Compute/disks/beginGetAccess/action
Microsoft.Compute/disks/delete
Microsoft.Compute/disks/read
Microsoft.Compute/disks/write
Microsoft.Compute/snapshots/delete
Microsoft.Compute/snapshots/read
Microsoft.Compute/snapshots/write
<!--NeedCopy-->

次の権限は、指定された仮想ネットワークリソースグループ(つまり、REST要求のvirtualNetworkResourceGroupNameプロパティ、またはPowerShellを使用する場合は-AzureVirtualNetworkResourceGroupNameパラメーターで指定されたリソースグループ)のスコープで必要です。

Microsoft.Network/virtualNetworks/read
Microsoft.Network/virtualNetworks/subnets/join/action
<!--NeedCopy-->

重要:

「prepare」および「prepareAndPublish」ジョブのceVmSkuオプションは、作成されたターゲットディスクに適したAzure VMの種類を制御します。出力イメージからプロビジョニングする予定の仮想マシンと同じファミリーおよびバージョンのceVmSkuを選択する必要があります。Standard_D2S_v3のデフォルト値は、すべてのDv3ファミリーマシンでの実行に適しています。v4以降の仮想マシンSKUでは、Microsoftは仮想マシンに接続された一時リソースディスクをオプションにしました。これは、ページファイルの適切な配置に影響します。出力イメージを使用してプロビジョニングするマシンで、一時リソースディスク なしのVM SKUを使用する場合は、ceVmSkuにも一時リソースディスクがないことを確認する必要があります。ceVmSkuが一時リソースディスクを持つ種類の場合、IPSはWindowsページファイルをそのディスクに移動します。一時リソースディスクを持たないSKUで、この方法で準備されたディスクを使用すると、ログインのたびに警告ダイアログが表示されます。ceVmSkuに一時ディスクがない場合、ページファイルはシステムのルート ボリュームで構成されます。この方法で準備されたイメージを一時リソースディスクを含むSKUで使用すると、意図しないI/O請求が発生する可能性があります。

Google Cloudに必要な権限

Image Portabilityは、Google Cloudサービスアカウントに次の権限があることを必要とします:

cloudbuild.builds.create
cloudbuild.builds.get
cloudbuild.builds.list
compute.disks.create
compute.disks.delete
compute.disks.get
compute.disks.list
compute.disks.setLabels
compute.disks.use
compute.globalOperations.get
compute.images.create
compute.images.delete
compute.images.get
compute.images.list
compute.images.setLabels
compute.images.useReadOnly
compute.instances.create
compute.instances.delete
compute.instances.get
compute.instances.setLabels
compute.instances.setMetadata
compute.instances.setServiceAccount
compute.instances.setTags
compute.instances.stop
compute.instances.updateDisplayDevice
compute.networks.get
compute.subnetworks.use
compute.subnetworks.useExternalIp
compute.zoneOperations.get
compute.zones.list
iam.serviceAccounts.actAs
iam.serviceAccounts.get
iam.serviceAccounts.list
resourcemanager.projects.get
storage.buckets.create
storage.buckets.delete
storage.buckets.get
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
<!--NeedCopy-->

AWSに必要な権限

Image Portabilityでは、次の構成のJSONポリシードキュメントを Identity and Access Management (IAM) ユーザーにアタッチする必要があります:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ebs:StartSnapshot",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot",
                "ec2:CreateTags",
                "ec2:CreateImage",
                "ec2:DeleteSnapshot",
                "ec2:DeleteVolume",
                "ec2:DeregisterImage",
                "ec2:DescribeImages",
                "ec2:DescribeInstances",
                "ec2:DescribeRegions",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSnapshots",
                "ec2:DescribeSubnets",
                "ec2:RebootInstances",
                "ec2:RegisterImage",
                "ec2:RunInstances",
                "ec2:TerminateInstances",
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

注:

必要に応じて、リソースのスコープをさらに縮小することができます。

Nutanix AHVの必要な権限

Image Portabilityを利用するには、Nutanix AHV構成のクラスタ管理者である必要があります。

XenServerでの必要な権限

Image Portabilityを使用するには、XenServerホストが含まれるプールに対して少なくとも「VM 管理者」役割を持っている必要があります。

ネットワーク

Image Portability Service(IPS)は、Compositing Engine(CE)と呼ばれるワーカーVMを作成して、イメージ操作を実行します。関連付けられたリソースの場所/ゾーン内のすべてのConnector Applianceが、CEとHTTPS経由で通信できる必要があります。 Connector Appliance(CA)とCEの間のすべての通信は、CEとCAの間で双方向HTTPS通信が行われるvSphereのケースの1つの例外を除いて、CAによって開始されます。

クラウド環境(Azure、AWS、Google Cloud)では、CEはプライベートIPアドレスを使用して作成されます。したがって、CEはCAと同じ仮想ネットワーク上かCAから到達可能な仮想ネットワーク上に存在する必要があります。

さらに、サーバーメッセージブロック共有上のファイルが関係するジョブ(エクスポートジョブなど)の場合、CEはサーバーメッセージブロック共有への接続が可能なネットワーク上に存在する必要があります。

サポートされている各プラットフォームでCEに使用するネットワークを指定する方法について詳しくは、Image Portability Service APIのドキュメントを参照してください。

「prepare」ジョブの場合、イメージに含まれるオペレーティングシステムが起動され(CE上)、特殊化やその他のタスクが実行されます。コントロールサーバーに通信する管理エージェントまたはセキュリティエージェントがイメージに含まれている場合、これらのプロセスが準備プロセスに干渉する可能性があります。

ドメインの参加解除オプションが指定されている場合、ネットワーク接続が結果に影響を与える可能性があります。Compositing Engine VMがネットワーク経由でActive Directoryドメインコントローラーにアクセスできる場合、参加解除によりコンピューターアカウントがドメインから削除されます。これにより、イメージが抽出された元のVMのドメインメンバーシップが損なわれます。

したがって、操作のために提供されるネットワークを他のネットワークリソースから分離することをお勧めします。これは、サブネットの分離またはファイアウォール規則によって実行できます。詳しくは、「ネットワークの分離」 を参照してください。

一部のオンプレミスのハイパーバイザー環境では、ハイパーバイザーがTLSサーバー証明書を使用して構成される可能性があります。この証明書は、CAの信頼されたルート証明機関のセットによって信頼されていないか、サーバーのホスト名と一致しません。このような状況に対して、問題を回避するために使用できるジョブ要求をIPSは提供します 。詳しくは、「TLS 証明書」を参照してください。

ネットワークプロキシ

CAとインターネット間のネットワークトラフィックがTLSイントロスペクションを実行するプロキシを通過する場合、プロキシのルート認証局(つまり、プロキシが生成するTLS証明書に署名するために使用する証明書)をCAのルート認証局のセットに追加する必要があることがあります。詳しくは、「Connector ApplianceをCitrix Cloudに登録する」を参照してください。

ネットワークの分離
  • Azure

    Azureでは、操作で使用されるAzureサービスプリンシパルが必要なAzureの権限を持っている場合、CEはデフォルトでNICに接続されたネットワークセキュリティグループ(NSG)を使用して作成されます1

    • Microsoft.Network/networkSecurityGroups/join/action
    • Microsoft.Network/networkSecurityGroups/read
    • Microsoft.Network/networkSecurityGroups/write

      または、明示的なリソースグループが使用されていない場合は、サブスクリプションのスコープで次の権限が付与されます:

      • Microsoft.Network/networkSecurityGroups/delete
      • Microsoft.Network/networkSecurityGroups/join/action
      • Microsoft.Network/networkSecurityGroups/read
      • Microsoft.Network/networkSecurityGroups/write

    このNSGは、以下を除く、CEを出入りするすべてのトラフィックをブロックするように構成されています:

    • SMB(ポート 445)送信
    • HTTPS(ポート 443)受信
    • 内部Azure サービスに必要なもの

    NSGの使用は、ジョブ要求のnetworkIsolationプロパティをtrueに設定することで強制的に有効になります。このケースでは、操作において使用されるサービスプリンシパルに必要なアクセス許可がない場合、ジョブは失敗します。NSGの使用は、networkIsolationプロパティをfalseに設定することで無効にできます。

  • AWS

AWSでCEのネットワーク分離を実現するには、すべての不要なトラフィックをブロックするネットワークセキュリティグループを作成してから、ジョブ要求において、セキュリティグループIDのリストを値として取得するsecurityGroupIds要求パラメーターを使用してセキュリティグループをCEインスタンスに割り当てます。

  • Google Cloud

Google Cloudでは、CEのネットワーク分離を実現するために、不要なトラフィックをすべてブロックするファイアウォール規則を作成し、ネットワークタグを介してそれらの規則をCEに適用できます。IPSはネットワークタグcompositing-engineを使用してCEを作成し、タグのリストを値として取得するnetworkTagsジョブ要求パラメーターを使用して、他のネットワークタグをそのCEに割り当てることができます。

TLS証明書

ハイパーバイザーのサーバー証明書が、CAによって信頼されていない機関によって署名されている場合、問題を解決するために使用できる代替手段が2つあります。

  1. 証明書の検証で使用する追加のルート証明機関を、ジョブ要求で指定します。この証明書は、ハイパーバイザーのサーバー証明書の署名に使用されるルート証明機関である必要があります。
  2. ハイパーバイザーのサーバー証明書のSHA-1フィンガープリントを、ジョブ要求で指定します。このケースでの証明書の検証は、ハイパーバイザーから返された証明書のSHA-1フィンガープリントが、ジョブ要求で提供されたものと一致することを確認することになります。CEとハイパーバイザーの間にTLSインターセプトプロキシがある場合、この方法は機能しない可能性があります。

上記のジョブ要求パラメーターは、プラットフォームごとに以下のようになります:

  • vSphere
    1. vCenterSslCaCertificate
    2. vCenterSslFingerprint
  • Nutanix
    1. prismSslCaCertificate
    2. prismSslFingerprint
  • XenServer
    1. xenSslCaCertificate
    2. xenSslFingerprint

詳しくは、「Image Portability Service APIのドキュメント」を参照してください。

証明書の検証エラーは、ハイパーバイザーサーバーのホスト名とその証明書内のホスト名が一致しない場合にも発生する可能性があります。このケースでは、ジョブ要求で以下のパラメーターをtrueに設定することで、ホスト名の一致を無効にできます:

  • vSphere
    • vCenterSslNoCheckHostname
  • Nutanix
    • prismSslNoCheckHostname
  • XenServer
    • xenSslNoCheckHostname

関連ドキュメント

  1. If 明示的なリソースグループが操作に使用されている場合、リソースグループのスコープで次の権限が付与されます: 

Image Portability Serviceの使用によるリソースの場所間でのワークロードの移行