Citrix DaaS™

AWS EC2への接続

接続とリソースの作成および管理では、接続を作成するウィザードについて説明します。以下の情報は、AWSクラウド環境に固有の詳細をカバーしています。

前提条件

AWS EC2への接続を作成する前に、以下を実行します。

  • リソースロケーションとしてAWSのセットアップを完了します。AWS仮想化環境を参照してください。
  • Citrixがお客様に代わってAWSリソースを管理するためのIAMユーザーまたはロールのIAM権限ポリシーの定義

IAM権限の定義

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

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

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

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

重要:

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

IAM権限の追加

AWS管理コンソールのIAMセクションで権限を追加します。

  1. 概要パネルで、権限タブを選択します。
  2. 権限の追加を選択します。

    Identity and Access Management (IAM)

  3. 権限の追加先画面で、権限を付与します。

    Grant permissions for IAM policies

  4. JSONセクションで、環境に必要な必須AWS権限を含めます。

    -  ![JSON example](/en-us/citrix-daas/media/aws-iam-json-example.png)
    

接続の作成

Amazon EC2への接続は、以下を使用して作成できます。

    -  [Studio](#create-a-connection-using-studio)

注:

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

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

Studioを使用した接続の作成

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

    1. 新しい接続の作成を選択します。
    2. ゾーンで、AWS環境用に設定したリソースロケーションを選択します。
    3. 接続タイプとしてAmazon EC2を選択します。
    4. リソースをプロビジョニングする方法のいずれかを選択します。

      • このAWSアカウントを使用してリソースをプロビジョニングするを選択した場合、IAMユーザーアクセスキーを使用またはIAMロールを使用を選択します。IAMユーザーアクセスキーの場合、CitrixがAWSアカウント内のリソースを管理するための適切なIAM権限ポリシーを持つIAMユーザーのAPIキーシークレットキーを提供します。IAMロールの場合、CitrixがAWSアカウント内のリソースを管理するための適切なIAM権限ポリシーを持つIAMロールをCitrix Cloud Connectorインスタンスに割り当てていることを確認してください。詳細については、ロールベース認証ガイドを参照してください。
      • クロスアカウントアクセスを使用してリソースをプロビジョニングするを選択した場合、アカウントAのCloud Connector(またはDelivery Controller)が引き受けてプロビジョニング操作を実行する必要があるアカウントBのIAMロールのARNを提供します。
    5. 接続名を入力し、次へをクリックします。
  3. 仮想マシンの場所ページで、VMをプロビジョニングする必要がある場所を指定します。新しいVMを作成するためのクラウドリージョン、VPC、およびアベイラビリティゾーンまたはローカルゾーンを選択します。
  4. ネットワークページで:

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

重要な考慮事項

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ウィンドウを開きます。
-  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を使用してホスト接続を作成または更新する際に、カスタムプロパティUseSystemProxyForHypervisorTrafficOnConnectorstrueに設定すると、AWSホスト接続はCloud Connectorのインストール中に構成されたWinHTTPシステムプロキシ値を読み取ることができます。

利点

-  AWSホスト接続のプロキシ構成を簡素化
  • サーバーおよびポート値の手動PowerShell構成の必要性を低減
  • Cloud Connectorとホスト接続間での一貫したプロキシ使用を保証
  • プロキシアクセスを必要とするAPI呼び出しの成功率を向上
  • プロキシ構成に関連するサポートリクエストを減少

前提条件

PowerShellを使用してホスト接続を作成する際にカスタムプロパティを設定する前に、Cloud ConnectorでWinHTTPプロキシを構成していることを確認してください。

自動プロキシを使用した新しい接続の作成

  1. PowerShellを開きます。
  2. Citrixスナップインを追加します。

    
    Add-PSSnapin citrix*
    
    <!--NeedCopy-->
    
  3. 接続の変数を定義します。

    
    $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変数内のプレースホルダー値を、ご使用の環境に適した値に置き換えてください。

  1. ハイパーバイザー接続を作成します。

    
    $hypHc = New-Item -Path xdhyp:\Connections `
    -Name $hypConnName `
    -HypervisorAddress $awsEndPoint `
    -UserName $apiKey `
    -SecurePassword $secureSecretKey `
    -ConnectionType $hypType `
    -CustomProperties $customProperties `
    -Persist `
    -ZoneUid $zoneUid
    
    <!--NeedCopy-->
    
  2. Brokerハイパーバイザー接続を作成します。

    ```

  • $bhc = New-BrokerHypervisorConnection -HypHypervisorConnectionUid $hypHc.HypervisorConnectionUid

    ```

自動プロキシを使用した既存のホスト接続の更新」も参照してください。

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

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

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

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

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

    • 異なるリージョンの場合は、VPC BのCIDRブロックを追加します。
    • 異なるアカウントだが同じリージョンの場合は、VPC BのアカウントIDとプライベートセキュリティグループIDをスラッシュで区切って追加します(例: 123456789012/sg-1a2b3c4d)。
  7. 手順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は、アカウント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とネットワークを選択してください。

接続の編集

既存のホスト接続は、以下を目的として編集できます。

IAM権限を提供するオプションの編集

  1. 既存のAmazon EC2接続を右クリックします。
  2. [接続プロパティ] ページで、[設定の編集] をクリックします。
  3. Citrixがリソースを管理するためのIAM権限を提供するオプションのいずれかを選択します。必要な詳細を入力し、[保存] をクリックします。

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

Studio で Amazon EC2 のホスト接続を作成すると、次のデフォルト値が表示されます。

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

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

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

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

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

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

構成前:

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

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

  1. PowerShell ウィンドウを開きます。
  2. asnp citrix* を実行して、Citrix 固有の PowerShell モジュールをロードします。
  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>'

    この文字列は、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. dir と入力して、更新されたカスタムプロパティ文字列を確認します。

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

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

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

  1. PowerShell ウィンドウを開きます。
  2. asnp citrix* を実行して、Citrix 固有の PowerShell モジュールをロードします。
  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. asnp citrix* を実行して、Citrix 固有の PowerShell モジュールをロードします。
  3. cd xdhyp:\Connections\ と入力します。
  4. dir と入力して接続を一覧表示します。
  5. カスタムプロパティをメモ帳にコピーし、プロパティ設定 <Property xsi:type="StringProperty" Name="UseSystemProxyForHypervisorTrafficOnConnectors" Value="True" を追加します。
  6. PowerShell ウィンドウで、メモ帳から変更したカスタムプロパティを貼り付け、変更したカスタムプロパティに変数を割り当てます。
  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. 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 を使用して接続を作成するには、次の手順を実行します。

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

    
     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 "AWS" -HypervisorAddress @("https://ec2.cn-north-1.amazonaws.com.cn") -UserName`*"APIkey"* `-Password`*“API Secret”* `-Persist`
    `PS C:\> New-BrokerHypervisorConnection -HypHypervisorConnectionUid $hyp. HypervisorConnectionUid
    
    <!--NeedCopy-->
    
  4. [ホスティング] タブを更新して、EC2接続が作成されたことを確認します。
  5. 新しい接続を使用してリソースの場所を追加します。

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

<!--NeedCopy-->

VMの電源管理

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


{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:DescribeInstances",
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:RebootInstances",
                "ec2:DescribeInstanceStatus"
            ],
            "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": "*"
        }
    ]
}

<!--NeedCopy-->

注:

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

<!--NeedCopy-->

注:

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

<!--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権限の定義セクションで説明されているようにユーザーに適用することも、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: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/*"
        }
    ]
}

<!--NeedCopy-->

注:

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

ホスト接続での権限の検証

ホスト接続で権限を検証し、MCSマシンカタログの作成と管理に関連するタスクを実行できます。この実装は、VMの作成、削除、更新、VMの電源管理、EBS暗号化など、さまざまなシナリオで必要な不足している権限を事前に特定するのに役立ち、重要な時期にブロックされることを回避できます。

PowerShellコマンドTest-HypHypervisorConnectionを使用して、ホスト接続の権限を検証できます。このコマンドの結果はリストとしてキャプチャされ、リスト内の各項目は3つのセクションに分かれています。

  • カテゴリ: ユーザーがMCSマシンカタログを作成および管理するために実行できるアクションまたはタスク
  • 是正措置: 管理者がユーザーの不足している権限の不一致を解決するために実行する必要がある手順
  • 不足している権限: カテゴリの不足している権限のリスト

権限を検証するには、次の手順を実行します。

  1. AWSへのホスト接続を作成します
  2. Delivery Controller™ホストからPowerShellウィンドウを開きます
  3. asnp citrix*を実行して、Citrix固有のPowerShellモジュールをロードします
  4. 以下のコマンドを実行して、権限を検索するために必要な権限があるかどうかを確認します

    
    Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon"
    
    <!--NeedCopy-->
    
  5. 権限を検索するために必要な不足している権限を追加した後、以下のコマンドを実行して、以下のカテゴリの権限があるかどうかを確認します

    • 作成、更新、削除
    • 電源管理
    • EBS暗号化
    
    Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon" [-SecurePassword -Password] "password" -UserName "" -CustomProperties ""
    
    <!--NeedCopy-->
    

権限の追加の詳細については、「IAM権限の追加」を参照してください。

次のステップ

詳細情報

AWS EC2への接続