有关本节中所述步骤的完整详细信息,请参阅官方 Amazon AWS PowerShell 文档。

前提条件

如果还没有 Amazon AWS 帐户,请创建一个帐户。

过程

  1. 在 AWS 控制台中,创建访问密钥,并获取访问密钥 ID 和私有访问密钥。请在默认配置文件中设置这些内容。
    仅当您没有访问密钥 ID 和私有访问密钥时,此步骤才适用
    Set-AWSCredential -AccessKey AKIAI6428NKYOEXAMPLE `
    -SecretKey bvfhkvvfhsbvhsdbhfbvfhfhvfhdskvbhfvbfhEXAMPLE ` 
    -StoreAs default
  2. 在 Amazon S3 中创建一个存储桶,以存储 Unified Access Gateway .vmdk 映像(如果尚不存在)。
    $bucket="uag-images"
    New-S3Bucket -BucketName $bucket -Region us-east-2
  3. 在 Amazon AWS 中创建一个名为 vmimport 的 IAM 角色,并对该角色应用策略。
    $importPolicyDocument = @"
    {
    "Version":"2012-10-17",
    "Statement":[
    {
    "Sid":"",
    "Effect":"Allow",
    "Principal":{
    "Service":"vmie.amazonaws.com"
    },
    "Action":"sts:AssumeRole",
    "Condition":{
    "StringEquals":{
    "sts:ExternalId":"vmimport"
    }
    }
    }
    ]
    }
    "@
    
    New-IAMRole -RoleName vmimport -AssumeRolePolicyDocument $importPolicyDocument
    
    $bucket="uag-images"
    $rolePolicyDocument = @"
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Effect": "Allow",
    "Action": [
    "s3:GetBucketLocation",
    "s3:GetObject",
    "s3:ListBucket"
    ],
    "Resource": [
    "arn:aws:s3:::$bucket",
    "arn:aws:s3:::$bucket/*"
    ]
    },
    {
    "Effect": "Allow",
    "Action": [
    "ec2:ModifySnapshotAttribute",
    "ec2:CopySnapshot",
    "ec2:RegisterImage",
    "ec2:Describe*"
    ],
    "Resource": "*"
    }
    ]
    }
    "@
    
    Write-IAMRolePolicy -RoleName vmimport -PolicyName vmimport -PolicyDocument $rolePolicyDocument
  4. 在 EC2 中准备网络环境。可以从 EC2 管理控制台或使用 PowerShell 执行这些步骤。只需完成这些步骤一次,即可为 Unified Access Gateway 部署准备 EC2 环境。为此,至少需要一个子网。对于多网卡 Unified Access Gateway 部署,每个网卡可以位于同一子网中,也可以位于不同的子网中。
  5. 为每种类型的网卡创建安全组。
    安全组包含一组用于限制 TCP 和 UDP 端口访问的防火墙规则。一个安全组可以在多个 Unified Access Gateway 设备之间共享。例如,您可以为 eth0 创建一个名为 UAG-Internet 的安全组,并在创建 Unified Access Gateway 设备时自动与第一个网卡相关联。要使用 Horizon,第一个 (UAG-Internet) 可以允许任何客户端中的 TCP 端口 80、443、8443、4172 和 UDP 端口 443、8443、4172。如果要允许通过 ssh 访问 Unified Access Gateway,则必须在每个 .ini 文件的“General”部分中指定 sshEnabled=true。SSH 通常应仅用于测试目的,而不能用于生产部署。您还应确保在安全组中将 TCP 端口 22 上的 ssh 访问限制为单个源 IP 地址,以便不会向所有人开放。
    使用 AWS 管理控制台在网络和安全设置中创建安全组,以使用防火墙规则限制 TCP 和 UDP 端口访问。
  6. 如果可以直接从 Internet 访问 Unified Access Gateway 设备,则每个需要访问权限的网卡都必须具有关联的公共 IP 地址(称为弹性 IP)。
  7. 对于每个网卡,确定子网 ID、安全组 ID 和公共 IP 分配 ID。如果没有为任何网卡指定安全组 ID,将使用默认安全组。如果未指定公共 IP ID,则该网卡将没有公共 IP 地址,因此无法直接从 Internet 进行访问。如果在一组 Unified Access Gateway 设备前面使用负载均衡器,可能会出现这种情况。