连接到 AWS
创建和管理连接与资源介绍了创建连接的向导。以下信息涵盖了 AWS 云环境的特定详细信息。
注意:
在创建到 AWS 的连接之前,您需要首先将 AWS 设置为资源位置。请参阅AWS 虚拟化环境。
创建连接
使用 Studio 创建连接时:
- 您必须提供 API 密钥和秘密密钥值。您可以从 AWS 导出包含这些值的密钥文件,然后将其导入。您还必须提供区域、可用区、VPC 名称、子网地址、域名、安全组名称和凭据。
- 根 AWS 帐户的凭据文件(从 AWS 控制台检索)的格式与为标准 AWS 用户下载的凭据文件格式不同。因此,Citrix DaaS™ 无法使用该文件填充 API 密钥和秘密密钥字段。请确保您使用的是 AWS Identity Access Management (IAM) 凭据文件。
注意:
创建连接后,更新 API 密钥和秘密密钥的尝试可能会失败。要解决此问题,请检查您的代理服务器或防火墙限制,并确保可以访问以下地址:
https://*.amazonaws.com
。
限制
如果您在 AWS 控制台中更改 AWS Virtual Private Cloud (VPC) 的名称,则 Citrix Cloud™ 中现有的托管单元将中断。当托管单元中断时,您无法创建目录或将计算机添加到现有目录中。要解决此问题,请将 AWS VPC 的名称改回原始名称。
主机连接默认值
当您在 Studio 中为 AWS 云环境创建主机连接时,将显示以下默认值:
选项 | 绝对值 | 百分比 |
---|---|---|
并发操作(所有类型) | 125 | 100 |
每分钟最大新操作数 | 150 | n/a |
最大并发预配操作数 | 100 | n/a |
MCS 默认支持 100 个最大并发预配操作。
您可以通过访问 Citrix Studio 中编辑连接屏幕上的高级部分来配置这些值:
或者,您可以使用远程 PowerShell SDK 设置最大并发操作数,以根据您的环境进行优化设置。
使用 PowerShell 自定义属性 MaximumConcurrentProvisioningOperations
来指定最大并发 AWS 预配操作数。
配置前:
- 确保您已安装适用于 Cloud 的 PowerShell SDK。
- 请注意,
MaximumConcurrentProvisioningOperations
的默认值为 100。
执行以下步骤来自定义 MaximumConcurrentProvisioningOperations
值:
- 打开 PowerShell 窗口。
- 运行
asnp citrix*
以加载 Citrix 特定的 PowerShell 模块。 - 输入
cd xdhyp:\Connections\
。 - 输入
dir
以列出连接。 -
更改或初始化自定义属性字符串:
-
如果自定义属性字符串有值,请将自定义属性复制到 Notepad 中。接下来,将
MaximumConcurrentProvisioningOperations
属性更改为您首选的值。您可以输入 1–1000 范围内的值。 例如,<Property xsi:type="IntProperty" Name="MaximumConcurrentProvisioningOperations" Value="xyz"/>
。 -
如果自定义属性字符串为空或为 null,则必须通过输入架构和
MaximumConcurrentProvisioningOperations
属性的正确语法来初始化该字符串。
-
-
在 PowerShell 窗口中,从 Notepad 粘贴修改后的自定义属性,并将变量分配给修改后的自定义属性。如果您初始化了自定义属性,请在语法后添加以下行:
$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 窗口。
- 运行
asnp citrix*
以加载 Citrix 特定的 PowerShell 模块。 - 运行
cd xdhyp:\Connections\
。 - 运行
dir
以列出连接。 -
运行以下 PowerShell 命令以配置每个网络接口的安全组:
Set-HypHypervisorConnectionMetadata -HypervisorConnectionName aws -Name "Citrix_MachineManagement_Options" -Value " AwsMaxENISecurityGroupLimit=<number>" <!--NeedCopy-->
注意:
如果您未设置
AwsMaxENISecurityGroupLimit
的值,则它将采用默认值 5。
跨帐户预配
在某些用例中,Cloud Connector 希望放置在单独的 AWS 帐户(共享服务帐户或站点组件帐户)中,并具有跨帐户访问权限的 IAM 角色(跨帐户 IAM 角色)以及在单独的辅助 AWS 帐户(工作负载帐户)中进行 MCS 预配的计算机目录,而无需在单独的帐户中添加额外的 Cloud Connector。为了支持此类场景,此功能使用 VPC 对等和使用 IAM 角色进行跨帐户访问,使管理多个 AWS 帐户的企业能够跨不同 AWS 帐户进行预配。
借助 VPC 对等,您可以让 Cloud Connector 和在不同区域或帐户中预配的 VM 能够相互通信。
借助使用 IAM 角色进行跨帐户访问,您可以允许主帐户(Cloud Connector 帐户)承担 IAM 角色以访问辅助帐户(计算机目录 VM)中的 AWS 资源。
要允许 Cloud Connector 访问辅助帐户的资源,请在承担辅助帐户的 IAM 角色后创建主机连接。
要允许 Cloud Connector 访问辅助帐户的资源,请在承担辅助帐户的 IAM 角色后创建主机连接。
先决条件
在为跨帐户预配创建主机连接之前,请设置以下内容:
- 设置 VPC 对等并配置两个区域或帐户中的安全组。请参阅设置 VPC 对等。
- 使用 IAM 角色委派跨帐户访问权限。请参阅使用 IAM 角色委派跨帐户访问权限。
设置 VPC 对等
假设 VPC A 位于主帐户(帐户 A)中,并且它具有 Cloud Connector 和 Active Directory。VPC B 位于辅助帐户(帐户 B)中,您希望在此处预配 VM。
要在帐户 A 和帐户 B 之间设置 VPC 对等连接,请执行以下操作:
-
创建 VPC 对等连接。请参阅:
- 转到您的 VPC A 和与公共子网关联的路由表。
- 单击编辑路由 > 添加路由。在目标列中添加 VPC B 的 CIDR 块,并在目标列中添加您创建的 VPC 对等。
- 重复步骤 2 和 3,但使用 VPC A 和 VPC B 的私有子网(添加 VPC A 的 CIDR 块)。请参阅更新 VPC 对等连接的路由表。
- 转到与 VPC A 关联的私有安全组。
- 选择操作,然后选择编辑入站规则。
-
选择添加规则。对于类型,选择所有流量,然后在源列中添加:
- 如果它是一个不同的区域,请添加 VPC B 的 CIDR 块。
- 如果它是不同的帐户但相同的区域,请添加 VPC B 的帐户 ID 和私有安全组 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”,以便帐户 A 角色 “arn:aws:iam::1234:role/primary-account-citrix-role” 可以访问它,具体请参阅 - IAM 中的跨帐户资源访问。
- 在帐户 A 中创建前面提到的名为 “primary-account-citrix role” 的 IAM 角色和策略,该角色可以承担 IAM 角色并从帐户 B 传递 IAM 角色 (arn:aws:iam::5678:role/citrix-role)。
- 将角色 “arn:aws:iam::1234:role/primary-account-citrix-role” 分配给帐户 A 中的所有 Cloud Connector。
Cloud Connector 现在可以承担帐户 B 中的角色 (“arn:aws:iam::5678:role/citrix-role”)。
为跨帐户预配创建主机连接
在辅助帐户(帐户 B)中创建主机连接,您希望在此处预配 VM。这允许帐户 A 的 Cloud Connector 在承担帐户 B 的角色后访问帐户 B 中的资源。
使用 PowerShell 命令创建主机连接并添加以下两个自定义属性:
-
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 和网络。
服务终结点 URL
标准区域服务终结点 URL
当您使用 MCS 时,将添加一个新的 AWS 连接,其中包含 API 密钥和 API 秘密。利用此信息以及经过身份验证的帐户,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 并确保其具有连接性。
-
运行以下 PowerShell 命令以查看 Cloud Connector 列表。
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
- 刷新托管选项卡以验证 EC2 连接是否已创建。
- 使用新连接添加资源位置。
定义 IAM 权限
使用本节中的信息定义 Citrix DaaS 在 AWS 上的 IAM 权限。Amazon 的 IAM 服务允许帐户拥有多个用户,这些用户可以进一步组织成组。这些用户可以拥有不同的权限来控制他们执行与帐户相关的操作的能力。有关 IAM 权限的更多信息,请参阅 IAM JSON 策略参考。
要将 IAM 权限策略应用于新的用户组:
- 登录 AWS 管理控制台,然后从下拉列表中选择 IAM 服务。
- 选择创建新用户组。
- 为新用户组键入名称,然后选择继续。
- 在权限页面上,选择自定义策略,然后选择选择。
- 为权限策略键入名称。
- 在策略文档部分中,输入相关权限。
输入策略信息后,选择继续以完成将 IAM 权限策略应用于用户组。组中的用户被授予仅执行 Citrix DaaS 所需操作的权限。
重要:
使用本文中提供的示例策略文本列出 Citrix DaaS 用于在 AWS 帐户中执行操作而无需将这些操作限制到特定资源的操作。Citrix 建议您将此示例用于测试目的。对于生产环境,您可能选择对资源添加进一步的限制。
添加 IAM 权限
在 AWS 管理控制台的 IAM 部分添加权限:
- 在摘要面板中,选择权限选项卡。
- 选择添加权限。
在添加权限到屏幕中,授予权限:
在 JSON 选项卡中使用以下示例:
提示:
请注意,此 JSON 示例可能不包含您环境的所有权限。有关更多信息,请参阅关于 AWS 权限。
所需的 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"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
<!--NeedCopy-->
创建、更新或删除 VM
创建、更新或删除计算机目录,其中 VM 作为 AWS 实例进行预配。
{
"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: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-->
注意:
- 仅当在目录创建期间必须为准备 VM 创建隔离安全组时,才需要与 SecurityGroups 相关的 EC2 部分。完成此操作后,不再需要这些权限。
导入 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 区域中存在 Spot 实例时才需要。
直接磁盘上传和下载
直接磁盘上传消除了计算机目录预配对卷工作器的要求,而是使用 AWS 提供的公共 API。此功能降低了与额外存储帐户相关的成本以及维护卷工作器操作的复杂性。
注意:
已移除对卷工作器的支持。计算机目录预配需要直接磁盘上传和下载权限。
必须将以下权限添加到策略中:
ebs:StartSnapshot
ebs:GetSnapshotBlock
ebs:PutSnapshotBlock
ebs:CompleteSnapshot
ebs:ListSnapshotBlocks
ebs:ListChangedBlocks
ec2:CreateSnapshot
ec2:DeleteSnapshot
ec2:DescribeLaunchTemplates
重要:
- 您可以将新的 VM 添加到现有计算机目录中,而无需任何卷工作器资源,例如卷工作器 AMI 和卷工作器 VM。
- 如果您删除以前使用过任何卷工作器的现有目录,则所有与卷工作器相关的工件都将被删除。
已创建卷的 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-->
以下密钥策略语句是 KMS 密钥的整个默认密钥策略,它允许帐户使用 IAM 策略委派 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,请在设置 Cloud Connector 时,首先在 Cloud Connector 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: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-->
注意:
- 仅当在目录创建期间必须为准备 VM 创建隔离安全组时,才需要与 SecurityGroups 相关的 EC2 部分。完成此操作后,不再需要这些权限。
- KMS 部分仅在使用 EBS 卷加密时才需要。
iam:PassRole
权限部分仅在 role_based_auth 时需要。- 可以根据您的要求和环境添加特定的资源级权限,而不是完全访问权限。有关更多详细信息,请参阅 AWS 文档揭秘 EC2 资源级权限和AWS 资源的访问管理。
- 仅当您使用卷工作器方法时,才使用
ec2:CreateNetworkInterface
和ec2:DeleteNetworkInterface
权限。
验证主机连接上的权限
您可以验证主机连接上的权限,以执行与创建和管理 MCS 计算机目录相关的任务。此实现可帮助您提前找出不同场景(例如创建、删除和更新 VM、VM 的电源管理以及 EBS 加密)所需的缺失权限,从而避免在关键时刻受阻。
您可以使用 PowerShell 命令 Test-HypHypervisorConnection
验证主机连接上的权限。命令结果将捕获为一个列表,其中列表中的每个项目都分为三个部分。
- 类别:用户可以执行的用于创建和管理 MCS 计算机目录的操作或任务。
- 纠正措施:管理员必须执行的步骤,以解决用户缺少权限的差异。
- 缺少权限:类别的缺少权限列表。
要验证权限,请执行以下操作:
- 创建到 AWS 的主机连接。
- 从 Delivery Controller™ 主机打开 PowerShell 窗口。
- 运行
asnp citrix*
以加载 Citrix 特定的 PowerShell 模块。 -
运行以下命令以验证您是否具有查找权限所需的权限。
Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon" <!--NeedCopy-->
-
添加查找权限所需的缺失权限后,运行以下命令以验证您是否具有以下类别的权限:
- 创建更新删除
- 电源管理
- EBS 加密
Test-HypHypervisorConnection -LiteralPath "XDHyp:\Connections\AWSCon" [-SecurePassword -Password] "password" -UserName "" -CustomProperties "" <!--NeedCopy-->
有关添加权限的更多信息,请参阅添加 IAM 权限。