Citrix DaaS

Google Cloud仮想化環境

Citrix DaaS(旧称Citrix Virtual Apps and Desktopsサービス)を使用すると、Google Cloudでマシンをプロビジョニングおよび管理できます。

要件

  • Citrix Cloudアカウント:この機能はCitrix Cloudでのみ使用できます。
  • Citrix DaaSサブスクリプション。詳しくは、「はじめに」を参照してください。
  • Google Cloudプロジェクト。このプロジェクトには、マシンカタログに関連付けられたすべてのコンピューティングリソースが格納されます。既存のプロジェクトでも新しいプロジェクトでもかまいません。
  • Google Cloudプロジェクトで4つのAPIを有効にします。詳しくは、「Google Cloud APIの有効化」を参照してください。
  • Google Cloudサービスアカウント。サービスアカウントは、プロジェクトへのアクセスを可能にするために、Google Cloudに対して認証されます。詳しくは、「サービスアカウントの構成と更新」を参照してください。
  • Googleプライベートアクセスの有効化。詳しくは、「プライベートGoogleアクセスの有効化」を参照してください。

Google Cloudプロジェクト

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

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

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

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

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

Google Cloud APIの有効化

Citrix DaaSの完全な構成インターフェイスでGoogle Cloud機能を使用するには、Google Cloudプロジェクトで次のAPIを有効にします:

  • Compute Engine API
  • Cloud Resource Manager API
  • Identity and Access Management(IAM)API
  • Cloud Build API

Google Cloudコンソールから、次の手順を実行します:

  1. 左上隅のメニューで [APIとサービス]>[Enabled APIs & services] を選択します。
  2. [Enabled APIs & services] 画面で、[Compute Engine API]が有効になっていることを確認します。有効になっていない場合、次の手順を実行します:

    1. [APIとサービス]>[ライブラリ] の順に選択します。
    2. 検索ボックスに 「Compute Engine」 と入力します。
    3. 検索結果から、[Compute Engine API] を選択します。
    4. [Compute Engine API] ページで、[Enable] を選択します。
  3. Cloud Resource Manager APIを有効にします。
    1. [APIとサービス]>[ライブラリ] の順に選択します。
    2. 検索ボックスに 「Cloud Resource Manager」 と入力します。
    3. 検索結果から、[Cloud Resource Manager API] を選択します。
    4. [Cloud Resource Manager API] ページで、[Enable] を選択します。APIのステータスが表示されます。
  4. 同様に、[Identity and Access Management (IAM) API][Cloud Build API]、および [Cloud Key Management Service (KMS) API] を有効にします。

Google Cloud Shellを使用してAPIを有効にすることもできます。これを行うには、以下の手順を実行します:

  1. Googleコンソールを開き、Cloud Shellを読み込みます。
  2. Cloud Shellで次の4つのコマンドを実行します:

    • gcloud services enable compute.googleapis.com
    • gcloud services enable cloudresourcemanager.googleapis.com
    • gcloud services enable iam.googleapis.com
    • gcloud services enable cloudbuild.googleapis.com
    • gcloud services enable cloudbuild.googleapis.com
  3. Cloud Shellでプロンプトが表示されたら、[Authorize] をクリックします。

サービスアカウントの構成と更新

Citrix Cloudは、Google Cloudプロジェクト内で次の3つの個別のサービスアカウントを使用します:

  • Citrix Cloudサービスアカウント:このサービスアカウントにより、Citrix CloudはGoogleプロジェクトにアクセスし、マシンをプロビジョニングおよび管理できます。Google Cloudアカウントは、Google Cloudによって生成されたキーを使用して、Citrix Cloudに対して認証されます。

    ここで説明するように、このサービスアカウントを手動で作成する必要があります。詳しくは、「Citrix Cloudサービスアカウントの作成」を参照してください。

    このサービスアカウントは、メールアドレスで識別できます。例:<my-service-account>@<project-id>.iam.gserviceaccount.com

  • Cloud Buildサービスアカウント:このサービスアカウントは、「Google Cloud APIの有効化」に記載されているすべてのAPIを有効にすると自動的にプロビジョニングされます。自動的に作成されたサービスアカウントをすべて表示するには、Google Cloudコンソールで [IAM & admin]>[IAM] の順に移動し、[Google提供のロール付与を含める] チェックボックスをオンにします。

    このサービスアカウントは、Project IDと、cloudbuildで始まるメールアドレスで識別できます。例:<project-id>@cloudbuild.gserviceaccount.com

    サービスアカウントに次の役割が付与されているかどうかを確認します。役割を追加する必要がある場合は、「Cloud Buildサービスアカウントへの役割の追加」で説明されている手順に従います。

    • Cloud Buildサービスアカウント
    • コンピューティングインスタンス管理者
    • サービスアカウントユーザー
  • Cloud Computeサービスアカウント:このサービスアカウントは、Compute APIがアクティブ化されると、Google Cloudで作成されたインスタンスにGoogle Cloudによって追加されます。このアカウントには、操作を行うためのIAMの基本編集者の役割があります。ただし、より詳細な制御を行うためにデフォルトのアクセス権限を削除する場合は、次のアクセス権限を必要とする ストレージ管理者の役割を追加する必要があります:

    • resourcemanager.projects.get
    • storage.objects.create
    • storage.objects.get
    • storage.objects.list

このサービスアカウントは、プロジェクトIDと、computeという単語で始まるメールアドレスで識別できます。例:<project-id>-compute@developer.gserviceaccount.com

注:

2024年4月29日、GCPはCloud Buildのデフォルトの動作と新しいプロジェクトでのサービスアカウントの使用に関する変更を導入します。したがって、この記事には変更が加えられます。ただし、既存のGoogleプロジェクトとCitrixカタログは、GCPによるこの変更の影響を受けません。詳しくは、「Cloud Buildサービスアカウントの変更」を参照してください。

Citrix Cloudサービスアカウントの作成

Citrix Cloudサービスアカウントを作成するには、次の手順に従います:

  1. Google Cloudコンソールで、[IAMと管理]>[サービスアカウント] の順に選択します。
  2. [Service accounts]ページで、[CREATE SERVICE ACCOUNT] を選択します。
  3. [Create service account] ページで必要な情報を入力してから、[CREATE AND CONTINUE] を選択します。
  4. [Grant this service account access to project] ページで、[Select a role] ドロップダウンメニューをクリックし、必要な役割を選択します。役割を追加する場合は、[+ADD ANOTHER ROLE] をクリックします。

各アカウント(個人またはサービス)には、プロジェクトの管理を定義するさまざまな役割があります。このサービスアカウントに次の役割を付与します:

-  Compute Admin
-  Storage Admin
-  Cloud Build Editor
-  Service Account User
-  Cloud Datastore User
-  Cloud KMS Crypto Operator

The Cloud KMS Crypto Operator requires the following permissions:

-  cloudkms.cryptoKeys.get
-  cloudkms.cryptoKeys.list
-  cloudkms.keyRings.get
-  cloudkms.keyRings.list

> **Note:**
>
> Enable all the APIs to get the complete list of roles available while creating a new service account.
  1. [CONTINUE] をクリックします
  2. [Grant users access to this service account] ページでユーザーまたはグループを追加し、このサービスアカウントで操作を実行できるアクセス権をユーザーに付与します。
  3. [DONE] をクリックします。
  4. IAMメインコンソールに移動します。
  5. 作成されたサービスアカウントを識別します。
  6. 役割が正常に割り当てられていることを確認します。

注意事項:

サービスアカウントを作成するときは、次の点を考慮してください:

  • [Grant this service account access to project]Grant users access to this service account]の手順は任意です。これらのオプションの構成手順をスキップする場合、新しく作成されたサービスアカウントは [IAMと管理]>[IAM] ページには表示されません。
  • サービスアカウントに関連付けられている役割を表示するには、オプションの手順をスキップせずに役割を追加します。このプロセスにより、構成されたサービスアカウントの役割が確実に表示されます。

Citrix Cloudサービスアカウントキー

Citrix DaaSで接続を作成するには、Citrix Cloudサービスアカウントキーが必要です。キーは資格情報ファイル(.json)に含まれています。キーを作成すると、ファイルが自動的にダウンロードされ、「Downloads」フォルダーに保存されます。キーを作成するときは、必ずキータイプをJSONに設定してください。それ以外の場合、Citrixの完全な構成インターフェイスでは解析できません。

サービスアカウントキーを作成するには、[IAM & Admin]>[Service accounts] に移動してCitrix Cloudサービスアカウントのメールアドレスをクリックします。[Keys] タブを選択してから、[Add Key]>[Create new key] を選択します。キーの種類として必ずJSONを選択してください。

ヒント:

Google Cloudコンソールの[Service accounts] ページを使用してキーを作成します。セキュリティのために、キーを定期的に変更することをお勧めします。既存のGoogle Cloud接続を編集することで、Citrix Virtual Apps and Desktopsアプリケーションに新しいキーを提供できます。

Citrix Cloudサービスアカウントへの役割の追加

Citrix Cloudサービスアカウントに役割を追加するには:

  1. Google Cloudコンソールで、[IAMと管理]>[IAM] の順に選択します。
  2. [IAM]>[PERMISSIONS] ページで、作成したサービスアカウントを見つけ、メールアドレスで識別します。

    例:<my-service-account>@<project-id>.iam.gserviceaccount.com

  3. 鉛筆アイコンを選択して、サービスアカウントのプリンシパルへのアクセス権を編集します。
  4. 選択したプリンシパルオプションの [Edit access to “project-id”] ページで、[ADD ANOTHER ROLE] を選択してサービスアカウントに必要な役割を1つずつ追加し、[SAVE] を選択します。

Cloud Buildサービスアカウントへの役割の追加

Cloud Buildサービスアカウントに役割を追加するには:

  1. Google Cloudコンソールで、[IAMと管理]>[IAM] の順に選択します。
  2. [IAM] ページで、Project IDと、cloudbuildで始まるメールアドレスで識別できるCloud Buildサービスアカウントを見つけます。

    例:<project-id>@cloudbuild.gserviceaccount.com

  3. 鉛筆アイコンを選択して、Cloud Buildアカウントの役割を編集します。
  4. 選択したプリンシパルオプションの [Edit access to “project-id”] ページで、[ADD ANOTHER ROLE] を選択してCloud Buildサービスアカウントに必要な役割を1つずつ追加し、[SAVE] を選択します。

    注:

    すべてのAPIを有効にして、役割の完全な一覧を取得します。

ストレージ権限とバケットの管理

Citrix DaaSは、Google Cloudサービスのクラウドビルドエラーのレポートプロセスを改善します。このサービスは、Google Cloudでビルドを実行します。Citrix DaaSは、Google Cloudサービスがビルドログ情報をキャプチャするcitrix-mcs-cloud-build-logs-{region}-{5 random characters}という名前のストレージバケットを作成します。このバケットには、30日後にコンテンツを削除するオプションが設定されています。このプロセスでは、接続に使用するサービスアカウントで、Google Cloudの権限がstorage.buckets.updateに設定されている必要があります。サービスアカウントにこの権限が設定されていない場合、Citrix DaaSはエラーを無視し、カタログの作成プロセスを続行します。この権限がないと、ビルドログのサイズが大きくなり、手動によるクリーンアップが必要になります。

プライベートGoogleアクセスの有効化

ネットワークインターフェイスに割り当てられた外部IPアドレスがVMにない場合、パケットは他の内部IPアドレスの宛先にのみ送信されます。プライベートアクセスを有効にすると、VMはGoogle APIおよび関連サービスで使用される外部IPアドレスのセットに接続します。

注:

プライベートGoogleアクセスが有効になっているかどうかに関係なく、パブリックIPアドレスを持つVMもパブリックIPアドレスを持たないVMもすべて、特にサードパーティのネットワークアプライアンスが環境にインストールされている場合、GoogleパブリックAPIにアクセスできる必要があります。

サブネット内のVMが、MCSプロビジョニング用のパブリックIPアドレスなしでGoogle APIにアクセスできるようにするには:

  1. Google Cloudで、[VPC network configuration] にアクセスします。
  2. [Subnets in current project] タブで、Citrix環境に利用されているサブネットを特定します。
  3. サブネットの名前をクリックし、Private Google Accessを有効にします。

詳しくは、「プライベートGoogleアクセスの構成」を参照してください。

重要:

インターネットへのVMアクセスを防止するようにネットワークが構成されている場合は、VMが接続されているサブネットに対してプライベートGoogleアクセスを有効にすることに関連するリスクを、組織が想定していることを確認してください。

次の手順

追加情報

Google Cloud仮想化環境