Citrix Virtual Apps and Desktops

Googleクラウド環境への接続

接続とリソースの作成と管理」では接続を作成するためのウィザードについて説明しています。以下の情報は、Googleクラウド環境に固有の詳細について説明しています。

注:

Googleクラウド環境への接続を作成する前に、まずGoogleクラウドアカウントをリソースの場所として設定する必要があります。「Google Cloud環境」を参照してください。

接続の追加

接続とリソースの作成」の手順に従います。次の説明は、ホスト接続を設定する手順を示しています:

  1. [管理]>[構成] の左側のペインで [ホスト] を選択します。

  2. 操作バーの [接続およびリソースの追加] を選択します。

  3. [接続] ページで、[新しい接続を作成する][Citrixプロビジョニングツール] を選択してから [次へ] を選択します。

    • 接続の種類。メニューから [Google Cloud] を選択します。
    • 接続名。接続名を入力します。
  4. [リージョン] ページで、メニューからプロジェクト名を選択し、使用するリソースを含むリージョンを選択して、[次へ] を選択します。

  5. [ネットワーク] ページで、リソースの名前を入力し、メニューから仮想ネットワークを選択し、サブセットを選択してから [次へ] を選択します。このリージョンとネットワークの組み合わせを識別するためのわかりやすいリソース名を指定してください。名前に (Shared) サフィックスが付加された仮想ネットワークは、共有VPCを表しています。共有VPCにサブネットレベルのIAM役割を設定する場合、共有VPCの特定のサブネットのみがサブネットリストに表示されます。

    注:

    • リソース名は1~64文字にし、空白スペースのみにしたり記号(\ / ; : # . * ? = < > | [ ] { } " ' ( ) ' ))を含めたりすることはできません。
  6. [概要] ページで情報を確認してから、[完了] を選択し、[接続およびリソースの追加] ウィンドウを終了します。

接続とリソースを作成すると、作成した接続とリソースが一覧表示されます。接続を構成するには、接続を選択してから、操作バーで該当するオプションを選択します。

同様に、接続の下で作成されたリソースを削除、名前変更、またはテストすることができます。これを行うには、接続の下のリソースを選択してから、操作バーで該当するオプションを選択します。

サービスエンドポイントURL

次のURLにアクセスできる必要があります:

  • https://oauth2.googleapis.com
  • https://cloudresourcemanager.googleapis.com
  • https://compute.googleapis.com
  • https://storage.googleapis.com
  • https://cloudbuild.googleapis.com

Google Cloudプロジェクト

基本的に、Google Cloudプロジェクトには次の2種類があります:

  • プロビジョニングプロジェクト:この場合、現在の管理者アカウントは、プロジェクトでプロビジョニングされたマシンを所有しています。このプロジェクトは、ローカルプロジェクトとも呼ばれます。
  • 共有VPCプロジェクト: プロビジョニングプロジェクトで作成されたマシンが、共有VPCプロジェクトのVPCを使用するプロジェクト。プロジェクトのプロビジョニングに使用される管理者アカウントには、このプロジェクトでの権限が制限されています。具体的には、VPCを使用する権限のみです。

GCP管理トラフィックのための安全な環境の作成

自身のGoogle Cloudプロジェクトには、プライベートGoogleアクセスを許可できます。この実装により、機密データを処理するためのセキュリティが強化されます。これを実現するために、次のいずれかを実行できます:

  • Cloud BuildサービスアカウントにVPCサービスコントロールの次のIngressルールを含めます。この手順を実行する場合は、GCP管理トラフィック用の安全な環境を作成するための以下の手順には従わないでください。

     Ingress Rule 1
     From:
     Identities:
     <ProjectID>@cloudbuild.gserviceaccount.com
     Source > All sources allowed
     To:
     Projects =
     All projects
     Services =
     Service name: All services
     <!--NeedCopy-->
    
  • プライベートワーカープールを使用する場合は、CustomPropertiesUsePrivateWorkerPoolを追加します。プライベートワーカープールについて詳しくは、「 プライベートプールの概要」を参照してください。

GCP管理トラフィックのための安全な環境の作成要件

GCP管理トラフィックのための安全な環境の作成要件は以下のとおりです。

  • カスタムプロパティを更新するときは、ホスト接続がメンテナンスモードであることを確認する。
  • プライベートワーカープールを使用するには、以下の変更が必要です。
    • Citrix Cloud Servicesアカウントの場合、以下のIAMロールを追加します。
      • Cloud Buildサービスアカウント
      • コンピューティングインスタンス管理者
      • サービスアカウントユーザー
      • サービスアカウントトークン作成者
      • Cloud Buildワーカープールの所有者
    • ホスト接続の作成に使用するのと同じプロジェクトに、Citrix Cloud Servicesのアカウントを作成します。
    • DNS構成」の説明に従って、private.googleapis.comおよびgcr.io用のDNSゾーンを設定します。

      private-googleapis-comのDNSゾーン

      gcr.ioのDNSゾーン

    • プライベートネットワークアドレス変換 (NAT) を設定するか、プライベートサービス接続を使用します。詳しくは、「 エンドポイントからGoogle APIにアクセスする」を参照してください。

      プライベートサービス接続

    • ピアリングされたVPCを使用する場合は、ピアリングされたVPCにピアリングするCloud DNSゾーンを作成します。詳しくては、「ピアリングゾーンを作成する」を参照してください。

      ピアリングゾーンを作成する

    • VPCサービスの制御で、APIとVMがインターネットと通信できるように送信用の規則を設定します。送信用の規則はオプションです。例:

       Egress Rule 1
       From:
       Identities:ANY_IDENTITY
       To:
       Projects =
       All projects
       Service =
       Service name: All services
       <!--NeedCopy-->
      

プライベートワーカープールを有効にする

プライベートワーカープールを有効にするには、ホスト接続でカスタムプロパティを次のように設定します:

  1. Delivery ControllerホストからPowerShellウィンドウを開くか、Remote PowerShell SDKを使用します。Remote PowerShell SDKについて詳しくは、「SDKおよびAPI」を参照してください。
  2. 次のコマンドを実行します。

    1. Add-PSSnapin citrix*
    2. cd XDHyp:\Connections\
    3. dir
  3. 接続のCustomPropertiesをメモ帳にコピーします。
  4. プロパティ設定 <Property xsi:type="StringProperty" Name="UsePrivateWorkerPool" 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="UsePrivateWorkerPool" Value="True"/>
    </CustomProperties>
    <!--NeedCopy--> ```
    
  5. PowerShellウィンドウで、変更したカスタムプロパティに変数を割り当てます。例: $customProperty = '<CustomProperties…</CustomProperties>'
  6. $gcpServiceAccount = "<ENTER YOUR SERVICE ACCOUNT EMAIL HERE>"を実行します。
  7. $gcpPrivateKey = "<ENTER YOUR SERVICE ACCOUNT PRIVATE KEY HERE AFTER REMOVING ALL INSTANCES OF \n >"を実行します。
  8. $securePassword = ConvertTo-SecureString $gcpPrivateKey -AsPlainText -Forceを実行します。
  9. 以下を実行して、既存のホスト接続を更新します。

    Set-Item -PassThru -Path @('XDHyp:\Connections\\<ENTER YOUR CONNECTION NAME HERE>') -SecurePassword $securePassword -UserName $gcpServiceAccount -CustomProperties $customProperty
    <!--NeedCopy-->
    

必要なGCP権限

このセクションでは、GCPの権限の完全な一覧が示されています。機能を正しく動作させるには、このセクションで示した権限の完全なセットを使用します。

ホスト接続の作成

  • プロビジョニングプロジェクトにおいてCitrix Cloudサービスアカウントに必要な最低限の権限:

     compute.instanceTemplates.list
     compute.instances.list
     compute.networks.list
     compute.projects.get
     compute.regions.list
     compute.subnetworks.list
     compute.zones.list
     resourcemanager.projects.get
     <!--NeedCopy-->
    

    次のGoogle定義の役割には、上に一覧表示された権限があります:

    • コンピューティング管理者
    • クラウドデータストアユーザー
  • 共有VPCプロジェクトにおいてCitrix Cloudサービスアカウントの共有VPCに必要な追加の権限:

     compute.networks.list
     compute.subnetworks.list
     resourcemanager.projects.get
     <!--NeedCopy-->
    

    次のGoogle定義の役割には、上に一覧表示された権限があります:

    • コンピューティングネットワークユーザー

VMの電源管理

プロビジョニングプロジェクトにおいてCitrix Cloudサービスアカウントに必要な最低限の権限:

compute.instanceTemplates.list
compute.instances.list
compute.instances.get
compute.instances.reset
compute.instances.resume
compute.instances.start
compute.instances.stop
compute.instances.suspend
compute.networks.list
compute.projects.get
compute.regions.list
compute.subnetworks.list
compute.zones.list
resourcemanager.projects.get
<!--NeedCopy-->

次のGoogle定義の役割には、上に一覧表示された権限があります:

  • コンピューティング管理者
  • クラウドデータストアユーザー

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

  • プロビジョニングプロジェクトにおいてCitrix Cloudサービスアカウントに必要な最低限の権限:

     cloudbuild.builds.create
     cloudbuild.builds.get
     cloudbuild.builds.list
     compute.acceleratorTypes.list
     compute.diskTypes.get
     compute.diskTypes.list
     compute.disks.create
     compute.disks.createSnapshot
     compute.disks.delete
     compute.disks.get
     compute.disks.list
     compute.disks.setLabels
     compute.disks.use
     compute.disks.useReadOnly
     compute.firewalls.create
     compute.firewalls.delete
     compute.firewalls.list
     compute.globalOperations.get
     compute.images.create
     compute.images.delete
     compute.images.get
     compute.images.list
     compute.images.setLabels
     compute.images.useReadOnly
     compute.instanceTemplates.create
     compute.instanceTemplates.delete
     compute.instanceTemplates.get
     compute.instanceTemplates.list
     compute.instanceTemplates.useReadOnly
     compute.instances.attachDisk
     compute.instances.create
     compute.instances.delete
     compute.instances.detachDisk
     compute.instances.get
     compute.instances.list
     compute.instances.reset
     compute.instances.resume
     compute.instances.setDeletionProtection
     compute.instances.setLabels
     compute.instances.setMetadata
     compute.instances.setServiceAccount
     compute.instances.setTags
     compute.instances.start
     compute.instances.stop
     compute.instances.suspend
     compute.machineTypes.get
     compute.machineTypes.list
     compute.networks.list
     compute.networks.updatePolicy
     compute.nodeGroups.list
     compute.nodeTemplates.get
     compute.projects.get
     compute.regions.list
     compute.snapshots.create
     compute.snapshots.delete
     compute.snapshots.list
     compute.snapshots.setLabels
     compute.snapshots.useReadOnly
     compute.subnetworks.get
     compute.subnetworks.list
     compute.subnetworks.use
     compute.zoneOperations.get
     compute.zoneOperations.list
     compute.zones.get
     compute.zones.list
     iam.serviceAccounts.actAs
     resourcemanager.projects.get
     storage.buckets.create
     storage.buckets.delete
     storage.buckets.get
     storage.buckets.list
     storage.buckets.update
     storage.objects.create
     storage.objects.delete
     storage.objects.get
     storage.objects.list
     <!--NeedCopy-->
    

    次のGoogle定義の役割には、上に一覧表示された権限があります:

    • コンピューティング管理者
    • ストレージ管理者
    • Cloud Buildエディター
    • サービスアカウントユーザー
    • クラウドデータストアユーザー
  • 共有VPCプロジェクトからVPCおよびサブネットワークを使用してホスティングユニットを作成するために、共有VPCプロジェクトにおいてCitrix Cloudサービスアカウントの共有VPCで必要な追加の権限:

     compute.firewalls.list
     compute.networks.list
     compute.projects.get
     compute.regions.list
     compute.subnetworks.get
     compute.subnetworks.list
     compute.subnetworks.use
     compute.zones.list
     resourcemanager.projects.get
     <!--NeedCopy-->
    

    次のGoogle定義の役割には、上に一覧表示された権限があります:

    • コンピューティングネットワークユーザー
    • クラウドデータストアユーザー
  • 準備の指示ディスクをMCSにダウンロードするときに、プロビジョニングプロジェクトにおいてCloud BuildサービスアカウントでGoogle Cloud Buildサービスが必要とする最低限の権限:

     compute.disks.create
     compute.disks.delete
     compute.disks.get
     compute.disks.list
     compute.disks.setLabels
     compute.disks.use
     compute.disks.useReadOnly
     compute.images.get
     compute.images.list
     compute.images.useReadOnly
     compute.instances.create
     compute.instances.delete
     compute.instances.get
     compute.instances.getSerialPortOutput
     compute.instances.list
     compute.instances.setLabels
     compute.instances.setMetadata
     compute.instances.setServiceAccount
     compute.machineTypes.list
     compute.networks.get
     compute.networks.list
     compute.projects.get
     compute.subnetworks.list
     compute.subnetworks.use
     compute.subnetworks.useExternalIp
     compute.zoneOperations.get
     compute.zones.list
     iam.serviceAccounts.actAs
     logging.logEntries.create
     pubsub.topics.publish
     resourcemanager.projects.get
     source.repos.get
     source.repos.list
     storage.buckets.create
     storage.buckets.get
     storage.buckets.list
     storage.objects.create
     storage.objects.delete
     storage.objects.get
     storage.objects.list
     <!--NeedCopy-->
    

    次のGoogle定義の役割には、上に一覧表示された権限があります:

    • Cloud Buildサービスアカウント
    • コンピューティングインスタンス管理者
    • サービスアカウントユーザー
  • 準備の指示ディスクをMCSにダウンロードするときに、プロビジョニングプロジェクトにおいてCloud ComputeサービスアカウントでGoogle Cloud Buildサービスが必要とする最低限の権限:

     resourcemanager.projects.get
     storage.objects.create
     storage.objects.get
     storage.objects.list
     <!--NeedCopy-->
    

    次のGoogle定義の役割には、上に一覧表示された権限があります:

    • コンピューティングネットワークユーザー
    • ストレージアカウントユーザー
    • クラウドデータストアユーザー
  • 準備の指示ディスクをMCSにダウンロードするときに、プロビジョニングプロジェクトにおいてCloud Buildサービスアカウントの共有VPCでGoogle Cloud Buildサービスが必要とする追加の権限:

     compute.firewalls.list
     compute.networks.list
     compute.subnetworks.list
     compute.subnetworks.use
     resourcemanager.projects.get
     <!--NeedCopy-->
    

    次のGoogle定義の役割には、上に一覧表示された権限があります:

    • コンピューティングネットワークユーザー
    • ストレージアカウントユーザー
    • クラウドデータストアユーザー
  • プロビジョニングプロジェクトにおいてCitrix Cloudサービスアカウントのクラウドキー管理サービス(KMS)に必要な追加の権限:

     cloudkms.cryptoKeys.get
     cloudkms.cryptoKeys.list
     cloudkms.keyRings.get
     cloudkms.keyRings.list
     <!--NeedCopy-->
    

    次のGoogle定義の役割には、上に一覧表示された権限があります:

    • コンピューティングKMS閲覧者

一般的な権限

以下はプロビジョニングプロジェクトでMCSがサポートするすべての機能に対するCitrix Cloudサービスアカウントの権限です。これらの権限では、今後も必要な互換性を提供する予定です。

resourcemanager.projects.get
cloudbuild.builds.create
cloudbuild.builds.get
cloudbuild.builds.list
compute.acceleratorTypes.list
compute.diskTypes.get
compute.diskTypes.list
compute.disks.create
compute.disks.createSnapshot
compute.disks.delete
compute.disks.get
compute.disks.setLabels
compute.disks.use
compute.disks.useReadOnly
compute.firewalls.create
compute.firewalls.delete
compute.firewalls.list
compute.globalOperations.get
compute.images.create
compute.images.delete
compute.images.get
compute.images.list
compute.images.setLabels
compute.images.useReadOnly
compute.instanceTemplates.create
compute.instanceTemplates.delete
compute.instanceTemplates.get
compute.instanceTemplates.list
compute.instanceTemplates.useReadOnly
compute.instances.attachDisk
compute.instances.create
compute.instances.delete
compute.instances.detachDisk
compute.instances.get
compute.instances.list
compute.instances.reset
compute.instances.resume
compute.instances.setDeletionProtection
compute.instances.setLabels
compute.instances.setMetadata
compute.instances.setTags
compute.instances.start
compute.instances.stop
compute.instances.suspend
compute.instances.update
compute.instances.updateAccessConfig
compute.instances.updateDisplayDevice
compute.instances.updateSecurity
compute.instances.updateShieldedInstanceConfig
compute.instances.updateShieldedVmConfig
compute.machineTypes.get
compute.machineTypes.list
compute.networks.list
compute.networks.updatePolicy
compute.nodeGroups.list
compute.nodeTemplates.get
compute.projects.get
compute.regions.list
compute.snapshots.create
compute.snapshots.delete
compute.snapshots.list
compute.snapshots.setLabels
compute.snapshots.useReadOnly
compute.subnetworks.get
compute.subnetworks.list
compute.subnetworks.use
compute.subnetworks.useExternalIp
compute.zoneOperations.get
compute.zoneOperations.list
compute.zones.get
compute.zones.list
resourcemanager.projects.get
storage.buckets.create
storage.buckets.delete
storage.buckets.get
storage.buckets.list
storage.buckets.update
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
cloudkms.cryptoKeys.get
cloudkms.cryptoKeys.list
cloudkms.keyRings.get
cloudkms.keyRings.list
<!--NeedCopy-->

次の手順

追加情報

Googleクラウド環境への接続