Citrix Virtual Apps and Desktops 7 2203 LTSR

AWS クラウド環境

この記事では、Citrix Virtual Apps and Desktops で使用できるリソースの場所として AWS アカウントを設定する手順を説明します。このリソースの場所には、概念実証や、複数のアベイラビリティゾーンにリソースを分散させる必要のないその他の展開に最適な、基本的なコンポーネントセットが含まれています。これらのタスクを完了すると、VDA のインストール、マシンのプロビジョニング、マシンカタログの作成、デリバリーグループの作成が可能になります。

この記事のタスクを完了すると、リソースの場所には次のコンポーネントが含まれます。

  • 単一のアベイラビリティゾーン内にパブリックサブネットとプライベートサブネットを持つ仮想プライベートクラウド (VPC)。
  • VPC のプライベートサブネットに配置された、Active Directory ドメインコントローラーと DNS サーバーの両方として実行されるインスタンス。
  • VPC のパブリックサブネットで踏み台ホストとして機能するインスタンス。このインスタンスは、管理目的でプライベートサブネット内のインスタンスへの RDP 接続を開始するために使用されます。リソースの場所の設定が完了したら、このインスタンスをシャットダウンして、簡単にアクセスできないようにすることができます。VDA インスタンスなど、プライベートサブネット内の他のインスタンスを管理する必要がある場合は、踏み台ホストインスタンスを再起動できます。

制限事項

Citrix Virtual Apps and Desktops 2203 LTSR 以降では、MCS AWS プラグインは DescribeInstanceTypes AWS API 呼び出しを行い、それが成功した場合、MCS は API 応答から作成されたインベントリ名を使用します。

したがって、CVAD 1912 から 2203 以降にアップグレードする場合は、AWS で DefineInstanceType 権限を無効にし、その後、Set-ProvScheme コマンドを使用して既存のカタログを更新し、AWS の命名スキームに合わせます。その後、カタログの更新が完了し、サービス提供が AWS の命名スキームと一致したら、DescribeInstanceType 権限を再度追加します。

タスクの概要

パブリックサブネットとプライベートサブネットを持つ仮想プライベートクラウド (VPC) を設定します。 このタスクを完了すると、AWS はパブリックサブネットに Elastic IP アドレスを持つ NAT ゲートウェイを展開します。このアクションにより、プライベートサブネット内のインスタンスはインターネットにアクセスできるようになります。パブリックサブネット内のインスタンスはインバウンドのパブリックトラフィックにアクセスできますが、プライベートサブネット内のインスタンスはアクセスできません。

セキュリティグループを設定します。 セキュリティグループは、VPC 内のインスタンスのトラフィックを制御する仮想ファイアウォールとして機能します。パブリックサブネット内のインスタンスがプライベートサブネット内のインスタンスと通信できるように、セキュリティグループにルールを追加します。また、これらのセキュリティグループを VPC 内の各インスタンスに関連付けます。

DHCP オプションセットを作成します。 Amazon VPC では、DHCP および DNS サービスがデフォルトで提供されるため、Active Directory ドメインコントローラーで DNS を構成する方法に影響します。Amazon の DHCP は無効にできず、Amazon の DNS はパブリック DNS 解決にのみ使用でき、Active Directory 名解決には使用できません。DHCP を介してインスタンスに渡されるドメインとネームサーバーを指定するには、DHCP オプションセットを作成します。このセットは、Active Directory ドメインサフィックスを割り当て、VPC 内のすべてのインスタンスの DNS サーバーを指定します。インスタンスがドメインに参加したときにホスト (A) および逆引き (PTR) レコードが自動的に登録されるようにするには、プライベートサブネットに追加する各インスタンスのネットワークアダプタープロパティを構成します。

踏み台ホストとドメインコントローラーを VPC に追加します。 踏み台ホストを介して、プライベートサブネット内のインスタンスにログオンし、ドメインを設定してインスタンスをドメインに参加させることができます。

タスク 1: VPC を設定する

  1. AWS マネジメントコンソールから、VPC を選択します。
  2. VPC ダッシュボードから、VPC の作成 を選択します。
  3. VPC など を選択します。
  4. NAT ゲートウェイ ($) で、1 AZ 内 または AZ ごとに 1 つ を選択します。
  5. DNS オプションで、DNS ホスト名を有効にする を選択したままにします。
  6. VPC の作成 を選択します。AWS は、パブリックおよびプライベートサブネット、インターネットゲートウェイ、ルートテーブル、およびデフォルトのセキュリティグループを作成します。

タスク 2: セキュリティグループを構成する

このタスクでは、VPC 用に次のセキュリティグループを作成および構成します。

  • パブリックサブネット内のインスタンスに関連付けるパブリックセキュリティグループ。
  • プライベートサブネット内のインスタンスに関連付けるプライベートセキュリティグループ。

セキュリティグループを作成するには:

  1. VPC ダッシュボードで、セキュリティグループ を選択します。
  2. パブリックセキュリティグループのセキュリティグループを作成します。セキュリティグループの作成 を選択し、グループの名前タグと説明を入力します。VPC で、以前に作成した VPC を選択します。はい、作成 を選択します。

パブリックセキュリティグループを構成する

  1. セキュリティグループリストから、パブリックセキュリティグループを選択します。

  2. インバウンドルール」タブを選択し、「編集」を選択して、次のルールを作成します。

    タイプ ソース
    すべてのトラフィック プライベートセキュリティグループを選択します。
    すべてのトラフィック パブリックセキュリティグループを選択します。
    ICMP (アイシーエムピー) 0.0.0.0/0
    22 (SSH) 0.0.0.0/0
    80 (HTTP) 0.0.0.0/0
    443 (HTTPSプロトコル) 0.0.0.0/0
    1494 (ICA/HDXプロトコル) 0.0.0.0/0
    2598 (セッション信頼性) 0.0.0.0/0
    3389 (RDP) 0.0.0.0/0
  3. 完了したら、保存を選択します。

  4. アウトバウンドルールタブを選択し、編集を選択して、次のルールを作成します。

    タイプ 送信先
    すべてのトラフィック プライベートセキュリティグループを選択します。
    すべてのトラフィック 0.0.0.0/0
    ICMP (アイシーエムピー) 0.0.0.0/0
  5. 完了したら、保存を選択します。

プライベートセキュリティグループを構成する

  1. セキュリティグループリストから、プライベートセキュリティグループを選択します。

  2. パブリックセキュリティグループからのトラフィックを設定していない場合は、TCPポートを設定する必要があります。インバウンドルールタブを選択し、編集を選択して次のルールを作成します。

    タイプ ソース
    すべてのトラフィック プライベートセキュリティグループを選択します。
    すべてのトラフィック パブリックセキュリティグループを選択します。
    アイシーエムピー パブリックセキュリティグループを選択します。
    TCP 53 (DNS) パブリックセキュリティグループを選択します。
    UDP 53 (DNS) パブリックセキュリティグループを選択します。
    80 (HTTPプロトコル) パブリックセキュリティグループを選択します。
    TCP 135 パブリックセキュリティグループを選択します。
    TCP 389 パブリックセキュリティグループを選択します。
    UDP 389 パブリックセキュリティグループを選択します。
    443 (HTTPS) パブリックセキュリティグループを選択します。
    ティーシーピー 1494 (ICA/HDX) ポート パブリックセキュリティグループを選択します。
    TCP 2598 (セッションの信頼性) パブリックセキュリティグループを選択します。
    3389 (RDP) パブリックセキュリティグループを選択します。
    TCP 49152–65535 パブリックセキュリティグループを選択します。
  3. 完了したら、保存を選択します。

  4. アウトバウンドルールタブを選択し、編集を選択して次のルールを作成します:

    タイプ 送信先
    すべてのトラフィック プライベートセキュリティグループを選択します。
    すべてのトラフィック 0.0.0.0/0
    アイシーエムピー 0.0.0.0/0
    UDP 53 (DNS) 0.0.0.0/0
  5. 完了したら、保存を選択します。

タスク 3: インスタンスの起動

2つのEC2インスタンスを作成し、Amazonが生成するデフォルトの管理者パスワードを復号化するには、次の手順を実行します。

  1. AWS管理コンソールから、EC2を選択します。
  2. EC2ダッシュボードから、インスタンスの起動を選択します。
  3. Windows Serverマシンイメージとインスタンスタイプを選択します。
  4. インスタンスの詳細設定ページで、インスタンスの名前を入力し、以前に設定したVPCを選択します。
  5. サブネットで、各インスタンスについて次の選択を行います。

    • 踏み台ホスト: パブリックサブネットを選択します
    • ドメインコントローラー: プライベートサブネットを選択します
  6. パブリックIPの自動割り当てで、各インスタンスについて次の選択を行います。

    • 踏み台ホスト: 有効を選択します。
    • ドメインコントローラー: デフォルト設定を使用を選択するか、無効を選択します。
  7. ネットワークインターフェース」で、ドメインコントローラーのプライベートサブネットのIP範囲内のプライマリIPアドレスを入力します。
  8. 必要に応じて、「ストレージの追加」ページでディスクサイズを変更します。
  9. インスタンスのタグ付け」ページで、各インスタンスにわかりやすい名前を入力します。
  10. セキュリティグループの設定」ページで、「既存のセキュリティグループを選択」を選択し、各インスタンスについて以下の選択を行います。

    • Bastionホスト: パブリックセキュリティグループを選択します。
    • ドメインコントローラー: プライベートセキュリティグループを選択します。
  11. 選択内容を確認し、「起動」を選択します。
  12. 新しいキーペアを作成するか、既存のキーペアを選択します。新しいキーペアを作成する場合は、プライベートキー(.pem)ファイルをダウンロードして安全な場所に保管してください。インスタンスのデフォルトの管理者パスワードを取得する際には、プライベートキーを提供する必要があります。
  13. インスタンスの起動」を選択します。「インスタンスの表示」を選択して、インスタンスのリストを表示します。新しく起動したインスタンスにアクセスする前に、すべてのステータスチェックに合格するまで待機します。
  14. 各インスタンスのデフォルトの管理者パスワードを取得します。

    1. インスタンスリストからインスタンスを選択し、「接続」を選択します。
    2. RDPクライアント」タブに移動し、「パスワードの取得」を選択し、プロンプトが表示されたらプライベートキー(.pem)ファイルをアップロードします。
    3. パスワードの復号」を選択して、人間が読めるパスワードを取得します。AWSがデフォルトのパスワードを表示します。
  15. ステップ2から手順を繰り返し、2つのインスタンスを作成します。

    • パブリックサブネット内のBastionホストインスタンスを1つ
    • プライベートサブネット内のインスタンスを1つ、ドメインコントローラーとして使用します。

タスク4:DHCPオプションセットを作成する

  1. VPCダッシュボードから、DHCPオプションセットを選択します。

  2. 次の情報を入力します。

    • 名前タグ:セットのわかりやすい名前を入力します。
    • ドメイン名:ドメインコントローラーインスタンスを設定するときに使用する完全修飾ドメイン名を入力します。
    • ドメインネームサーバー:ドメインコントローラーインスタンスに割り当てたプライベートIPアドレスと、コンマで区切られた文字列AmazonProvidedDNSを入力します。
    • NTPサーバー:このフィールドは空白のままにします。
    • NetBIOSネームサーバー:ドメインコントローラーインスタンスのプライベートIPアドレスを入力します。
    • NetBIOSノードタイプ:2と入力します。
  3. はい、作成しますを選択します。

  4. 新しいセットをVPCに関連付けます。

    1. VPCダッシュボードから、VPCを選択し、以前に設定したVPCを選択します。
    2. アクション > DHCPオプションセットの編集を選択します。
    3. プロンプトが表示されたら、作成した新しいセットを選択し、保存を選択します。

タスク 5: インスタンスを構成する

  1. RDPクライアントを使用して、踏み台ホストインスタンスのパブリックIPアドレスに接続します。プロンプトが表示されたら、管理者アカウントの資格情報を入力します。

  2. 踏み台ホストインスタンスからリモートデスクトップ接続を起動し、構成するインスタンスのプライベートIPアドレスに接続します。プロンプトが表示されたら、そのインスタンスの管理者資格情報を入力します。

  3. プライベートサブネット内のすべてのインスタンスについて、DNS設定を構成します。

    1. スタート > コントロールパネル > ネットワークとインターネット > ネットワークと共有センター > アダプターの設定の変更を選択します。表示されたネットワーク接続をダブルクリックします。
    2. プロパティ > インターネットプロトコルバージョン4 (TCP/IPv4) > プロパティを選択します。
    3. 詳細設定 > DNSを選択します。以下の設定が有効になっていることを確認し、OKを選択します。

      • この接続のアドレスをDNSに登録する
      • DNS登録でこの接続のDNSサフィックスを使用する
  4. ドメインコントローラーを構成するには:

    1. サーバーマネージャーを使用して、Active Directoryドメインサービスロールをすべてのデフォルト機能とともに追加します。
    2. インスタンスをドメインコントローラーに昇格させます。昇格中にDNSを有効にし、DHCPオプションセットを作成したときに指定したドメイン名を使用します。プロンプトが表示されたらインスタンスを再起動します。

接続を作成する

Studioから接続を作成する場合:

  • APIキーとシークレットキーの値を指定する必要があります。これらの値を含むキーファイルをAWSからエクスポートし、インポートできます。また、リージョン、アベイラビリティゾーン、VPC名、サブネットアドレス、ドメイン名、セキュリティグループ名、および資格情報も指定する必要があります。
  • ルートAWSアカウントの資格情報ファイル(AWSコンソールから取得)は、標準のAWSユーザー向けにダウンロードされた資格情報ファイルと同じ形式ではありません。そのため、Citrix Virtual Apps and Desktops管理では、このファイルを使用してAPIキーとシークレットキーのフィールドに入力することはできません。AWS Identity Access Management (IAM) の資格情報ファイルを使用していることを確認してください。

注:

接続を作成した後、APIキーとシークレットキーの更新が失敗する場合があります。この問題を解決するには、プロキシサーバーまたはファイアウォールの制限を確認し、次のアドレスに接続できることを確認してください: https://*.amazonaws.com

ホスト接続のデフォルト値

AWSクラウド環境でホスト接続を作成すると、次のデフォルト値が表示されます。

オプション 絶対 パーセンテージ
同時アクション (すべてのタイプ) 125 100
1分あたりの最大新規アクション数 125  

MCSは、デフォルトで最大100の同時プロビジョニング操作をサポートしています。

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

標準ゾーンサービスエンドポイントURL

MCSを使用すると、APIキーとAPIシークレットを使用して新しいAWS接続が追加されます。この情報と認証済みアカウントを使用して、MCSはAWS DescribeRegions EC2 API呼び出しを使用してサポートされているゾーンについてAWSにクエリを実行します。クエリは汎用EC2サービスエンドポイントURL https://ec2.amazonaws.com/ を使用して行われます。MCSを使用して、サポートされているゾーンのリストから接続するゾーンを選択します。優先されるAWSサービスエンドポイントURLは、ゾーンに対して自動的に選択されます。ただし、サービスエンドポイントURLを作成した後、そのURLを設定または変更することはできません。

AWSテナンシー

AWSは、共有テナンシー(デフォルトタイプ)と専用テナンシーの2つのテナンシーオプションを提供します。共有テナンシーとは、異なる顧客の複数のAmazon EC2インスタンスが同じ物理ハードウェア上に存在する可能性があることを意味します。専用テナンシーとは、EC2インスタンスが、展開した他のインスタンスと同じハードウェア上でのみ実行されることを意味します。他の顧客は同じハードウェアを使用しません。

PowerShellを使用して、MCSでAWS専用ホストをプロビジョニングできます。

PowerShellを使用したAWS専用ホストテナンシーの構成

PowerShellを介してホストテナンシーが定義されたマシンのカタログを作成できます。

Amazon [EC2] 専用ホストは、[EC2] インスタンス容量を持つ物理サーバーであり、完全に専用であるため、既存のソケットごとまたはVMごとのソフトウェアライセンスを使用できます。

専用ホストには、インスタンスタイプに基づいて事前に設定された使用率があります。たとえば、C4 Largeインスタンスタイプの単一の割り当て済み専用ホストは、16インスタンスの実行に制限されています。詳細については、AWSサイト を参照してください。

AWSホストへのプロビジョニングの要件は次のとおりです。

  • インポートされたBYOL(bring your own license)イメージ(AMI)。専用ホストでは、既存のライセンスを使用および管理します。
  • プロビジョニング要求を満たすのに十分な使用率を持つ専用ホストの割り当て。
  • 自動配置を有効にする。

PowerShellを使用してAWSの専用ホストにプロビジョニングするには、TenancyTypeパラメーターをHostに設定してNew-ProvSchemeコマンドレットを使用します。

詳細については、Citrix開発者向けドキュメント を参照してください。

AWS インスタンスプロパティのキャプチャ

AWSでMachine Creation Services (MCS) を使用してマシンをプロビジョニングするためのカタログを作成する際、そのカタログのマスター/ゴールデンイメージを表すAMIを選択します。そのAMIから、MCSはディスクのスナップショットを使用します。以前のリリースでは、マシンにロールやタグを設定したい場合、AWSコンソールを使用して個別に設定していました。この機能はデフォルトで有効になっています。

ヒント:

AWSインスタンスプロパティのキャプチャを使用するには、AMIに関連付けられたVMが必要です。

このプロセスを改善するために、MCSは、AMIが取得されたインスタンスからプロパティを読み取り、特定のカタログ用にプロビジョニングされたマシンに、そのマシンのIdentity Access Management (IAM) ロールとタグを適用します。このオプション機能を使用すると、カタログ作成プロセスは、選択されたAMIソースインスタンスを見つけ、限られたプロパティセットを読み取ります。これらのプロパティはAWS起動テンプレートに保存され、そのカタログのマシンをプロビジョニングするために使用されます。カタログ内のすべてのマシンは、キャプチャされたインスタンスプロパティを継承します。

キャプチャされるプロパティには以下が含まれます。

  • IAMロール – プロビジョニングされたインスタンスに適用されます。
  • タグ - プロビジョニングされたインスタンス、そのディスク、およびNICに適用されます。これらのタグは、S3バケットとオブジェクト、ボリュームとワーカーリソース、AMI、スナップショット、起動テンプレートなど、一時的なCitrix®リソースに適用されます。

ヒント:

一時的なCitrixリソースのタグ付けはオプションであり、カスタムプロパティAwsOperationalResourcesTaggingを使用して構成できます。

AWSインスタンスプロパティのキャプチャ

AWSホスティング接続のプロビジョニングスキームを作成する際に、カスタムプロパティAwsCaptureInstancePropertiesを指定することで、この機能を使用できます。

New-ProvScheme -CustomProperties “AwsCaptureInstanceProperties,true” …<standard provscheme parameters

詳細については、Citrix 開発者向けドキュメントを参照してください。

AWSインスタンスプロパティの適用と運用リソースのタグ付け

MCSを使用してAWSでマシンをプロビジョニングするためのカタログを作成する際、IAMロールとタグプロパティをそれらのマシンに適用するかどうかを制御できます。また、マシンのタグを運用リソースに適用するかどうかも制御できます。

AWS運用リソースのタグ付け

Amazon Machine Image (AMI) は、Amazon Cloud環境内で仮想マシンを作成するために使用される仮想アプライアンスの一種であり、一般にEC2と呼ばれます。AMIを使用して、EC2環境を使用するサービスを展開します。AWS向けにMCSを使用してマシンをプロビジョニングするためのカタログを作成する際、そのカタログのゴールデンイメージとして機能するAMIを選択します。

重要:

運用リソースのタグ付けを使用するには、インスタンスプロパティと起動テンプレートをキャプチャしてカタログを作成する必要があります。

AWSカタログを作成するには、まずゴールデンイメージとするインスタンスのAMIを作成する必要があります。MCSはそのインスタンスからタグを読み取り、起動テンプレートに組み込みます。その後、起動テンプレートのタグは、AWS環境で作成されるすべてのCitrixリソースに適用されます。これには以下が含まれます。

  • 仮想マシン
  • VMディスク
  • VMネットワークインターフェイス
  • S3バケット
  • S3オブジェクト
  • 起動テンプレート
  • AMI

運用リソースのタグ付け

PowerShellを使用してリソースにタグを付けるには:

  1. DDCホストからPowerShellウィンドウを開きます。
  2. Citrix固有のPowerShellモジュールをロードするには、asnp citrixコマンドを実行します。

プロビジョニングされたVMのリソースにタグを付けるには、新しいカスタムプロパティAwsOperationalResourcesTaggingを使用します。このプロパティの構文は次のとおりです。

New-ProvScheme -CustomProperties “AwsCaptureInstanceProperties,true; AwsOperationalResourcesTagging,true” …<standard provscheme parameters>

IAM権限の定義

このセクションの情報を使用して、AWS上のCitrix DaaSのIAM権限を定義します。AmazonのIAMサービスでは、複数のユーザーを持つアカウントが許可されており、それらのユーザーはさらにグループに編成できます。これらのユーザーは、アカウントに関連する操作を実行する能力を制御するために、異なる権限を持つことができます。IAM権限の詳細については、「IAM JSON policy reference」を参照してください。

新しいユーザーグループにIAM権限ポリシーを適用するには:

  1. AWS管理コンソールにログインし、ドロップダウンリストからIAMサービスを選択します。
  2. 新しいユーザーグループを作成を選択します。
  3. 新しいユーザーグループの名前を入力し、Continueを選択します。
  4. 権限ページで、カスタムポリシーを選択します。選択を選択します。
  5. 権限ポリシーの名前を入力します。
  6. Policy Documentセクションに、関連する権限を入力します。

ポリシー情報を入力したら、Continueを選択してユーザーグループを完成させます。グループ内のユーザーには、Citrix DaaSに必要なアクションのみを実行する権限が付与されます。

重要:

上記の例で提供されているポリシーテキストを使用して、Citrix DaaSがAWSアカウント内でアクションを実行するために使用するアクションを、特定のリソースに制限することなくリストします。Citrixは、テスト目的でこの例を使用することを推奨します。本番環境では、リソースにさらなる制限を追加することを選択できます。

IAM権限の追加

AWSマネジメントコンソールのIAMセクションで権限を設定します。

  1. Summaryパネルで、Permissionsタブを選択します。
  2. アクセス許可の追加」を選択します。

IDおよびアクセス管理 (IAM)

Add Permissions to画面で、権限を付与します。

IAMポリシーの権限を付与

JSONタブで、以下を例として使用します。

JSONのサンプル

ヒント:

記載されているJSONの例には、お使いの環境に必要なすべての権限が含まれていない場合があります。詳細については、AWSでCitrix Virtual Apps and Desktopsを実行するためのIDアクセス管理権限の定義方法を参照してください。

AWS権限について

このセクションには、AWS権限の完全なリストが含まれています。

注:

iam:PassRole 権限は ロールベース認証 にのみ必要です。

ホスト接続の作成

AWSから取得した情報を使用して、新しいホスト接続が追加されます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeImages",
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:DescribeRegions",
                "ec2:DescribeSnapshots",
                "ec2:DescribeLaunchTemplates"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

VMの電源管理

マシンインスタンスの電源がオンまたはオフになります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:AttachVolume",
                "ec2:CreateVolume",
                "ec2:DeleteVolume",
                "ec2:DescribeInstances",
                "ec2:DescribeVolumes",
                "ec2:DetachVolume",
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

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

AWSインスタンスとしてプロビジョニングされたVMを使用して、マシンカタログが作成、更新、または削除されます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:AttachVolume",
                "ec2:AssociateIamInstanceProfile",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateImage",
                "ec2:CreateLaunchTemplate",
                "ec2:CreateSecurityGroup",
                "ec2:CreateTags",
                "ec2:CreateVolume",
                "ec2:DeleteVolume",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeAvailabilityZones",
                “ec2:DescribeIamInstanceProfileAssociations”,
                "ec2:DescribeImages",
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeLaunchTemplates",
                "ec2:DescribeLaunchTemplateVersions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSnapshots",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeVolumes",
                "ec2:DescribeVpcs",
                "ec2:DetachVolume",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "s3:CreateBucket",
                "s3:DeleteBucket",
                "s3:PutBucketAcl",
                "s3:PutBucketTagging",
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:PutObjectTagging"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::citrix*"
        },
        {
            "Action": [
                "ebs:StartSnapshot",
                "ebs:GetSnapshotBlock",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot",
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ec2:CreateSnapshot"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

注:

SecurityGroupsに関連するEC2セクションは、カタログ作成時に準備VM用に分離セキュリティグループを作成する必要がある場合にのみ必要です。これが完了すると、これらの権限は不要になります。

直接ディスクのアップロードとダウンロード

直接ディスクのアップロードにより、マシンカタログのプロビジョニングにおけるボリュームワーカーの要件が不要になり、代わりにAWSが提供するパブリックAPIが使用されます。この機能により、追加のストレージアカウントに関連するコストと、ボリュームワーカー操作の維持に関する複雑さが軽減されます。

以下の権限をポリシーに追加する必要があります。

  • ebs:StartSnapshot
  • ebs:GetSnapshotBlock
  • ebs:PutSnapshotBlock
  • ebs:CompleteSnapshot
  • ebs:ListSnapshotBlocks
  • ebs:ListChangedBlocks
  • ec2:CreateSnapshot
  • ec2:DeleteSnapshot
  • ec2:DescribeLaunchTemplates

重要:

  • 既存のマシンカタログに、ボリュームワーカーAMIやボリュームワーカーVMなどのボリュームワーカー操作なしで新しいVMを追加できます。
  • 以前ボリュームワーカーを使用していた既存のカタログを削除すると、ボリュームワーカー関連を含むすべてのアーティファクトが削除されます。

作成されたボリュームのEBS暗号化

AMIが暗号化されている場合、またはEBSがすべての新しいボリュームを暗号化するように構成されている場合、EBSは新しく作成されたボリュームを自動的に暗号化できます。ただし、この機能を実装するには、IAMポリシーに次の権限を含める必要があります。

{
     "Version": "2012-10-17",
     "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                 "kms:CreateGrant",
                 "kms:Decrypt",
                 "kms:DescribeKey",
                 "kms:GenerateDataKeyWithoutPlainText",
                 "kms:ReEncryptTo",
                 "kms:ReEncryptFrom"
            ],
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

注:

ユーザーの判断により、リソースと条件ブロックを含めることで、権限を特定のキーに制限できます。例: 条件付きKMS権限:

{
     "Version": "2012-10-17",
     "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                 "kms:CreateGrant",
                 "kms:Decrypt",
                 "kms:DescribeKey",
                 "kms:GenerateDataKeyWithoutPlainText",
                 "kms:ReEncryptTo",
                 "kms:ReEncryptFrom"
            ],
            "Resource": [
                "arn:aws:kms:us-east-2:123456789012:key/abcd1234-a123-456d-a12b-a123b4cd56ef"
            ],
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": true
                }
            }
        }
    ]
}
<!--NeedCopy-->

次のキーポリシーステートメントは、アカウントがIAMポリシーを使用してKMSキーに対するすべてのアクション (kms:*) の権限を委任することを許可するために必要な、KMSキーのデフォルトキーポリシー全体です。

{
"Sid": "Enable IAM policies",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:root"
},
"Action": "kms:",
"Resource": ""
}
<!--NeedCopy-->

詳細については、AWS Key Management Serviceの公式ドキュメントを参照してください。

IAMロールベース認証

ロールベース認証をサポートするために、次の権限が追加されます。

{
     "Version": "2012-10-17",
     "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/*"
        }
    ]
}
<!--NeedCopy-->

最小限のIAM権限ポリシー

以下のJSONは、現在サポートされているすべての機能に使用できます。このポリシーを使用して、ホスト接続の作成、VMの作成、更新、削除、および電源管理を行うことができます。 このポリシーは、(#defining-iam-permissions)で説明されているようにユーザーに適用することも、role_based_authセキュリティキーとシークレットキーを使用してロールベース認証を使用することもできます。

重要:

role_based_authを使用するには、まずクラウドコネクタのセットアップ時に、クラウドコネクタのEC2インスタンスで目的のIAMロールを構成します。Citrix Studioを使用して、ホスティング接続を追加し、認証キーとシークレットにrole_based_authを指定します。これらの設定を持つホスティング接続は、ロールベース認証を使用します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:AttachVolume",
                "ec2:AssociateIamInstanceProfile",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateImage",
                "ec2:CreateLaunchTemplate",
                "ec2:CreateNetworkInterface",
                "ec2:CreateTags",
                "ec2:CreateVolume",
                "ec2:DeleteLaunchTemplate",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteSecurityGroup",
                "ec2:DeleteSnapshot",
                "ec2:DeleteTags",
                "ec2:DeleteVolume",
                "ec2:DeregisterImage",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeIamInstanceProfileAssociations",
                "ec2:DescribeImages",
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeLaunchTemplates",
                "ec2:DescribeLaunchTemplateVersions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSnapshots",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeVolumes",
                "ec2:DescribeVpcs",
                "ec2:DetachVolume",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:RebootInstances",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "s3:CreateBucket",
                "s3:DeleteBucket",
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:PutBucketAcl",
                "s3:PutObject",
                "s3:PutBucketTagging",
                "s3:PutObjectTagging"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::citrix*"
        },
        {
            "Action": [
                "ebs:StartSnapshot",
                "ebs:GetSnapshotBlock",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot",
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ec2:CreateSnapshot"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                 "kms:CreateGrant",
                 "kms:Decrypt",
                 "kms:DescribeKey",
                 "kms:GenerateDataKeyWithoutPlainText",
                 "kms:ReEncryptTo",
                 "kms:ReEncryptFrom"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/*"
        }
    ]
}
<!--NeedCopy-->

注:

  • SecurityGroupsに関連するEC2セクションは、カタログ作成中に準備VM用に分離セキュリティグループを作成する必要がある場合にのみ必要です。これが完了すると、これらの権限は不要になります。
  • KMSセクションは、EBSボリューム暗号化を使用する場合にのみ必要です。
  • iam:PassRole権限セクションは、role_based_authの場合にのみ必要です。
  • 要件と環境に基づいて、フルアクセスではなく、特定のリソースレベルの権限を追加できます。詳細については、AWSドキュメントのDemystifying EC2 Resource-Level PermissionsおよびAccess management for AWS resourcesを参照してください。

詳細情報

  • 接続とリソース(/ja-jp/citrix-virtual-apps-desktops/2203-ltsr/manage-deployment/connections.html)
  • マシンカタログの作成(/ja-jp/citrix-virtual-apps-desktops/2203-ltsr/install-configure/machine-catalogs-create.html)