AWSクラウド環境

最終公開日 : Nov 13, 2026
この記事では、Citrix Virtual Apps and Desktopsで使用できるリソースの場所としてAWSアカウントを設定する方法について説明します。このリソースの場所には、概念実証(PoC)や、複数のアベイラビリティゾーンにリソースを分散させる必要のないその他の展開に最適な、基本的なコンポーネントセットが含まれています。これらのタスクを完了すると、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ダッシュボードから、Create VPCを選択します。
  3. 「VPC and more」を選択します。
  4. NAT ゲートウェイ ($) の下で、「In 1 AZ」または「1 per AZ」を選択します。
  5. DNS オプションの下で、「Enable DNS hostnames」が選択されたままにします。
  6. 「Create VPC」を選択します。AWS は、パブリックサブネットとプライベートサブネット、インターネットゲートウェイ、ルートテーブル、およびデフォルトのセキュリティグループを作成します。

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

このタスクでは、VPC 用に次のセキュリティグループを作成および構成します:
  • パブリックサブネット内のインスタンスに関連付けるためのパブリックセキュリティグループ。
  • プライベートサブネット内のインスタンスに関連付けるためのプライベートセキュリティグループ。
セキュリティグループを作成するには:
  1. VPC ダッシュボードで、「Security Groups」を選択します。
  2. パブリックセキュリティグループ用のセキュリティグループを作成します。「Create Security Group」を選択し、グループの名前タグと説明を入力します。VPC で、以前に作成した VPC を選択します。「Yes, Create」を選択します。

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

  1. セキュリティグループのリストから、パブリックセキュリティグループを選択します。
  2. **[Inbound Rules]タブを選択し、[Edit]**を選択して、次のルールを作成します。
    タイプ 送信元
    すべてのトラフィック プライベートセキュリティグループを選択します。
    すべてのトラフィック パブリックセキュリティグループを選択します。
    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. **[Outbound Rules]タブを選択し、[Edit]**を選択して、次のルールを作成します。
    タイプ 宛先
    すべてのトラフィック プライベートセキュリティグループを選択します。
    すべてのトラフィック 0.0.0.0/0
    ICMP 0.0.0.0/0
  5. 完了したら、保存を選択します。

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

  1. セキュリティグループリストから、プライベートセキュリティグループを選択します。
  2. パブリックセキュリティグループからのトラフィックを設定していない場合は、TCPポートを設定する必要があります。**[Inbound Rules]タブを選択し、[Edit]**を選択して、次のルールを作成します。
    タイプ 送信元
    すべてのトラフィック プライベートセキュリティグループを選択します。
    すべてのトラフィック パブリックセキュリティグループを選択します。
    ICMP パブリックセキュリティグループを選択します。
    TCP 53 (DNS) パブリックセキュリティグループを選択します。
    UDP 53 (DNS) パブリックセキュリティグループを選択します。
    80 (HTTP) パブリックセキュリティグループを選択します。
    TCP 135 パブリックセキュリティグループを選択します。
    TCP 389 パブリックセキュリティグループを選択します。
    UDP 389 パブリックセキュリティグループを選択します。
    443 (HTTPS) パブリックセキュリティグループを選択します。
    TCP 1494 (ICA/HDX) パブリックセキュリティグループを選択します。
    TCP 2598 (セッションの信頼性) パブリックセキュリティグループを選択します。
    3389 (RDP) パブリックセキュリティグループを選択します。
    TCP 49152–65535 パブリックセキュリティグループを選択します。
  3. 完了したら、保存を選択します。
  4. **[Outbound Rules]タブを選択し、[Edit]**を選択して、次のルールを作成します。
    タイプ 宛先
    すべてのトラフィック プライベートセキュリティグループを選択します。
    すべてのトラフィック 0.0.0.0/0
    ICMP 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. **[Configure Instance Details]**ページで、インスタンスの名前を入力し、以前に設定したVPCを選択します。
  5. サブネットで、各インスタンスについて次の選択を行います。
    • Bastionホスト:パブリックサブネットを選択します
    • ドメインコントローラー:プライベートサブネットを選択します
  6. 「パブリック IP アドレスの自動割り当て」で、各インスタンスについて次の選択を行います。
    • 踏み台ホスト:**[Enable]**を選択します。
    • ドメインコントローラー:**[Use default setting]または[Disable]**を選択します。
  7. 「ネットワークインターフェース」で、ドメインコントローラーのプライベートサブネットのIP範囲内のプライマリIPアドレスを入力します。
  8. 必要に応じて、「ストレージの追加」ページでディスクサイズを変更します。
  9. 「インスタンスのタグ付け」ページで、各インスタンスにわかりやすい名前を入力します。
  10. 「セキュリティグループの設定」ページで、「既存のセキュリティグループを選択」を選択し、各インスタンスについて次の選択を行います。
    • バスティオンホスト: パブリックセキュリティグループを選択します。
    • ドメインコントローラー: プライベートセキュリティグループを選択します。
  11. 選択内容を確認し、「起動」を選択します。
  12. 新しいキーペアを作成するか、既存のキーペアを選択します。新しいキーペアを作成する場合は、秘密鍵(.pem)ファイルをダウンロードして安全な場所に保管してください。インスタンスのデフォルトの管理者パスワードを取得する際に、秘密鍵を提供する必要があります。
  13. 「インスタンスの起動」を選択します。「インスタンスの表示」を選択して、インスタンスのリストを表示します。新しく起動したインスタンスがすべてのステータスチェックに合格するまで待ってからアクセスしてください。
  14. 各インスタンスのデフォルトの管理者パスワードを取得します。
    1. インスタンスリストから、インスタンスを選択し、「接続」を選択します。
    2. 「RDP クライアント」タブに移動し、「パスワードの取得」を選択し、プロンプトが表示されたら秘密鍵 (.pem) ファイルをアップロードします。
    3. 「パスワードの復号」を選択して、人間が読めるパスワードを取得します。AWSはデフォルトのパスワードを表示します。
  15. 手順2から繰り返して、2つのインスタンスを作成します。
    • パブリックサブネットに1つの踏み台ホストインスタンス
    • ドメインコントローラーとして使用するプライベートサブネット内のインスタンスを1つ。

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

  1. VPCダッシュボードから、「DHCPオプションセット」を選択します。
  2. 次の情報を入力します。
    • 名前タグ:セットのわかりやすい名前を入力します。
    • ドメイン名:ドメインコントローラーインスタンスを設定するときに使用する完全修飾ドメイン名を入力します。
    • ドメインネームサーバー:ドメインコントローラーインスタンスに割り当てたプライベートIPアドレスと、カンマで区切られた文字列「AmazonProvidedDNS」を入力します。
    • NTPサーバー:このフィールドは空白のままにします。
    • NetBIOSネームサーバー:ドメインコントローラーインスタンスのプライベートIPアドレスを入力します。
    • NetBIOSノードタイプ:「2」と入力します。
  3. はい、作成を選択します。
  4. 新しいセットをVPCに関連付けます。
    1. VPCダッシュボードから、Your VPCsを選択し、以前に設定した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. Server Manager を使用して、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は、共有テナンシー(デフォルトタイプ)と専用テナンシーという、以下のテナンシーオプションを提供します。共有テナンシーとは、異なる顧客の複数のAmazon EC2インスタンスが同じ物理ハードウェア上に存在する可能性があることを意味します。専用テナンシーとは、デプロイした他のインスタンスと同じハードウェア上でのみEC2インスタンスが実行されることを意味します。他の顧客は同じハードウェアを使用しません。
PowerShellを使用して、MCSでAWS専用ホストをプロビジョニングできます。

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

PowerShellを介してホストテナンシーが定義されたマシンカタログを作成できます。
Amazon 専用ホストは、インスタンス容量を持つ完全に専用の物理サーバーであり、既存のソケットごと、または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 Launch Template に保存され、そのカタログのマシンをプロビジョニングするために使用されます。カタログ内のすべてのマシンは、キャプチャされたインスタンスプロパティを継承します。
キャプチャされるプロパティは次のとおりです。
  • IAM ロール – プロビジョニングされたインスタンスに適用されます。
  • タグ – プロビジョニングされたインスタンス、そのディスク、および NIC に適用されます。これらのタグは、S3 バケットとオブジェクト、ボリュームとワーカーリソース、AMI、スナップショット、起動テンプレートなど、一時的な Citrix® リソースに適用されます。
ヒント:
一時的な Citrix リソースのタグ付けはオプションであり、カスタムプロパティ AwsOperationalResourcesTagging を使用して構成できます。

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

AWS ホスティング接続のプロビジョニングスキームを作成するときに、カスタムプロパティ AwsCaptureInstanceProperties を指定することで、この機能を使用できます。
New-ProvScheme -CustomProperties “AwsCaptureInstanceProperties,true” …<standard provscheme parameters
詳細については、Citrix Developer Documentation を参照してください。

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

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

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

Amazon マシンイメージ (AMI) は、Amazon Cloud 環境内で仮想マシンを作成するために使用される仮想アプライアンスの一種であり、一般にEC2と呼ばれます。AMIを使用して、EC2環境を使用するサービスを展開します。AWS向けMCSを使用してマシンをプロビジョニングするカタログを作成するときは、そのカタログのゴールデンイメージとして機能するAMIを選択します。
重要:
運用リソースのタグ付けを使用するには、インスタンスプロパティと起動テンプレートをキャプチャしてカタログを作成する必要があります。
AWSカタログを作成するには、まずゴールデンイメージとするインスタンスのAMIを作成する必要があります。MCSはそのインスタンスからタグを読み取り、起動テンプレートに組み込みます。起動テンプレートのタグは、AWS環境で作成されたすべてのCitrixリソースに適用されます。これには以下が含まれます。
  • 仮想マシン
  • VMディスク
  • VMネットワークインターフェイス
  • S3 バケット
  • S3 オブジェクト
  • 起動テンプレート
  • AMI

運用リソースのタグ付け

PowerShell を使用してリソースにタグを付けるには:
  1. DDC ホストから PowerShell ウィンドウを開きます。
  2. コマンド asnp citrix を実行して、Citrix固有のPowerShellモジュールをロードします。
プロビジョニングされた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. 新しいユーザーグループの名前を入力し、続行を選択します。
  4. Permissionsページで、Custom Policyを選択します。Selectを選択します。
  5. 権限ポリシーの名前を入力します。
  6. Policy Documentセクションで、関連する権限を入力します。
ポリシー情報を入力したら、続行を選択してユーザーグループを完了します。グループ内のユーザーには、Citrix DaaSに必要なアクションのみを実行する権限が付与されます。
重要:
上記の例で提供されているポリシーテキストを使用して、Citrix DaaSがAWSアカウント内でアクションを実行するために使用するアクションを、特定のリソースに制限することなくリストします。Citrixは、テスト目的でこの例を使用することを推奨します。本番環境では、リソースにさらなる制限を追加することを選択できます。

IAM権限の追加

AWSマネジメントコンソールのIAMセクションで権限を設定します。
  1. 概要パネルで、アクセス許可タブを選択します。
  2. アクセス許可の追加を選択します。
IDおよびアクセス管理 (IAM)
アクセス許可の追加先画面で、アクセス許可を付与します。
IAMポリシーのアクセス許可を付与する
「JSON」タブで、以下を例として使用します。
JSONの例
ヒント:
記載されているJSONの例には、お使いの環境に必要なすべての権限が含まれていない場合があります。詳細については、「AWS で Citrix Virtual Apps and Desktops を実行するための ID およびアクセス管理権限を定義する方法」を参照してください。

AWS権限について

このセクションには、AWS権限の完全なリストが含まれています。
注:
iam:PassRole 権限は、role_based_auth の場合にのみ必要です。

ホスト接続の作成

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": "*"
        }
    ]
}

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": "*"
        }
    ]
}

仮想マシンの作成、更新、または削除

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": "*"
        }
    ]
}
注:
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": "*"
        }
    ]
}
注:
ユーザーの判断により、リソースと条件ブロックを含めることで、権限を特定のキーに限定できます。例:条件付き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
                }
            }
        }
    ]
}
次のキーポリシーステートメントは、アカウントがIAMポリシーを使用してKMSキーに対するすべてのアクション (kms:*) の権限を委任できるようにするために必要な、KMSキーのデフォルトのキーポリシー全体です。
{
"Sid": "Enable IAM policies",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:root"
},
"Action": "kms:",
"Resource": ""
}
詳細については、「AWS Key Management Service 公式ドキュメント」を参照してください。

IAMロールベース認証

ロールベース認証をサポートするために、次の権限が追加されます。
{
     "Version": "2012-10-17",
     "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/*"
        }
    ]
}

最小限のIAM権限ポリシー

次のJSONは、現在サポートされているすべての機能に使用できます。このポリシーを使用すると、ホスト接続の作成、VMの作成、更新、削除、および電源管理を行うことができます。 このポリシーは、IAM権限の定義セクションで説明されているようにユーザーに適用することも、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/*"
        }
    ]
}
注:
  • SecurityGroupsに関連するEC2セクションは、カタログ作成中に準備VM用に分離セキュリティグループを作成する必要がある場合にのみ必要です。これが完了すると、これらの権限は不要になります。
  • KMSセクションは、EBSボリューム暗号化を使用する場合にのみ必要です。
  • iam:PassRole 権限セクションは、role_based_auth の場合にのみ必要です。
  • 要件と環境に基づいて、フルアクセスではなく特定のリソースレベルの権限を追加できます。詳細については、AWSドキュメントのDemystifying EC2 Resource-Level Permissions および Access management for AWS resources を参照してください。

詳細情報