Citrix DaaS™

Amazon WorkSpaces Core マネージドインスタンスへの接続

接続とリソースの作成および管理では、接続を作成するウィザードについて説明します。以下の情報は、Amazon WorkSpaces Core マネージドインスタンスに固有の詳細を扱っています。

前提条件

Amazon WorkSpaces Core マネージドインスタンスへの接続を作成する前に、以下を実行してください。

IAM権限を定義する

ホスト接続を作成する前に、Citrixがお客様に代わってAWSアカウント内のリソースをプロビジョニングおよび管理するための適切な権限を付与するIAMユーザーまたはロールに対して、IAM権限ポリシーを適切に定義する必要があります。このセクションの情報を使用して、Amazon WorkSpaces Core マネージドインスタンス上のCitrix DaaSのIAM権限を定義します。AmazonのIAMサービスでは、複数のユーザーを持つアカウントが許可されており、それらのユーザーはさらにグループに編成できます。これらのユーザーは、アカウントに関連する操作を実行する能力を制御するために、異なる権限を持つことができます。IAM権限の詳細については、IAM JSONポリシーリファレンスを参照してください。

注:

Citrixはお客様に代わってAWSアカウント内のリソースと自動化をプロビジョニングおよび管理するため、特定のタグやリソース命名規則に基づいたIAM権限ポリシーの構成はサポートされていません。

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

  1. AWSマネジメントコンソールにログインし、ドロップダウンリストからIAMサービスを選択します。
  2. 新しいユーザーグループを作成を選択します。
  3. 新しいユーザーグループの名前を入力し、続行を選択します。
  4. Permissions」ページで、「Custom Policy」を選択します。
  5. Permissions policy」の名前を入力します。
  6. Policy Document」セクションで、関連する権限を入力します。

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

重要:

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

IAM権限を追加する

AWS Management Consoleの「IAM」セクションで権限を追加します。

  1. Summary」パネルで、「Permissions」タブを選択します。
  2. Add permissions」を選択します。
  3. Add Permissions to」画面で、権限を付与します。
  4. JSONセクションで、環境に必要なRequired AWS permissionsを含めます。

サービスにリンクされたロールを作成する

CitrixがCore V2 APIを呼び出す各AWSアカウントに対して、サービスにリンクされたロール (SLR)を作成します。

ロールを作成する手順:

  • AWS マネジメントコンソールでコマンドラインインターフェイス (CLI) を開きます。
  • CLI で次のコマンドを実行します。

     aws iam create-service-linked-role --aws-service-name workspaces-instances.amazonaws.com
     <!--NeedCopy-->
    

Amazon WorkSpaces Core 管理コンソールを使用して、サービスにリンクされたロールを構成することもできます。「サービスにリンクされたロールの作成 (コンソール)」を参照してください。

接続を作成する

次のような方法で Amazon WorkSpaces Core マネージドインスタンスへの接続を作成できます。

注:

プロキシサーバーまたはファイアウォールの制限を確認し、次のアドレスに接続できることを確認してください: https://*.amazonaws.com および https://*.api.aws。また、「Citrix Gateway サービス接続」に記載されているすべてのアドレスに接続できることを確認してください。

これらに接続できない場合、ホスト接続の作成または更新中に失敗する可能性があります。

Studio を使用して接続を作成する

  1. 「ホスティング」>「接続とリソースの追加」ページに移動します。
  2. 「接続」ページで、次の手順に従って接続を構成します。

    1. 「新しい接続を作成」を選択します。
    2. 「ゾーン」で、AWS 環境用に設定したリソースの場所を選択します。
    3. 接続タイプとして「Amazon WorkSpaces Core」を選択します。
    4. IAMユーザーアクセスキーを使用」または「IAMロールを使用」を選択します。

      IAMユーザーアクセスキーの場合は、CitrixがAWSアカウントのリソースを管理するための適切なIAM権限ポリシーを持つIAMユーザーのAPIキーシークレットキーを入力します。

      IAMロールの場合は、CitrixがAWSアカウントのリソースを管理するための適切なIAM権限ポリシーを持つIAMロールをCitrix Cloud Connectorインスタンスに割り当てていることを確認してください。詳細については、ロールベース認証ガイドを参照してください。

    5. APIリクエストをCitrix Cloud Connector経由でAWSにルーティングするには、「Citrix Cloud Connectorでシステムプロキシを使用する」チェックボックスをオンにします。これにより、Cloud Connectorがインターネットに直接アクセスできない場合でも、AWS接続が適切に機能するようになります。
    6. 接続名を入力し、「次へ」をクリックします。
  3. 仮想マシンの場所」ページで、VMをプロビジョニングする場所を指定します。新しいVMを作成するためのクラウドリージョン、VPC、およびアベイラビリティゾーン(またはローカルゾーン)を選択します。
  4. ネットワーク」ページで:

    1. アベイラビリティゾーン(またはローカルゾーン)で以前に選択したリソースの名前を入力します。
    2. 前のメニューで構成したVPC内の1つ以上のサブネットを選択します。
  5. 残りのページを「概要」ページまでクリックして進みます。
  6. 完了」をクリックして、Amazon WorkSpaces Coreマネージドインスタンスへのホスト接続を作成します。

重要な考慮事項

Studioを使用して接続を作成する場合:

  • CitrixがAWSリソースを管理するための適切なIAM権限を定義します。
  • Citrix が AWS リソースを管理するために IAM ユーザーアクセスキーを使用する場合、API キーとシークレットキーの値を指定する必要があります。これらの値を含むキーファイルを AWS からエクスポートし、インポートできます。また、リージョン、アベイラビリティゾーン、VPC 名、サブネットアドレス、ドメイン名、セキュリティグループ名、および資格情報も指定する必要があります。
  • Citrix が AWS リソースを管理するために IAM ロールを使用する場合、すべての Cloud Connector に適切な IAM 権限を持つロールを割り当てる必要があります。詳細については、ロールベース認証ガイド を参照してください。
  • ルート AWS アカウントの資格情報ファイル (AWS コンソールから取得) は、標準の AWS ユーザー用にダウンロードされた資格情報ファイルと同じ形式ではありません。そのため、Citrix DaaS はこのファイルを使用して API キーとシークレットキーのフィールドに入力できません。AWS Identity Access Management (IAM) 資格情報ファイルを使用していることを確認してください。
  • ゾーンは、アベイラビリティゾーンまたはローカルゾーンのいずれかです。

PowerShell を使用して接続を作成する

  1. PowerShell ウィンドウを開きます。
  2. Citrix 固有の PowerShell モジュールをロードするには、asnp citrix* を実行します。
  3. 次のコマンドを実行します。以下に例を示します。

    $connectionName = "demo-hostingconnection"
    $cloudRegion = "us-east-1"
    $apiKey = "aaaaaaaaaaaaaaaaaaaa"
    $apiSecret = “bbbbb”
    $secureKey = ConvertTo-SecureString -String $apiSecret
    $zoneUid = "00000000-0000-0000-0000-000000000000"
    $connectionPath = "XDHyp:\Connections\" + $connectionName
    
    $connection = New-Item -Path $connectionPath -ConnectionType "AmazonWorkSpacesCoreMachineManagerFactory" -HypervisorAddress " "https://workspaces-instances.$($cloudRegion).api.aws"" -Persist -Scope @() -UserName $apiKey -SecurePassword $secureKey -ZoneUid $zoneUid
    
    New-BrokerHypervisorConnection -HypHypervisorConnectionUid $connection.HypervisorConnectionUid
    
    $hostingUnitName = "demo-hostingunit"
    $availabilityzone = "us-east-1a"
    $vpcName = "Default VPC"
    $jobGroup = [Guid]::NewGuid()
    $hostingUnitPath = "XDHyp:\HostingUnits\" + $HostingUnitName
    $rootPath = $connectionPath + "\" + $vpcName + ".virtualprivatecloud\"
    $availabilityZonePath = @($rootPath + $availabilityzone + ".availabilityzone")
    $networkPaths = (Get-ChildItem $availabilityZonePath[0] | Where ObjectType -eq "Network") | Select-Object -ExpandProperty FullPath # will select all the networks in the availability zone
    
    New-Item -Path $hostingUnitPath -AvailabilityZonePath $availabilityZonePath -HypervisorConnectionName $connectionName -JobGroup $jobGroup -PersonalvDiskStoragePath @() -RootPath $rootPath -NetworkPath $networkPaths
    <!--NeedCopy-->
    

注:

ロールベース認証を使用して接続を作成するには、apiKey と apiSecret を role_based_auth として指定します。

制限事項

AWS コンソールで AWS Virtual Private Cloud (VPC) の名前を変更すると、Citrix Cloud™ の既存のホスティングユニットが破損します。ホスティングユニットが破損すると、カタログを作成したり、既存のカタログにマシンを追加したりできなくなります。この問題を解決するには、AWS VPC の名前を元の名前に戻します。

AWS 管理トラフィックのセキュアな環境を作成する

Cloud Connector にプロキシが構成されている 場合は、MCS によって行われる API 呼び出しがプロキシを介して適切にルーティングされるように、プロキシを使用するホスト接続を作成する必要があります。MCS は、ネットワークトラフィック (Citrix Cloud から AWS ハイパーバイザーへの API 呼び出し) を環境内の Cloud Connector を介してルーティングできるようにします。

ホスト接続は、Cloud Connector のインストール中に構成された WinHTTP システムプロキシ値を読み取ることができます。Studio を使用するか、PowerShell を使用してホスト接続を作成または更新するときにカスタムプロパティ UseSystemProxyForHypervisorTrafficOnConnectorsTrue に設定することで、プロキシを構成できます。

注記:

環境でプロキシを使用している場合は、SSLインスペクションが無効になっているか、https://workspaces-instances.*.api.aws/のSSL接続が変更されていないことを確認してください。

プロキシで構成されたホスト接続を作成する

  1. PowerShellウィンドウを開きます。
  2. asnp citrix*を実行して、Citrix固有のPowerShellモジュールをロードします。
  3. PowerShellコマンドを実行してプロキシを構成します。例:

    $connectionName = "demo-hostingconnection"
    $cloudRegion = "us-east-1"
    $apiKey = "aaaaaaaaaaaaaaaaaaaa"
    $zoneUid = "00000000-0000-0000-0000-000000000000"
    
    $securePassword = Read-Host 'Please enter your secret key' -AsSecureString
    $connectionPath = "XDHyp:\Connections\" + $connectionName
    
    $customProperties = @"
    <CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">
    <Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True" />
    </CustomProperties>
    "@
    <!--NeedCopy-->
    
  4. ホスティング接続を作成します。例:

    $connection = New-Item -Path $connectionPath `
    -ConnectionType "Custom" -PluginId "AmazonWorkSpacesCoreMachineManagerFactory" `
    -HypervisorAddress "https://workspaces-instances.$($cloudRegion).api.aws" `
    -CustomProperties> $customProperties `
    -Persist -Scope @()`
    -UserName $apiKey -SecurePassword $securePassword `
    -ZoneUid $zoneUid
    
    New-BrokerHypervisorConnection -HypHypervisorConnectionUid $connection.HypervisorConnectionUid
    <!--NeedCopy-->
    

既存のホスト接続でプロキシを有効にするには、既存の接続でプロキシを有効にするを参照してください。

クロスアカウントプロビジョニング

Cloud Connectorを別のAWSアカウント(共有サービスアカウントまたはサイトコンポーネントアカウント)に配置し、クロスアカウントアクセス(クロスアカウントIAMロール)を持つIAMロールを使用し、MCSでプロビジョニングされたマシンカタログを別のセカンダリAWSアカウント(ワークロードアカウント)に配置するユースケースがあります。この場合、別のアカウントに追加のCloud Connectorは不要です。このようなシナリオをサポートするため、この機能はVPCピアリングとIAMロールを使用したクロスアカウントアクセスを利用して、複数のAWSアカウントを管理する企業が異なるAWSアカウント間でプロビジョニングできるようにします。

VPCピアリングを使用すると、Cloud Connectorと、異なるリージョンまたはアカウントにプロビジョニングされたVMが相互に通信できるようになります。

IAMロールを使用したクロスアカウントアクセスを使用すると、プライマリアカウント(Cloud Connectorアカウント)がIAMロールを引き受けて、セカンダリアカウント(マシンカタログVM)のAWSリソースにアクセスできるようになります。

Cloud Connectorがセカンダリアカウントのリソースにアクセスできるようにするには、セカンダリアカウントからIAMロールを引き受けた後にホスト接続を作成します。

前提条件

クロスアカウントプロビジョニング用のホスト接続を作成する前に、以下を設定します。

  • VPCピアリングを設定し、両方のリージョンまたはアカウントでセキュリティグループを構成します。「VPCピアリングのセットアップ」を参照してください(#set-up-vpc-peering)。
  • IAMロールを使用してクロスアカウントアクセスを委任します。「IAMロールを使用したクロスアカウントアクセスの委任」を参照してください(#delegate-cross-account-access-using-iam-roles)。

VPCピアリングのセットアップ

VPC Aがプライマリアカウント(アカウントA)にあり、Cloud ConnectorsとActive Directoryを持っていると仮定します。VPC Bは、VMをプロビジョニングしたいセカンダリアカウント(アカウントB)にあります。

アカウントAとアカウントBの間でVPCピアリング接続をセットアップするには、次の手順を実行します。

  1. VPCピアリング接続を作成します。参照:

  2. VPC Aに移動し、パブリックサブネットに関連付けられているルートテーブルに移動します。
  3. ルートの編集 > ルートの追加をクリックします。送信先列にVPC BのCIDRブロックを追加し、ターゲット列に作成したVPCピアリングを追加します。
  4. 手順2と3を繰り返しますが、VPC AとVPC Bのプライベートサブネットを使用します(VPC AのCIDRブロックを追加します)。VPCピアリング接続のルートテーブルを更新するを参照してください。
  5. VPC Aに関連付けられているプライベートセキュリティグループに移動します。
  6. アクションを選択し、次にインバウンドルールを編集を選択します。
  7. ルールを追加を選択します。タイプにはすべてのトラフィックを選択し、ソース列に以下を追加します。

    • 異なるリージョンの場合は、VPC BのCIDRブロックを追加します。
    • 異なるアカウントだが同じリージョンの場合は、アカウントIDとVPC BのプライベートセキュリティグループIDをスラッシュで区切って追加します(例: 123456789012/sg-1a2b3c4d)。
  8. 手順5から7を繰り返しますが、VPC Bのプライベートセキュリティグループを使用します(ただし、VPC AのCIDRブロック、または同じリージョンだが異なるアカウントのVPC AのアカウントIDとプライベートセキュリティグループIDを追加します)。ピアセキュリティグループを参照するようにセキュリティグループを更新するを参照してください。

注記:

VPCピアリング接続の作成に料金はかかりません。ただし、アベイラビリティーゾーン内のVPCピアリングは無料ですが、複数のアベイラビリティーゾーンやリージョンをまたいでVPCピアリング接続を介したデータ転送が発生した場合は料金がかかります。VPCピアリング接続の料金を参照してください。

IAMロールを使用してクロスアカウントアクセスを委任する

アカウント間でVPCピアリングを設定した後、IAMロールを使用してクロスアカウントアクセスを委任します。

IAMロールを使用したクロスアカウントアクセスでは、プライマリアカウント(Cloud Connectorアカウント)がIAMロールを引き受けて、セカンダリアカウント(マシンカタログVM)のAWSリソースにアクセスできるようにします。

クロスアカウントリソースにアクセスするには、次の手順を実行します。

注意:

VPC Aはプライマリアカウント(アカウントA)にあり、Cloud ConnectorとActive Directoryを持っています。VPC Bはセカンダリアカウント(アカウントB)にあり、VMをプロビジョニングする場所です。

  1. 前述の手順でアカウント間のVPCピアリングを設定します。
  2. アカウントBで、最小限のCitrix IAM権限を持つIAMロールとポリシーを作成します。IAMチュートリアル:IAMロールを使用してAWSアカウント間でアクセスを委任するを参照してください。このロールのARNが「arn:aws:iam::5678:role/citrix-role」であるとします。
  3. ロール「arn:aws:iam::5678:role/citrix-role」に信頼ポリシーを追加し、アカウントAのロール「arn:aws:iam::1234:role/primary-account-citrix-role」からアクセスできるようにします。IAMでのクロスアカウントリソースアクセスを参照してください。
  4. アカウントAで、前述の「primary-account-citrix role」という名前でIAMロールとポリシーを作成します。これにより、アカウントBのIAMロール(arn:aws:iam::5678:role/citrix-role)を引き受け、そのIAMロールを渡すことができます。
  5. アカウントAのすべてのCloud Connectorにロール「arn:aws:iam::1234:role/primary-account-citrix-role」を割り当てます。

Cloud Connector は、Account B のロール (“arn:aws:iam::5678:role/citrix-role”) を引き受けることができるようになりました。

クロスアカウントプロビジョニング用のホスト接続を作成する

VM をプロビジョニングするセカンダリアカウント (アカウント B) にホスト接続を作成します。これにより、アカウント A の Cloud Connector は、アカウント B からロールを引き受けた後、アカウント B のリソースにアクセスできるようになります。

PowerShell コマンドを使用してホスト接続を作成し、次の 2 つのカスタムプロパティを追加します。

  • CrossAccountRoleArn: CrossAccountRoleArn プロパティを指定しない場合、通常のホスト接続が作成されます。この場合、MaximumAssumeRoleDurationInSeconds が指定されていても無視されます。
  • MaximumAssumeRoleDurationInSeconds: DurationInSeconds は 900 秒から 3600 秒の間である必要があります。デフォルトは 900 秒です。3600 を超える値を指定した場合、DurationInSeconds は 3600 に設定されます。

例:

$connectionName = "cross-account-conn"
$cloudRegion = "us-east-1"
$apiKey = "role_based_auth"
$secretKey = "role_based_auth"
$zoneUid = "xxxxxx"
$secureKey = (ConvertTo-SecureString -String $secretKey -AsPlainText -Force)
$connectionPath = "XDHyp:\Connections\" + $connectionName
$customProperties = '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Property xsi:type="StringProperty" Name="CrossAccountRoleArn" Value="arn:aws:iam::5678:role/citrix-role" /><Property xsi:type="StringProperty" Name="MaximumAssumeRoleDurationInSeconds" Value="3600" />
"</CustomProperties>'

$connection = New-Item -Path $connectionPath -ConnectionType "AmazonWorkSpacesCoreMachineManagerFactory" -HypervisorAddress "https://workspaces-instances.$($cloudRegion).api.aws" -Persist -Scope @() -UserName $apiKey -SecurePassword $secureKey -ZoneUid $zoneUid -CustomProperties $customProperties

New-BrokerHypervisorConnection -HypHypervisorConnectionUid $connection.HypervisorConnectionUid
<!--NeedCopy-->

ホスト接続が作成されたら、Studio または PowerShell を使用してホスティングユニットを作成します。ただし、VPC とネットワークを選択してください。

AWS API リクエストの Cloud Connector をバイパスする

Amazon WorkSpaces Core マネージドインスタンス (MI) 環境では、Citrix Machine Creation Services (MCS) プラグインは通常、Delivery Controller に常駐し、プロキシを介して Citrix Cloud Connector 経由で AWS API リクエストをルーティングします。

ホスト接続を構成して、AWS API リクエストの Cloud Connector をバイパスできます。この機能が有効になっている場合、プラグインは、プロビジョニングや電源管理を含む API 呼び出しを DDC から AWS サービス (Amazon EC2、EBS、WorkSpaces インスタンスなど) に直接行い、プロキシを介して Cloud Connector を経由する依存関係を排除します。

利点

  • Cloud Connector への AWS API 呼び出しの依存関係を軽減する: Cloud Connector への AWS API の依存関係をなくすことは、オンプレミスまたはクラウドインフラストラクチャのフットプリントを削減しようとしているお客様にとって重要なステップです。
  • リソース消費の削減: Cloud Connector を介するトラフィックが減少することで、Connector VM のコンピューティング要件が軽減され、コスト削減につながる可能性があります。
  • 運用の柔軟性: 重要な電源管理およびプロビジョニングタスクにおける潜在的な障害点 (Cloud Connector/NGS プロキシパス) を排除することで、可用性が向上します。

制限事項と考慮事項

この機能を有効にする前に、次の要件と制限事項を考慮してください。

  • 認証: Cloud Connector をバイパスする場合、ロールベース認証 (IAM ロール) はサポートされません。IAM ユーザーアクセスキーのみを使用するようにセットアップを構成する必要があります。
  • 環境スコープ: この機能は、Amazon WorkSpaces Core マネージドインスタンス (MI) 専用です。標準の AWS EC2 ホスト接続ではサポートされていません。
  • ネットワーク要件: DDC は、AWS サービスエンドポイントへの直接のネットワークパスを持っている必要があります。
  • リソースロケーションの健全性: Cloud Connector が元々リソースロケーションにプロビジョニングされていた場合、電源をオンにしたままにする必要があります。MCS 以外のコンポーネントとヘルスチェックは、Cloud Connector が存在する場合、引き続き Cloud Connector に依存します。
  • サポートされていない機能:
    • クロスアカウントプロビジョニング
    • システムプロキシの使用
  • コネクタの要件: この機能は API 依存関係を排除しますが、Cloud Connector への依存を減らすために必要な他の構成があります (Cloud Connector の要件はここに記載されているものに限定されない場合があります)。
    • ドメイン参加: ドメイン非参加または Microsoft Entra ハイブリッド参加マシンを使用します。
    • VDA 登録: VDA 登録のために Rendezvous V2 (WebSockets 経由の DDC から VDA への直接通信) を有効にします。

API バイパスを使用してホスト接続を作成する

フル構成 (Studio) でホスト接続を作成する際、その場所に Cloud Connector が存在しない場合でも、Amazon WorkSpaces Core リソースロケーションを選択できるようになりました。

PowerShell 経由でバイパスを有効にするには、BypassConnectorForAwsApiRequests カスタムプロパティを使用します。

PowerShell の例:

$custProp = '<CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">
  <Property xsi:type="StringProperty" Name="BypassConnectorForAwsApiRequests" Value="true" />
</CustomProperties>'

$connectionName = "MyWSCConnection"
$cloudRegion = "us-east-1"
$apiKey = "YOUR_IAM_ACCESS_KEY"
$zoneUid = (Get-ConfigZone | Where-Object {$_.Name -eq "MyResourceLocation"}).Uid
$securePassword = Read-Host 'Enter your IAM Secret Key' -AsSecureString

$connectionPath = "XDHyp:\Connections\" + $connectionName

$connection = New-Item -Path $connectionPath `
    -ConnectionType "Custom" `
    -PluginId "AmazonWorkSpacesCoreMachineManagerFactory" `
    -HypervisorAddress "https://workspaces-instances.$($cloudRegion).api.aws" `
    -Persist -Scope @() `
    -CustomProperties $custProp `
    -UserName $apiKey -SecurePassword $securePassword `
    -ZoneUid $zoneUid

New-BrokerHypervisorConnection -HypHypervisorConnectionUid $connection.HypervisorConnectionUid
<!--NeedCopy-->

既存の接続を管理する

既存のホスト接続のバイパス機能を有効または無効にできます。

  • 既存の接続で有効にする: 既存の接続のカスタムプロパティを変更して、BypassConnectorForAwsApiRequests = true. を含めることができます。
  • 無効にする: 無効にすると、DDC は NGS プロキシを介して Cloud Connector 経由で AWS API 呼び出しのルーティングを再開します。これは、リソースの場所に機能する Cloud Connector と NGS プロキシパスが利用可能である必要があることに注意してください。

トラブルシューティング

サポートされていない条件下でバイパスプロパティを有効にしようとすると、システムは検証エラーを返します。

  • IAM ロール/クロスアカウント/プロキシ: IAM ロール、クロスアカウントプロビジョニング、またはシステムプロキシと同時に有効にすると、New-Item コマンドは次のエラーで失敗します。

     AmazonWorkSpacesCoreException: Bypassing the Cloud Connector For AWS API requests is not supported for IAM roles, Cross-Account provisioning and System Proxy.
     <!--NeedCopy-->
    
  • サポートされていない接続タイプ: 標準の Amazon EC2 (AWS) 接続に適用すると、システムは次のエラーで失敗します。

     AmazonWorkSpacesCoreException: Bypassing the Cloud Connector For AWS API requests is not supported for EC2 host connection.
     <!--NeedCopy-->
    

接続を編集する

既存のホスト接続を編集して、次のことができます。

IAM権限を付与するためのオプションを編集する

  1. 既存のAmazon WorkSpaces Core接続を右クリックします。
  2. Connection Propertiesページで、Edit settingsをクリックします。
  3. Citrixがリソースを管理するためのIAM権限を付与するオプションのいずれかを選択します。必要な詳細を入力し、Saveをクリックします。

同時実行アクションの最大数を変更する

Amazon WorkSpaces Coreマネージドインスタンス用にStudioでホスト接続を作成すると、以下のデフォルト値が表示されます。

オプション 絶対値 パーセンテージ
同時実行アクション(すべての種類) 125 100
1分あたりの新規アクションの最大数 150 n/a
最大同時プロビジョニング操作数 150 n/a

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

接続の編集画面で Citrix Studio の詳細設定セクションにアクセスして、これらの値を構成できます。

または、Remote PowerShell SDK を使用して、環境に応じた最適な設定のために同時操作の最大数を設定できます。

PowerShell のカスタムプロパティ MaximumConcurrentProvisioningOperations を使用して、AWS の同時プロビジョニング操作の最大数を指定します。

構成前:

  • Cloud 用 PowerShell SDK がインストールされていることを確認してください。
  • MaximumConcurrentProvisioningOperations のデフォルト値は 150 であることを理解してください。

MaximumConcurrentProvisioningOperations の値をカスタマイズするには、次の手順を実行します。

  1. PowerShell ウィンドウを開きます。
  2. Citrix 固有の PowerShell モジュールをロードするには、asnp citrix* を実行します。
  3. cd xdhyp:\Connections\ を入力します。
  4. 接続を一覧表示するには、dir を入力します。
  5. カスタムプロパティ文字列を変更または初期化する:

    • カスタムプロパティ文字列に値がある場合は、カスタムプロパティをメモ帳にコピーします。次に、MaximumConcurrentProvisioningOperations プロパティを希望の値に変更します。1~1000の範囲の値を入力できます。 例: <Property xsi:type="IntProperty" Name="MaximumConcurrentProvisioningOperations" Value="xyz"/>

    • カスタムプロパティ文字列が空またはnullの場合、スキーマとMaximumConcurrentProvisioningOperationsプロパティの両方に適切な構文を入力して、文字列を初期化する必要があります。

  6. PowerShellウィンドウで、メモ帳から変更したカスタムプロパティを貼り付け、変更したカスタムプロパティに変数を割り当てます。カスタムプロパティを初期化した場合は、構文の後に次の行を追加します。

    $customProperties = '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Property xsi:type="IntProperty" Name="MaximumConcurrentProvisioningOperations" Value="100"/></CustomProperties>'
    <!--NeedCopy-->
    

    この文字列は、MaximumConcurrentProvisioningOperations プロパティを100に設定します。カスタムプロパティ文字列では、MaximumConcurrentProvisioningOperations プロパティをニーズに合った値に設定する必要があります。

  7. Get-XDAuthentication を入力します。これにより、資格情報の入力を求められます。
  8. $cred = Get-Credential を実行します。これにより、パスワードのみ(または名前とパスワード)の入力を求められる場合があります。アプリケーションIDと関連するシークレットの入力を求められる場合もあります。ロールベース認証を使用する接続の場合、role_based_auth は名前とパスワードの両方です。それ以外の場合は、AWS API IDとシークレットを入力します。
  9. set-item -PSPath 'XDHyp:\Connections<connection-name>' -CustomProperties $customProperties -username $cred.username -Securepassword $cred.password を実行します。<connection-name> を接続の名前に設定する必要があります。
  10. 更新されたCustomProperties文字列を確認するには、dir を入力します。

ネットワークインターフェースごとのセキュリティグループを構成する

ホスト接続を編集する際、PowerShellコマンドを使用して、エラスティックネットワークインターフェース(ENI)ごとに許可されるセキュリティグループの最大数を構成できるようになりました。AWSセキュリティグループのクォータ値については、セキュリティグループ を参照してください。

ネットワークインターフェースごとにセキュリティグループを構成するには:

  1. PowerShellウィンドウを開きます。
  2. Citrix固有のPowerShellモジュールをロードするには、asnp citrix* を実行します。
  3. cd xdhyp:\Connections\を実行します。
  4. 接続を一覧表示するには、dirを実行します。
  5. ネットワークインターフェースごとにセキュリティグループを構成するには、次のPowerShellコマンドを実行します。

    Set-HypHypervisorConnectionMetadata -HypervisorConnectionName aws -Name "Citrix_MachineManagement_Options" -Value " AwsMaxENISecurityGroupLimit=<number>"
    <!--NeedCopy-->
    

    注:

    AwsMaxENISecurityGroupLimitに値を設定しない場合、デフォルト値の5が使用されます。

既存の接続でプロキシを有効にする

  1. PowerShellウィンドウを開きます。
  2. 次のコマンドを実行します。

    Add-PSSnapin citrix*.
    cd XDHyp:\Connections\
    dir
    <!--NeedCopy-->
    
  3. 接続からCustomPropertiesをメモ帳にコピーし、プロキシを有効にするためにプロパティ設定<Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True" />CustomPropertiesに追加します。
  4. PowerShellウィンドウで、変更されたカスタムプロパティに変数を割り当てます。例:

    $customProperty = '<CustomProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.citrix.com/2014/xd/machinecreation">
    <Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True" />
    </CustomProperties>'
    <!--NeedCopy-->
    
  5. Get-XDAuthenticationを入力すると、資格情報の入力を求められます。
  6. $cred = Get-Credentialを実行します。パスワードのみ(または名前とパスワード)の入力を求められる場合があります。アプリケーションIDと関連するシークレットの入力を求められる場合もあります。ロールベース認証を使用する接続の場合、role_based_authは名前とパスワードの両方です。それ以外の場合は、AWS API IDとシークレットを入力します。

  7. set-item -PSPath 'XDHyp:\Connections<connection-name>' -CustomProperties $customProperties -username $cred.username -Securepassword $cred.passwordを実行します。<connection-name>を接続の名前に設定する必要があります。
  8. 更新されたCustomProperties文字列を確認するには、dirを入力します。

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

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

MCSを使用すると、APIキーとAPIシークレットを持つ新しいAmazon WorkSpaces Core Managed Instances接続が追加されます。この情報と認証済みアカウントを使用して、MCSはAWS EC2およびAmazon WorkSpaces Core Managed Instances API呼び出しを使用して、サポートされているリージョンとゾーンをAWSに照会します。このクエリは、Workspace Instances Service Endpoint URL https://workspaces-instances.us-east-1.api.aws/ とEC2 Service Endpoint https:/ec2.us-east-1.api.aws/ を使用して行われます。

注:

https://workspaces-instances.us-east-1.api.aws/ に接続できることを確認してください。

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

接続に自動的に選択されたAWSサービスエンドポイントURLが必要ない場合があります。そのような場合は、Citrix Cloud SDKとPowerShellを使用して、非標準のサービスエンドポイントURLで接続を作成できます。たとえば、サービスエンドポイントURL https://ec2.cn-north-1.amazonaws.com.cn を使用して接続を作成するには、次の手順を実行します。

  1. AWSでホストされているCloud Connectorをセットアップし、接続性があることを確認します。
  2. Cloud Connectorのリストを表示するには、次のPowerShellコマンドを実行します。

     PS C:\> asnp citrix.*
     PS C:\> Get-XDAuthentication
     PS C:\> Get-ConfigEdgeServer
    <!--NeedCopy-->
    
  3. 新しく作成されたCloud ConnectorからZoneUidを見つけ、次のPowerShellコマンドに入力します。斜体の項目をそれぞれの値に置き換えてください。

    PS C:\> $hyp= New-Item -Path xdhyp:\Connections -ZoneUid ZoneUid -Name “My New Connection” -ConnectionType "Custom" -HypervisorAddress @("https://workspaces-instances.$($cloudRegion).api.aws")-PluginId "AmazonWorkSpacesCoreMachineManagerFactory" -UserName “APIkey” -Password “API Secret” -Persist
    
    PS C:\> New-BrokerHypervisorConnection -HypHypervisorConnectionUid $hyp. HypervisorConnectionUid
    <!--NeedCopy-->
    
  4. ホスティングタブを更新して、接続が作成されたことを確認します。
  5. 新しい接続を使用してリソースの場所を追加します。

必要なAWS権限

このセクションには、AWS権限の完全なリストが含まれています。機能が正しく動作するように、このセクションに記載されている権限の完全なセットを使用してください。

注:

iam:PassRole 権限は、Citrixがリソースを管理するためにIAMロールを使用する場合にのみ必要です。

ホスト接続の作成

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

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:DescribeRegions",
                "workspaces-instances:*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
<!--NeedCopy-->

VMの電源管理

VMの電源がオンまたはオフになります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:DescribeInstances",,
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:RebootInstances",
                "ec2:DescribeInstanceStatus"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
           "Action": [
               "workspaces-instances:*"
           ],
           "Effect": "Allow",
            "Resource": "*"
       }

    ]

}
<!--NeedCopy-->

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

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

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:AttachVolume",
                "ec2:AssociateIamInstanceProfile",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupEgress",
                "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:DescribeInstanceStatus",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeLaunchTemplates",
                "ec2:DescribeLaunchTemplateVersions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSnapshots",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeSpotInstanceRequests",
                "ec2:DescribeInstanceCreditSpecifications",
                "ec2:DescribeInstanceAttribute",
                "ec2:GetLaunchTemplateData",
                "ec2:DescribeVolumes",
                "ec2:DescribeVpcs",
                "ec2:DetachVolume",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ebs:StartSnapshot",
                "ebs:GetSnapshotBlock",
                "ebs:PutSnapshotBlock",
                "ebs:CompleteSnapshot",
                "ebs:ListSnapshotBlocks",
                "ebs:ListChangedBlocks",
                "ec2:CreateSnapshot"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "workspaces-instances:*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetAccountSummary",
                "ec2:CopyImage"
            ],
            "Resource": "*"
        },

    ]
}
<!--NeedCopy-->

注:

  • SecurityGroupsに関連するEC2セクションは、カタログ作成時に準備VM用に分離セキュリティグループを作成する必要がある場合にのみ必要です。これが完了すると、これらの権限は不要になります。
  • EC2 CopyImage および IAM GetAccountSummary の権限は、準備済みイメージをリージョン間で共有する場合にのみ必要です。可用性ゾーンとリージョン間で準備済みイメージを共有する を参照してください。

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

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

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

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

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

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

注:

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

{
     "Version": "2012-10-17",
     "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                 "kms:CreateGrant",
                 "kms:Decrypt",
                 "kms:DescribeKey",
                 "kms:GenerateDataKeyWithoutPlainText",
                 "kms:GenerateDataKey",
                 "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の作成、更新、削除、および電源管理を行うことができます。 このポリシーは、IAM権限の定義セクションで説明されているようにユーザーに適用することも、ホスト接続を構成するときにIAMロールを使用を選択してロールベース認証を使用することもできます。

重要:

Citrixがリソースを管理するためのIAMロールを使用するには、まずクラウドコネクタを設定する際に、クラウドコネクタのEC2インスタンスで目的のIAMロールを構成します。Citrix Studioを使用して、ホスティング接続を追加し、IAMロールを使用オプションを選択します。これらの設定を持つホスティング接続は、ロールベースの認証を使用します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:AttachVolume",
                "ec2:AssociateIamInstanceProfile",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupEgress",
                "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:DescribeInstanceStatus",
                "ec2:DescribeLaunchTemplates",
                "ec2:DescribeLaunchTemplateVersions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSnapshots",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeSpotInstanceRequests",
                "ec2:DescribeInstanceCreditSpecifications",
                "ec2:DescribeInstanceAttribute",
                "ec2:GetLaunchTemplateData",
                "ec2:DescribeVolumes",
                "ec2:DescribeVpcs",
                "ec2:DetachVolume",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:RebootInstances",
                "ec2:RunInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": [
                "ec2:CreateSecurityGroup",
                "ec2:DeleteSecurityGroup"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "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:GenerateDataKey",
                 "kms:ReEncryptTo",
                 "kms:ReEncryptFrom"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "workspaces-instances:*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetAccountSummary",
                "ec2:CopyImage"
            ],
            "Resource": "*"
        }

    ]
}
<!--NeedCopy-->

注:

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

次のステップ

詳細情報

Amazon WorkSpaces Core マネージドインスタンスへの接続