AWS EC2 への接続
接続とリソースの作成および管理では、接続を作成するウィザードについて説明します。以下の情報は、AWSクラウド環境に固有の詳細を扱っています。
前提条件
AWS EC2への接続を作成する前に、以下を実行します。
IAM権限の定義
ホスト接続を作成する前に、Citrixがお客様に代わってAWSアカウント内のリソースをプロビジョニングおよび管理するための適切な権限を付与するIAMユーザーまたはロールに対して、IAM権限ポリシーを適切に定義する必要があります。このセクションの情報を使用して、AWS上のCitrix DaaSのIAM権限を定義します。AmazonのIAMサービスでは、複数のユーザーを持つアカウントが許可されており、それらのユーザーはさらにグループに編成できます。これらのユーザーは、アカウントに関連する操作を実行する能力を制御するために、異なる権限を持つことができます。IAM権限の詳細については、IAM JSONポリシーリファレンスを参照してください。
新しいユーザーグループにIAM権限ポリシーを適用するには、次の手順を実行します。
- AWS管理コンソールにログインし、ドロップダウンリストから [IAMサービス] を選択します。
- [新しいユーザーグループの作成] を選択します。
- 新しいユーザーグループの名前を入力し、 [続行] を選択します。
- [権限] ページで、 [カスタムポリシー] を選択し、次に [選択] を選択します。
- [権限ポリシー] の名前を入力します。
- [ポリシー ドキュメント] セクションで、関連する権限を入力します。
ポリシー情報を入力した後、 [続行] を選択して、IAM権限ポリシーのユーザーグループへの適用を完了します。グループ内のユーザーには、Citrix DaaSに必要なアクションのみを実行する権限が付与されます。
重要:
この記事で提供されている例のポリシーテキストを使用して、Citrix DaaSがAWSアカウント内でアクションを実行するために使用するアクションを、特定のリソースに制限することなくリストします。Citrixは、テスト目的でこの例を使用することをお勧めします。実稼働環境では、リソースにさらなる制限を追加することを選択できます。
IAM権限の追加
AWS管理コンソールの [IAM] セクションで権限を追加します。
- [概要] パネルで、 [権限] タブを選択します。
-
[権限の追加] を選択します。

-
[権限の追加先] 画面で、権限を付与します。

-
JSONセクションで、環境に必要なAWS権限を含めます。
- 
接続の作成
Amazon EC2への接続は、次の方法で作成できます。
- [Studio](#create-a-connection-using-studio)
注:
プロキシサーバーまたはファイアウォールの制限を確認し、次のアドレスに接続できることを確認してください:
https://*.amazonaws.com。また、Citrix Gatewayサービス接続に記載されているすべてのアドレスに接続できることを確認してください。これらに接続できない場合、ホスト接続の作成または更新中に障害が発生する可能性があります。
Studioを使用した接続の作成
- [ホスティング] > [接続とリソースの追加] ページに移動します。
-
[接続] ページで、接続を構成するには、次の手順を実行します。
- [新しい接続の作成] を選択します。
- [ゾーン] で、AWS環境用に設定したリソースの場所を選択します。
- 接続タイプとして [Amazon EC2] を選択します。
-
リソースをプロビジョニングする方法のいずれかを選択します。
- [このAWSアカウントを使用してリソースをプロビジョニング] を選択した場合、 [IAMユーザーアクセスキーを使用] または [IAMロールを使用] を選択します。IAMユーザーアクセスキーの場合は、CitrixがAWSアカウント内のリソースを管理するための適切なIAM権限ポリシーを持つIAMユーザーの [APIキー] と [シークレットキー] を指定します。IAMロールの場合は、CitrixがAWSアカウント内のリソースを管理するための適切なIAM権限ポリシーを持つIAMロールをCitrix Cloud Connectorインスタンスに割り当てていることを確認してください。詳細については、ロールベース認証ガイドを参照してください。
- [クロスアカウントアクセスを使用してリソースをプロビジョニング] を選択した場合、Account AのCloud Connector(またはDelivery Controller)が引き受けてプロビジョニング操作を実行する必要があるAccount BのIAMロールの [ARN] を指定します。
- 接続名を入力し、 [次へ] をクリックします。
- [仮想マシンの場所] ページで、VMをプロビジョニングする場所を指定します。新しいVMを作成するためのクラウドリージョン、VPC、およびアベイラビリティーゾーンを選択します。
-
[ネットワーク] ページで、次の手順を実行します。
- アベイラビリティーゾーンで以前に選択したリソースの名前を入力します。
- 前のメニューで構成したVPC内の1つ以上のサブネットを選択します。
- 残りのページをクリックして進み、 [概要] ページまで移動します。
- [完了] をクリックして、Amazon EC2へのホスト接続を作成します。
重要な考慮事項
Studioを使用して接続を作成する場合:
- CitrixがAWSリソースを管理するための適切なIAM権限を定義します。
- CitrixがAWSリソースを管理するためにIAMユーザーアクセスキーを使用する場合、APIキーとシークレットキーの値を指定する必要があります。これらの値を含むキーファイルをAWSからエクスポートし、インポートできます。また、リージョン、アベイラビリティゾーン、VPC名、サブネットアドレス、ドメイン名、セキュリティグループ名、および資格情報も指定する必要があります。
- CitrixがAWSリソースを管理するためにIAMロールを使用する場合、すべてのCloud Connectorに適切なIAM権限を持つロールが割り当てられていることを確認する必要があります。詳細については、「Citrix Virtual Apps and DesktopsにおけるAWSでのロールベース認証」を参照してください。
- ルートAWSアカウントの資格情報ファイル(AWSコンソールから取得)は、標準のAWSユーザー用にダウンロードされた資格情報ファイルと同じ形式ではありません。そのため、Citrix DaaSでは、このファイルを使用してAPIキーとシークレットキーのフィールドに入力することはできません。AWS Identity Access Management (IAM) 資格情報ファイルを使用していることを確認してください。
PowerShellを使用した接続の作成
- 1. PowerShellウィンドウを開きます。
- 1. `asnp citrix*` を実行して、Citrix固有のPowerShellモジュールをロードします。
- 1. 次のコマンドを実行します。以下に例を示します。
```
$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 "<name of the connection>" -HypervisorAddress " "@("https://ec2.cn-north-1.amazonaws.com.cn") -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ホスト接続の拡張プロキシ構成
PowerShellを使用してホスト接続を作成または更新する際に、カスタムプロパティ UseSystemProxyForHypervisorTrafficOnConnectors を true に設定すると、AWSホスト接続はCloud Connectorのインストール中に構成されたWinHTTPシステムプロキシ値を読み取ることができます。
利点
- AWSホスト接続のプロキシ構成を簡素化します。
- サーバーおよびポート値の手動PowerShell構成の必要性を減らします。
- Cloud Connectorとホスト接続間での一貫したプロキシ使用を保証します。
- プロキシアクセスを必要とするAPI呼び出しの成功率を向上させます。
- プロキシ構成に関連するサポートリクエストを削減します。
前提条件
PowerShellを使用してホスト接続を作成する際にカスタムプロパティを設定する前に、Cloud ConnectorでWinHTTPプロキシを構成していることを確認してください。
自動プロキシを使用した新しい接続の作成
- PowerShellを開きます。
-
Citrixスナップインを追加します。
``` Add-PSSnapin citrix*
-
```
-
接続の変数を定義します。
$hypType = "AWS" - #################################################################################### The following items need to be set based on the installed environment $customProperties is set to enable using the system proxy $customProperties = '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True" /></CustomProperties>' $awsEndPoint is set to the desired region for the connection - $awsEndPoint = "https://ec2.us-east-1.amazonaws.com" $hypConnName is set to the connection name to use $hypConnName = "ctx-test" $apiKey is set to the AWS API Key ID or "role_based_auth" if the Cloud Connector instance has an appropriate role $apiKey = "role_based_auth" $secretKey is set to the AWS API Key Secret or "role_based_auth" if the Cloud Connector instance has an appropriate role $secretKey = "role_based_auth" $resourceLocation is set to the connector resource location name $resourceLocation = "ctx-test" #################################################################################### $secureSecretKey = ConvertTo-SecureString -String $secretKey -AsPlainText -Force $zoneUid = (Get-ConfigZone|Where-Object Name -EQ "$resourceLocation").Uid <!--NeedCopy-->
-
注:
$customProperties、$awsEndPoint、$hypConnName、$apiKey、$secretKey、および$resourceLocation変数のプレースホルダー値を、ご使用の環境に適した値に置き換えてください。
-
ハイパーバイザー接続を作成します。
$hypHc = New-Item -Path xdhyp:\Connections ` -Name $hypConnName ` -HypervisorAddress $awsEndPoint ` -UserName $apiKey ` -SecurePassword $secureSecretKey ` -ConnectionType $hypType ` -CustomProperties $customProperties ` -Persist ` -ZoneUid $zoneUid <!--NeedCopy--> -
Brokerハイパーバイザー接続を作成します。
- ```
- $bhc = New-BrokerHypervisorConnection -HypHypervisorConnectionUid $hypHc.HypervisorConnectionUid
-
```
「自動プロキシを使用した既存のホスト接続の更新」も参照してください。
クロスアカウントプロビジョニング
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ピアリングの設定」を参照してください。
- IAMロールを使用してクロスアカウントアクセスを委任します。「IAMロールを使用したクロスアカウントアクセスの委任」を参照してください。
VPCピアリングの設定
VPC Aがプライマリアカウント (アカウントA) にあり、Cloud ConnectorとActive Directoryがあるものとします。VPC Bはセカンダリアカウント (アカウントB) にあり、VMをプロビジョニングする場所です。
アカウントAとアカウントBの間でVPCピアリング接続を設定するには、次の手順を実行します。
- 1. VPCピアリング接続を作成します。参照:
- [異なるアカウント、同じリージョン](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html#different-account-same-region)
- [異なるアカウント、異なるリージョン](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html#different-account-different-region)
- VPC Aに移動し、パブリックサブネットに関連付けられているルートテーブルに移動します。
- [ルートの編集] > [ルートの追加] をクリックします。[送信先] 列にVPC BのCIDRブロックを追加し、[ターゲット] 列に作成したVPCピアリングを追加します。
- 手順2と3を繰り返しますが、VPC AとVPC Bのプライベートサブネットを使用します (VPC AのCIDRブロックを追加します)。「VPCピアリング接続のルートテーブルの更新」を参照してください。
- VPC Aに関連付けられているプライベートセキュリティグループに移動します。
- [アクション] を選択し、[インバウンドルールを編集] を選択します。
-
[ルールを追加] を選択します。タイプとして [すべてのトラフィック] を選択し、[ソース] 列に以下を追加します。
- 異なるリージョンの場合は、VPC BのCIDRブロックを追加します。
- 異なるアカウントだが同じリージョンの場合は、アカウントIDとVPC BのプライベートセキュリティグループIDをスラッシュで区切って追加します (例: 123456789012/sg-1a2b3c4d)。
- 手順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をプロビジョニングする場所です。
- 前述の手順でアカウント間のVPCピアリングを設定します。
- アカウントBで、最小限のCitrix IAM権限を持つIAMロールとポリシーを作成します。「IAMチュートリアル: IAMロールを使用したAWSアカウント間のアクセス委任」を参照してください。このロールのARNが「arn:aws:iam::5678:role/citrix-role」であるとします。
- ロール「arn:aws:iam::5678:role/citrix-role」に信頼ポリシーを追加し、「IAMでのクロスアカウントリソースアクセス」に従って、アカウントAのロール「arn:aws:iam::1234:role/primary-account-citrix-role」からアクセスできるようにします。
- アカウントAで、前述の「primary-account-citrix role」という名前でIAMロールとポリシーを作成します。これにより、IAMロールを引き受け、アカウントBからIAMロール (arn:aws:iam::5678:role/citrix-role) を渡すことができます。
- アカウントAのすべてのCloud Connectorにロール「arn:aws:iam::1234:role/primary-account-citrix-role」を割り当てます。
Cloud Connectorは、アカウント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 "AWS" -HypervisorAddress "https://ec2.$($cloudRegion).amazonaws.com" -Persist -Scope @() -UserName $apiKey -SecurePassword $secureKey -ZoneUid $zoneUid -CustomProperties $customProperties
New-BrokerHypervisorConnection -HypHypervisorConnectionUid $connection.HypervisorConnectionUid
<!--NeedCopy-->
ホスト接続が作成されたら、StudioまたはPowerShellを使用してホスティングユニットを作成します。ただし、VPCとネットワークを選択します。
接続の編集
既存のホスト接続を編集して、次の操作を実行できます。
- Citrixがリソースを管理するためのIAM権限を提供するオプションの変更
- ホスティング接続あたりの同時アクション (または同時マシン) の最大数の変更
- スコープの変更
- PowerShellコマンドを使用した、Elastic Network Interface (ENI) あたりのセキュリティグループの最大数の構成
- 自動プロキシを使用した既存のホスト接続の更新
IAM権限を提供するオプションの編集
- 既存のAmazon EC2接続を右クリックします。
- [接続プロパティ] ページで、[設定の編集] をクリックします。
- Citrixがリソースを管理するためのIAM権限を提供するオプションのいずれかを選択します。必要な詳細を入力し、[保存] をクリックします。
同時実行アクションの最大数の変更
Amazon EC2 用の Studio でホスト接続を作成すると、以下のデフォルト値が表示されます。
| オプション | 絶対値 | 割合 |
|---|---|---|
| 同時実行アクション (すべての種類) | 125 | 100 |
| 1 分あたりの新規アクションの最大数 | 150 | n/a |
| 同時プロビジョニング操作の最大数 | 100 | n/a |
MCS は、デフォルトで最大 100 の同時プロビジョニング操作をサポートしています。
これらの値は、[接続の編集] 画面の Citrix Studio の [詳細設定] セクションにアクセスして構成します。

または、Remote PowerShell SDK を使用して、環境に応じた最適な設定のために同時操作の最大数を設定できます。
PowerShell のカスタムプロパティである MaximumConcurrentProvisioningOperations を使用して、同時 AWS プロビジョニング操作の最大数を指定します。
構成前:
- Cloud 用 PowerShell SDK がインストールされていることを確認します。
-
MaximumConcurrentProvisioningOperationsのデフォルト値が 100 であることを理解しておいてください。
MaximumConcurrentProvisioningOperations の値をカスタマイズするには、以下の手順を実行します。
- PowerShell ウィンドウを開きます。
- Citrix 固有の PowerShell モジュールをロードするために
asnp citrix*を実行します。 -
cd xdhyp:\Connections\と入力します。 - 接続を一覧表示するために
dirと入力します。 -
カスタムプロパティ文字列を変更または初期化します。
-
カスタムプロパティ文字列に値がある場合は、カスタムプロパティをメモ帳にコピーします。次に、
MaximumConcurrentProvisioningOperationsプロパティを希望の値に変更します。1~1000 の範囲の値を入力できます。たとえば、<Property xsi:type="IntProperty" Name="MaximumConcurrentProvisioningOperations" Value="xyz"/>のようになります。 -
カスタムプロパティ文字列が空または null の場合は、スキーマと
MaximumConcurrentProvisioningOperationsプロパティの両方に適切な構文を入力して文字列を初期化する必要があります。
-
-
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>'この文字列は、
MaximumConcurrentProvisioningOperationsプロパティを 100 に設定します。カスタムプロパティ文字列では、MaximumConcurrentProvisioningOperationsプロパティをニーズに合った値に設定する必要があります。 -
Get-XDAuthenticationと入力すると、資格情報の入力を求められます。 -
$cred = Get-Credentialを実行します。これにより、パスワードのみ (または名前とパスワード) の入力を求められる場合があります。アプリケーション ID と関連するシークレットの入力を求められる場合もあります。ロールベース認証を使用する接続の場合、role_based_auth は名前とパスワードの両方です。それ以外の場合は、AWS API ID とシークレットを入力します。 -
set-item -PSPath 'XDHyp:\Connections<connection-name>' -CustomProperties $customProperties -username $cred.username -Securepassword $cred.passwordを実行します。<connection-name>は接続の名前に設定する必要があります。 - 更新されたカスタムプロパティ文字列を確認するために
dirと入力します。
ネットワークインターフェイスごとのセキュリティグループの構成
ホスト接続を編集する際、PowerShell コマンドを使用して、エラスティックネットワークインターフェイス (ENI) ごとに許可されるセキュリティグループの最大数を構成できるようになりました。AWS セキュリティグループのクォータ値については、「セキュリティグループ」を参照してください。
ネットワークインターフェイスごとにセキュリティグループを構成するには:
- PowerShell ウィンドウを開きます。
- Citrix 固有の PowerShell モジュールをロードするために
asnp citrix*を実行します。 -
cd xdhyp:\Connections\を実行します。 - 接続を一覧表示するために
dirを実行します。 -
ネットワークインターフェイスごとにセキュリティグループを構成するために、以下の PowerShell コマンドを実行します。
Set-HypHypervisorConnectionMetadata -HypervisorConnectionName aws -Name "Citrix_MachineManagement_Options" -Value " AwsMaxENISecurityGroupLimit=<number>" <!--NeedCopy-->注:
AwsMaxENISecurityGroupLimitの値を設定しない場合、デフォルト値の 5 が使用されます。
自動プロキシを使用して既存のホスト接続を更新
- PowerShell ウィンドウを開きます。
- Citrix 固有の PowerShell モジュールをロードするために
asnp citrix*を実行します。 -
cd xdhyp:\Connections\と入力します。 - 接続を一覧表示するために
dirと入力します。 - カスタムプロパティをメモ帳にコピーし、プロパティ設定
<Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True"を追加します。 - PowerShell ウィンドウで、メモ帳から変更したカスタムプロパティを貼り付け、変更したカスタムプロパティに変数名を割り当てます。
-
Get-XDAuthenticationと入力すると、資格情報の入力を求められます。 -
$cred = Get-Credentialを実行します。これにより、パスワードのみ (または名前とパスワード) の入力を求められる場合があります。アプリケーション ID と関連するシークレットの入力を求められる場合もあります。ロールベース認証を使用する接続の場合、role_based_auth は名前とパスワードの両方です。それ以外の場合は、AWS API ID とシークレットを入力します。 -
set-item -PSPath 'XDHyp:\Connections<connection-name>' -CustomProperties $customProperties -username $cred.username -Securepassword $cred.passwordを実行します。<connection-name>は接続の名前に設定する必要があります。 - 更新されたカスタムプロパティ文字列を確認するために
dirと入力します。
サービスエンドポイント URL
標準ゾーンサービスエンドポイント URL
MCS を使用すると、API キーと API シークレットを持つ新しい AWS 接続が追加されます。この情報と認証済みアカウントを使用して、MCS は AWS DescribeRegions EC2 API 呼び出しを使用してサポートされているゾーンを AWS に照会します。クエリは、汎用 EC2 サービスエンドポイント URL https://ec2.amazonaws.com/ を使用して行われます。MCS を使用して、サポートされているゾーンのリストから接続のゾーンを選択します。優先される AWS サービスエンドポイント URL は、そのゾーンに対して自動的に選択されます。ただし、サービスエンドポイント URL を作成した後、その URL を設定または変更することはできません。
非標準サービスエンドポイント URL
接続に自動的に選択されたAWSサービスエンドポイントURLが必要ない場合があります。そのような場合、Citrix Cloud SDKとPowerShellを使用して、非標準のサービスエンドポイントURLで接続を作成できます。例えば、サービスエンドポイントURL https://ec2.cn-north-1.amazonaws.com.cn を使用して接続を作成するには、次の手順を実行します。
- AWSでホストされているCloud Connectorをセットアップし、接続性を確保します。
-
Cloud Connectorのリストを表示するには、次のPowerShellコマンドを実行します。
PS C:\> asnp citrix.* PS C:\> Get-XDAuthentication PS C:\> Get-ConfigEdgeServer <!--NeedCopy--> -
新しく作成されたCloud ConnectorからZoneUidを見つけ、次のPowerShellコマンドに入力します。斜体で示された項目をそれぞれの値に置き換えます。
PS C:\> $hyp= New-Item -Path xdhyp:\Connections -ZoneUid`*ZoneUid*`-Name`*"My New Connection”*`-ConnectionType "AWS" -HypervisorAddress @("https://ec2.cn-north-1.amazonaws.com.cn") -UserName`*"APIkey"* `-Password`*“API Secret”* `-Persist` `PS C:\> New-BrokerHypervisorConnection -HypHypervisorConnectionUid $hyp. HypervisorConnectionUid <!--NeedCopy--> - EC2接続が作成されたことを確認するには、Hostingタブを更新します。
- 新しい接続を使用してリソースの場所を追加します。
必要なAWS権限
このセクションには、AWS権限の完全なリストが含まれています。機能が正しく動作するように、このセクションに記載されている権限の完全なセットを使用してください。
注記:
iam:PassRole権限は、role_based_authの場合にのみ必要です。
-
ホスト接続の作成
-
AWSから取得した情報を使用して、新しいホスト接続が追加されます。
-
```
-
{
-
- “Version”: “2012-10-17”, “Statement”: [ { “Action”: [ “ec2:DescribeAvailabilityZones”, “ec2:DescribeSubnets”, “ec2:DescribeVpcs”, “ec2:DescribeRegions” ], “Effect”: “Allow”, “Resource”: “*” } ] }
### VMの電源管理
VMの電源はオンまたはオフにされます。
{ “Version”: “2012-10-17”, “Statement”: [ { “Action”: [ “ec2:DescribeInstances”, “ec2:StartInstances”, “ec2:StopInstances”, “ec2:RebootInstances” ], “Effect”: “Allow”, “Resource”: “*” } ] }
### 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: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": "*"
}
] }
> **注記:**
>
> - SecurityGroupsに関連するEC2セクションは、カタログ作成時に準備VM用に隔離セキュリティグループを作成する必要がある場合にのみ必要です。これが完了すると、これらの権限は不要になります。
### VMのインポート
VMをインポートしてマシンカタログが作成されます。
{ “Version”: “2012-10-17”, “Statement”: [ { “Action”: [ “ec2:DescribeInstances”, “ec2:DescribeSecurityGroups”, “ec2:DescribeAvailabilityZones”, “ec2:DescribeSubnets”, “ec2:DescribeVolumes”, “ec2:DescribeSpotInstanceRequests” ], “Effect”: “Allow”, “Resource”: “*” } ] }
> **注記:**
>
> `ec2:DescribeSpotInstanceRequests` は、VMがインポートされるAWSリージョンにスポットインスタンスがある場合にのみ必要です。
#### 直接ディスクのアップロードとダウンロード
直接ディスクのアップロードは、マシンカタログのプロビジョニングにおけるボリュームワーカーの要件を排除し、代わりにAWSが提供するパブリックAPIを使用します。この機能により、追加のストレージアカウントに関連するコストと、ボリュームワーカーの操作を維持するための複雑さが軽減されます。
> **注記:**
>
> ボリュームワーカーのサポートは削除されました。マシンカタログのプロビジョニングには、直接ディスクのアップロードおよびダウンロード権限が必要です。
次の権限をポリシーに追加する必要があります。
- `ebs:StartSnapshot`
- `ebs:GetSnapshotBlock`
- `ebs:PutSnapshotBlock`
- `ebs:CompleteSnapshot`
- `ebs:ListSnapshotBlocks`
- `ebs:ListChangedBlocks`
- `ec2:CreateSnapshot`
- `ec2:DeleteSnapshot`
- `ec2:DescribeLaunchTemplates`
> **重要:**
>
> - ボリュームワーカーAMIやボリュームワーカーVMなどのボリュームワーカーリソースなしで、既存のマシンカタログに新しいVMを追加できます。
> - 以前にボリュームワーカーを使用していた既存のカタログを削除すると、ボリュームワーカー関連のすべてのアーティファクトが削除されます。
### 作成されたボリュームのEBS暗号化
EBSは、AMIが暗号化されている場合、または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”: “*” } ] }
- > **注:**
- >
> ユーザーの判断で、リソースおよび条件ブロックを含めることで、権限を特定のキーに制限できます。例: **条件付き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 } } } ] }
以下のキーポリシーステートメントは、アカウントがIAMポリシーを使用してKMSキーに対するすべてのアクション (kms:*) の権限を委任できるようにするために必要な、KMSキーのデフォルトキーポリシー全体です。
{ “Sid”: “Enable IAM policies”, “Effect”: “Allow”, “Principal”: { “AWS”: “arn:aws:iam::111122223333:root” }, “Action”: “kms:”, “Resource”: “” }
詳細については、[AWS Key Management Service公式ドキュメント](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)を参照してください。
### IAMロールベース認証
ロールベース認証をサポートするために、以下の権限が追加されます。
{ “Version”: “2012-10-17”, “Statement”: [ { “Effect”: “Allow”, “Action”: “iam:PassRole”, “Resource”: “arn:aws:iam:::role/” } ] }
### 最小限のIAM権限ポリシー
以下のJSONは、現在サポートされているすべての機能に使用できます。このポリシーを使用すると、ホスト接続の作成、VMの作成、更新、削除、および電源管理を行うことができます。
このポリシーは、[IAM権限の定義](#define-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: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: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/” } ] }
> **注:**
>
> - SecurityGroupsに関連するEC2セクションは、カタログ作成時に準備VM用に分離セキュリティグループを作成する必要がある場合にのみ必要です。これが完了すると、これらの権限は不要になります。
> - KMSセクションは、EBSボリューム暗号化を使用する場合にのみ必要です。
> - `iam:PassRole`権限セクションは、**role_based_auth**の場合にのみ必要です。
> - 要件と環境に基づいて、フルアクセスではなく特定のリソースレベルの権限を追加できます。詳細については、AWSドキュメントの[EC2リソースレベルの権限の解明](https://aws.amazon.com/blogs/security/demystifying-ec2-resource-level-permissions/)および[AWSリソースのアクセス管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)を参照してください。
> - `ec2:CreateNetworkInterface`および`ec2:DeleteNetworkInterface`権限は、ボリュームワーカー方式を使用している場合にのみ使用してください。
## ホスト接続での権限検証
ホスト接続で権限を検証し、MCSマシンカタログの作成と管理に関連するタスクを実行できます。この実装により、VMの作成、削除、更新、VMの電源管理、EBS暗号化など、さまざまなシナリオで必要な不足している権限を事前に特定できるため、重要な時期にブロックされるのを回避できます。
PowerShellコマンド`Test-HypHypervisorConnection`を使用して、ホスト接続の権限を検証できます。このコマンドの結果はリストとしてキャプチャされ、リスト内の各項目は3つのセクションに分かれています。
- カテゴリ: ユーザーがMCSマシンカタログを作成および管理するために実行できるアクションまたはタスク。
- 修正措置: 管理者がユーザーの不足している権限の不一致を解決するために実行する必要がある手順。
- 不足している権限: カテゴリの不足している権限のリスト。
権限を検証するには、以下を実行します。
1. AWSへのホスト接続を作成します。
1. Delivery Controller™ホストからPowerShellウィンドウを開きます。
1. `asnp citrix*`を実行して、Citrix固有のPowerShellモジュールをロードします。
1. 以下のコマンドを実行して、権限を検索するために必要な権限があるかどうかを確認します。
```
Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon"
<!--NeedCopy-->
-
権限を検索するために必要な不足している権限を追加した後、以下のコマンドを実行して、以下のカテゴリの権限があるかどうかを確認します。
- 作成、更新、削除
- 電源管理
- EBS暗号化
Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon" [-SecurePassword -Password] "password" -UserName "" -CustomProperties "" <!--NeedCopy-->
権限の追加の詳細については、「IAM権限の追加」を参照してください。
次のステップ
- 初期展開プロセス中の場合は、「マシンカタログの作成」を参照してください。
- AWS固有の情報については、「AWS EC2カタログの作成」を参照してください。