Googleクラウド環境への接続
「接続とリソースの作成と管理」では接続を作成するためのウィザードについて説明しています。以下の情報は、Googleクラウド環境に固有の詳細について説明しています。
注:
Googleクラウド環境への接続を作成する前に、まずGoogleクラウドアカウントをリソースの場所として設定する必要があります。「 Google Cloud仮想化環境」を参照してください。
接続の追加
Studioで、「接続とリソースの作成と管理」の手順に従います。次の説明は、ホスト接続を設定する手順を示しています:
- Studioの左側ペインで [ホスト] を選択します。
- 操作バーの [接続およびリソースの追加] を選択します。
-
[接続] ページで、[新しい接続を作成する] と [Citrixプロビジョニングツール] を選択してから [次へ] を選択します。
- ゾーン名。ホストリソースを配置するゾーン(リソースの場所に相当)を選択します。ゾーンは、リソースの場所を作成してCloud Connectorを追加すると自動的に作成されます。詳しくは、「ゾーン」を参照してください。
- 接続の種類。メニューから [Google Cloud Platform] を選択します。
-
サービスアカウントキー。Google資格情報ファイル(.json)に含まれるキーをインポートします。インポートを行うには、資格情報ファイルからキーを貼り付ける方法と、資格情報ファイルを参照する方法があります。キーを貼り付けるには:
- 資格情報ファイルを見つけます
- メモ帳(または任意のテキストエディター)でファイルを開きます
- キーの値をコピーします。
- [接続] ページに戻り、[キーの追加] を選択し、キーの値を貼り付けてから [Done] を選択します。
- サービスアカウントID。このフィールドには、サービスアカウントキーの情報が自動的に入力されます。
- 接続名。接続名を入力します。
-
Citrix Cloud Connectorを介してトラフィックをルーティングします。このチェックボックスをオンにすると、利用可能なCitrix Cloud Connector経由でAPI要求をルーティングできます。セキュリティを強化するには、[Google Cloud Buildを有効にしてプライベートプールを使用する] チェックボックスをオンにします。
また、PowerShellを使用してこの機能を有効にすることもできます。詳しくは、「GCP管理トラフィックのための安全な環境の作成」を参照してください。
注:
このオプションは、展開内にアクティブなCitrix Cloud Connectorがある場合にのみ使用できます。この機能は現時点ではConnector Applianceでサポートされていません。
- 仮想マシンの作成ツール。仮想マシンの作成ツールを選択できます。
-
[リージョン] ページで、メニューからプロジェクト名を選択し、使用するリソースを含むリージョンを選択して、[次へ] を選択します。
-
[ネットワーク] ページで、リソースの名前を入力し、メニューから仮想ネットワークを選択し、サブセットを選択してから [次へ] を選択します。このリージョンとネットワークの組み合わせを識別するためのわかりやすいリソース名を指定してください。名前に (Shared) サフィックスが付加された仮想ネットワークは、共有VPCを表しています。共有VPCにサブネットレベルのIAM役割を設定する場合、共有VPCの特定のサブネットのみがサブネットリストに表示されます。
注:
- リソース名は1~64文字にし、空白スペースのみにしたり記号(
\ / ; : # . * ? = < > | [ ] { } " ' ( ) ' )
)を含めたりすることはできません。
- リソース名は1~64文字にし、空白スペースのみにしたり記号(
- [概要] ページで情報を確認してから、[完了] を選択し、[接続およびリソースの追加] ウィンドウを終了します。
接続とリソースを作成すると、作成した接続とリソースが一覧表示されます。接続を構成するには、接続を選択してから、操作バーで該当するオプションを選択します。
同様に、接続の下で作成されたリソースを削除、名前変更、またはテストすることができます。これを行うには、接続の下のリソースを選択してから、操作バーで該当するオプションを選択します。
GCP管理トラフィックのための安全な環境の作成
自身のGoogle Cloudプロジェクトには、プライベートGoogleアクセスのみを許可できます。この実装により、機密データを処理するためのセキュリティが強化されます。これを行うには、以下の手順を実行します:
- VPCサービスの制御を適用するVPCにCloud Connectorをインストールします。詳しくは、「VPCサービスの制御」を参照してください。
- Citrix Cloud環境の場合は、
CustomProperties
にProxyHypervisorTrafficThroughConnector
を追加します。プライベートワーカープールを使用する場合は、CustomProperties
にUsePrivateWorkerPool
を追加します。プライベートワーカープールについて詳しくは、「 プライベートプールの概要」を参照してください。
注:
この機能は現時点ではConnector Applianceでサポートされていません。
GCP管理トラフィックのための安全な環境の作成要件
GCP管理トラフィックのための安全な環境の作成要件は以下のとおりです。
- カスタムプロパティを更新するときは、ホスト接続がメンテナンスモードであることを確認する。
- プライベートワーカープールを使用するには、以下の変更が必要です。
- Citrix Cloud Servicesアカウントの場合、以下のIAMロールを追加します。
- Cloud Buildサービスアカウント
- コンピューティングインスタンス管理者
- サービスアカウントユーザー
- サービスアカウントトークン作成者
- Cloud Buildワーカープールの所有者
- ホスト接続の作成に使用するのと同じプロジェクトに、Citrix Cloud Servicesのアカウントを作成します。
-
「DNS構成」の説明に従って、
private.googleapis.com
および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-->
- Citrix Cloud Servicesアカウントの場合、以下のIAMロールを追加します。
プロキシを有効にする
このプロキシを有効にするには、ホスト接続でカスタムプロパティを次のように設定します。
- Delivery ControllerホストからPowerShellウィンドウを開くか、Remote PowerShell SDKを使用します。Remote PowerShell SDKについて詳しくは、「SDKおよびAPI」を参照してください。
-
次のコマンドを実行します:
Add-PSSnapin citrix*
cd XDHyp:\Connections\
dir
- 接続の
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="ProxyHypervisorTrafficThroughConnector" Value="True"/> </CustomProperties> <!--NeedCopy-->
VPCサービス境界でCloud Buildサービスアカウントの送信用規則を許可します。例:
Ingress Rule 1 From: Identities: <ProjectID>@cloudbuild.gserviceaccount.com Source > All sources allowed To: Projects = All projects Services = Service name: All services <!--NeedCopy-->
VPCサービス境界について詳しくは、「サービス境界の詳細と構成」を参照してください。
-
クラウド環境のプライベートワーカープールの場合は、プロパティ設定
<Property xsi:type="StringProperty" Name="ProxyHypervisorTrafficThroughConnector" Value="True"/>
と<Property xsi:type="StringProperty" Name="UsePrivateWorkerPool" 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="ProxyHypervisorTrafficThroughConnector" Value="True"/> <Property xsi:type="StringProperty" Name="UsePrivateWorkerPool" Value="True"/> </CustomProperties> <!--NeedCopy-->
-
- PowerShellウィンドウで、変更したカスタムプロパティに変数を割り当てます。例:
$customProperty = '<CustomProperties…</CustomProperties>'
。 -
$gcpServiceAccount = "<ENTER YOUR SERVICE ACCOUNT EMAIL HERE>"
を実行します。 -
$gcpPrivateKey = "<ENTER YOUR SERVICE ACCOUNT PRIVATE KEY HERE AFTER REMOVING ALL INSTANCES OF \n >"
を実行します。 -
$securePassword = ConvertTo-SecureString $gcpPrivateKey -AsPlainText -Force
を実行します。 -
以下を実行して、既存のホスト接続を更新します:
Set-Item -PassThru -Path @('XDHyp:\Connections\<ENTER YOUR CONNECTION NAME HERE>') -SecurePassword $securePassword -UserName $gcpServiceAccount -CustomProperties $customProperty <!--NeedCopy-->
CMEKグローバルキーとリージョンキーの指定
GCPには、2種類の顧客管理暗号キー(CMEK)があります:
- リージョン:同じリージョン内のリソースでのみ使用できる暗号キー。
- グローバル:複数のリージョンのリソースで使用できる暗号キー。
サービスアカウントからアクセスできるすべてのプロジェクトから、グローバルまたはリージョンの顧客管理暗号キー(CMEK)を参照して使用できます。その後、このキーを使用してCMEKが有効になったMCSマシンカタログを作成し、Set-ProvScheme
コマンドを使用して既存のCMEK対応MCSマシンカタログを更新できます。PowerShellを使用してCMEK対応カタログを作成する方法については、「カスタムプロパティとCMEKを使用してカタログを作成する」を参照してください。
この機能を使用するには、次の2つのサービスアカウントに対する追加の権限が必要です:
- ホスト接続が作成される現在のプロジェクトのサービスアカウント。
- 現在のプロジェクトのCompute Engineサービスエージェント(メールアドレス:
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
)。詳しくは、「Compute Engineサービスエージェント」をご覧ください。
サービスアカウントでは、使用する暗号キーを持つプロジェクト(共有プロジェクトなど)に次の役割を割り当てる必要があります:
- Cloud KMS Viewer
- Cloud KMS CryptoKey Encrypter/Decrypter
役割を割り当てない場合は、次の権限があることを確認してください:
- resourcemanager.projects.get
- cloudkms.keyRings.list
- cloudkms.keyRings.get
- cloudkms.cryptoKeys.get
- cloudkms.cryptoKeys.list
- cloudkms.cryptoKeyVersions.useToDecrypt
- cloudkms.cryptoKeyVersions.useToEncrypt
暗号キーを一覧表示する
PowerShellコマンドを使用して、同じプロジェクト内およびアクセス可能な他のすべてのプロジェクト内のグローバル暗号キーとリージョン暗号キーを一覧表示できます。これを行うには、以下の手順を実行します:
- Delivery ControllerホストからPowerShellウィンドウを開きます。
- コマンド
asnp citrix*
を実行し、Citrix固有のPowerShellモジュールをロードします。 -
暗号キーを一覧表示するには、次のコマンドを実行します。例:
-
同じプロジェクト内のグローバル暗号キーを一覧表示するには:
XDHyp:\Connections\abc-Connection\my_project.project \us-east1.region\encryptionKeys.folder\myglobalkeyring.globalkeyring\myglobalkey.cryptokey <!--NeedCopy-->
-
同じプロジェクト内のリージョン暗号キーを一覧表示するには:
XDHyp:\Connections\abc-Connection\my_project.project\us-central1.region\encryptionKeys.folder\regional-ring.keyring\shared-key.key <!--NeedCopy-->
-
アクセス可能な別のプロジェクト(例:myanotherproject)のグローバル暗号キーを一覧表示するには:
XDHyp:\Connections\abc-Connection\my_project.project\us-central1.region\encryptionKeys.folder\myanotherproject .project\extglobalkeyring.globalkeyring\externalglobalkey.cryptokey <!--NeedCopy-->
-
アクセス可能な別のプロジェクト(例:myanotherproject)のリージョン暗号キーを一覧表示するには:
XDHyp:\Connections\abc-Connection\my_project.project\us-central1.region\encryptionKeys.folder\myanotherproject .project\extkeyring.keyring\externalkey.cryptokey <!--NeedCopy-->
-
注:
- グローバルキーリングのキーリングインベントリアイテムの拡張子は
.globalkeyring
です。- グローバルキーリングのIDには
global
という単語が含まれます。
必要なGCPの権限
このセクションでは、GCPの権限の完全な一覧が示されています。機能を正しく動作させるには、このセクションで示した権限の完全なセットを使用します。
注:
2024年4月29日、GCPはCloud Buildサービスのデフォルトの動作とサービスアカウントの使用に関する変更を導入します。詳しくは、「Cloud Buildサービスアカウントの変更」を参照してください。2024年4月29日より前にCloud Build APIが有効になっていた既存のGoogleプロジェクトは、この変更の影響を受けません。ただし、4月29日以降も既存のCloud Buildサービスの動作を維持する場合は、APIを有効にする前に、制約の適用を無効にする組織ポリシーを作成または適用できます。新しい組織ポリシーを設定する場合でも、このセクションの既存の権限と、「Cloud Buildサービスアカウントの変更前」と記載されている項目に従うことができます。そうでない場合は、「Cloud Buildサービスアカウントの変更後」と記載されている既存の権限と項目に従います。
ホスト接続の作成
-
プロビジョニングプロジェクトにおいて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定義の役割には、上に一覧表示された権限があります:
- コンピューティングネットワークユーザー
-
サービスアカウントでは、使用する暗号キーを持つプロジェクト(共有プロジェクトなど)に次の役割を割り当てる必要があります:
- Cloud KMS Viewer
- Cloud KMS CryptoKey Encrypter/Decrypter
役割を割り当てない場合は、次の権限があることを確認してください:
- resourcemanager.projects.get
- cloudkms.keyRings.list
- cloudkms.keyRings.get
- cloudkms.cryptoKeys.get
- cloudkms.cryptoKeys.list
- cloudkms.cryptoKeyVersions.useToDecrypt
- cloudkms.cryptoKeyVersions.useToEncrypt
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
compute.zoneOperations.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.get 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 compute.networks.get compute.resourcePolicies.use <!--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定義の役割には、上に一覧表示された権限があります:
- コンピューティングネットワークユーザー
- クラウドデータストアユーザー
-
(Cloud Buildサービスアカウントの変更前):準備の指示ディスクをMCSにダウンロードするときに、プロビジョニングプロジェクトにおいてCloud BuildサービスアカウントでGoogle Cloud Buildサービスが必要とする最低限の権限:
-
(Cloud Buildサービスアカウントの変更後):準備の指示ディスクをMCSにダウンロードするときに、プロビジョニングプロジェクトにおいてCloud ComputeサービスアカウントでGoogle Cloud Computeサービスが必要とする最低限の権限:
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サービスアカウント(Cloud Buildサービスアカウントの変更後は、Cloud Computeサービスアカウントになります)
- コンピューティングインスタンス管理者
- サービスアカウントユーザー
-
準備の指示ディスクをMCSにダウンロードするときに、プロビジョニングプロジェクトにおいてCloud ComputeサービスアカウントでGoogle Cloud Buildサービスが必要とする最低限の権限:
resourcemanager.projects.get storage.objects.create storage.objects.get storage.objects.list <!--NeedCopy-->
次のGoogle定義の役割には、上に一覧表示された権限があります:
- コンピューティングネットワークユーザー
- ストレージアカウントユーザー
- クラウドデータストアユーザー
- (Cloud Buildサービスアカウントの変更前):準備の指示ディスクをMCSにダウンロードするときに、プロビジョニングプロジェクトにおいてCloud Buildサービスアカウントの共有VPCでGoogle Cloud Buildサービスが必要とする追加の権限:
-
(Cloud Buildサービスアカウントの変更後):準備の指示ディスクをMCSにダウンロードするときに、プロビジョニングプロジェクトにおいてCloud Computeサービスアカウントの共有VPCでGoogle Cloud Computeサービスが必要とする追加の権限:
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.get
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
compute.disks.list
compute.instances.setServiceAccount
compute.networks.get
compute.networks.use
compute.networks.useExternalIp
iam.serviceAccounts.actAs
compute.resourcePolicies.use
cloudkms.cryptoKeyVersions.useToDecrypt
cloudkms.cryptoKeyVersions.useToEncrypt
<!--NeedCopy-->
次の手順
- 初期展開プロセスを行っている場合は、「マシンカタログの作成」を参照してください。
- Google Cloud Platform(GCP)固有の情報については、「Google Cloud Platformカタログの作成」を参照してください。