先决条件 - 研究与工程工作室

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

先决条件

AWS 账户 使用管理员用户创建

您必须 AWS 账户 拥有管理员用户:

  1. 打开https://portal.aws.amazon.com/billing/注册。

  2. 按照屏幕上的说明操作。

    在注册时,将接到电话或收到短信,要求使用电话键盘输入一个验证码。

    当您注册时 AWS 账户,就会创建AWS 账户根用户一个。根用户有权访问该账户中的所有 AWS 服务 和资源。作为最佳安全实践,请为用户分配管理访问权限,并且只使用根用户来执行需要根用户访问权限的任务

创建 Amazon EC2 SSH 密钥对

如果您没有 Amazon EC2 SSH 密钥对,则需要创建一个密钥对。有关更多信息,请参阅亚马逊 EC2 用户指南 EC2中的使用亚马逊创建密钥对

提高服务配额

我们建议增加以下各项的服务配额

  • 亚马逊 VPC

    • 将每个 NAT 网关的弹性 IP 地址配额从五个增加到八个。

    • 将每个可用区的 NAT 网关从五个增加到十个。

  • Amazon EC2

    • 将 EC2-VPC 弹性 IPs 从五个增加到十个

您的 AWS 账户对每项 AWS 服务都有默认配额(以前称为限制)。除非另有说明,否则,每个限额是区域特定的。您可以请求增加某些配额,但其他一些配额无法增加。有关更多信息,请参阅 本产品中的 AWS 服务配额

创建公共领域(可选)

我们建议为产品使用自定义域名,以便获得用户友好的网址。您需要使用 Amazon Route 53 或其他提供商注册域名,然后使用为该域导入证书 AWS Certificate Manager。如果您已经拥有公共域名和证书,则可以跳过此步骤。

  1. 按照说明在 Route 53 上注册域名。您应该会收到一封确认电子邮件。

  2. 检索您的域的托管区域。这是由 Route53 自动创建的。

    1. 打开 Route53 控制台。

    2. 从左侧导航栏中选择托管区域

    3. 打开为您的域名创建的托管区域,然后复制托管区域 ID

  3. 打开 AWS Certificate Manager 并按照以下步骤申请域证书。确保您位于计划部署解决方案的区域。

  4. 从导航栏中选择 “列出证书”,然后找到您的证书申请。该请求应该处于待处理状态。

  5. 选择您的证书 ID 以打开请求。

  6. 从 “” 部分中,选择 “在 Route53 中创建记录”。处理请求大约需要十分钟。

  7. 证书颁发后,从证书状态部分复制 ARN

创建域名(GovCloud 仅限)

如果您在 AWS GovCloud (美国西部)地区进行部署,并且使用的是研究与工程工作室的自定义域,则需要完成这些必备步骤。

  1. 在创建公共托管域的商业分区 AWS 账户中部署证书 AWS CloudFormation 堆栈

  2. 从 “证书 CloudFormation 输出” 中,找到并记下CertificateARNPrivateKeySecretARN

  3. 在 GovCloud 分区帐户中,使用CertificateARN输出值创建一个密钥。记下新的密钥 ARN,并在该密钥中添加两个标签,这样vdc-gateway就可以访问密钥值了:

    1. res: ModuleName = virtual-desktop-controller

    2. res: EnvironmentName = [环境名称](这可能是 res-demo。)

  4. 在 GovCloud 分区帐户中,使用PrivateKeySecretArn输出值创建一个密钥。记下新的密钥 ARN,并在该密钥中添加两个标签,这样vdc-gateway就可以访问密钥值了:

    1. res: ModuleName = virtual-desktop-controller

    2. res: EnvironmentName = [环境名称](这可能是 res-demo。)

提供外部资源

Research and Engineering Studio 在部署时 AWS 预计会有以下外部资源。

  • 网络(VPC、公有子网和私有子网)

    在这里,您将运行用于托管 RES 环境、Active Directory (AD) 和共享存储空间的 EC2 实例。

  • 存储(亚马逊 EFS)

    存储卷包含虚拟桌面基础架构 (VDI) 所需的文件和数据。

  • 目录服务 (AWS Directory Service for Microsoft Active Directory)

    目录服务对 RES 环境的用户进行身份验证。

  • 包含 Active Directory 服务帐户用户名和密码的密钥,格式为键值对(用户名、密码)

    Research and Engineering Studio 使用AWS Secrets Manager访问你提供的机密,包括服务帐户密码。

提示

如果您正在部署演示环境,但没有这些外部资源可用,则可以使用 AWS 高性能计算配方来生成外部资源。要在您的账户中部署资源创建外部资源,请参阅以下部分。

要在 AWS GovCloud (美国西部)区域进行演示部署,您需要完成中的创建域名(GovCloud 仅限)必备步骤。

在您的环境中配置 LDAPS(可选)

如果您计划在您的环境中使用 LDAPS 通信,则必须完成以下步骤来创建证书并将其附加到 AWS Managed Microsoft AD (AD) 域控制器,以提供 AD 和 RES 之间的通信。

  1. 按照如何为您启用服务器端 LDAPS 中提供的步骤进行操作。 AWS Managed Microsoft AD如果您已经启用 LDAPS,则可以跳过此步骤。

  2. 确认已在 AD 上配置 LDAPS 后,导出 AD 证书:

    1. 前往您的活动目录服务器。

    2. 以管理员 PowerShell 身份打开。

    3. 运行certmgr.msc打开证书列表。

    4. 首先打开受信任的根证书颁发机构,然后打开证书,打开证书列表。

    5. 选择并按住(或右键单击)与 AD 服务器同名的证书,然后选择 “所有任务”,然后选择 “导出”。

    6. 选择 Base-64 编码的 X.509 (.C ER),然后选择 “下一步”。

    7. 选择一个目录,然后选择 “下一步”。

  3. 在以下位置创建密钥 AWS Secrets Manager:

    在 Secrets Manager 中创建 Secret 时,在 secret type(密钥类型)下选择 Other type of secrets(其他类型密钥)并将 PEM 编码的凭证粘贴到 Plaintext(明文)字段中。

  4. 记下创建的 ARN 并将其作为DomainTLSCertificateSecretARN参数输入。第 1 步:启动产品

配置私有 VPC(可选)

在隔离的 VPC 中部署 Research and Engineering Studio 可增强安全性,以满足组织的合规和治理要求。但是,标准的 RES 部署依赖于互联网访问来安装依赖关系。要在私有 VPC 中安装 RES,您需要满足以下先决条件:

准备 Amazon 机器映像 (AMIs)

  1. 下载依赖关系。要在隔离的 VPC 中部署,RES 基础设施需要在没有公共互联网访问权限的情况下提供依赖关系。

  2. 创建具有 Amazon S3 只读访问权限和可信身份的 IAM 角色,名为 Amazon EC2。

    1. 使用 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

    2. 从 “角色” 中选择 “创建角色”。

    3. 选择可信实体页面:

      • 在 “可信实体类型” 下,选择 AWS 服务。

      • 对于 “服务” 或 “用例” 下的 “用例”,选择EC2并选择 “下一步”。

    4. 在 “添加权限” 上,选择以下权限策略,然后选择 “下一步”:

      • 亚马逊 3 ReadOnlyAccess

      • Amazon SSMManaged InstanceCore

      • EC2InstanceProfileForImageBuilder

    5. 添加角色名称描述,然后选择创建角色

  3. 创建 EC2 镜像生成器组件:

    1. 打开 EC2 Image Builder 控制台,网址为https://console.aws.amazon.com/imagebuilder

    2. 在 “已保存的资源” 下,选择 “组件”,然后选择 “创建组件”。

    3. 创建组件页面上,输入以下详细信息:

      • 对于 “组件类型”,选择 “构建”。

      • 要了解组件详情,请选择:

        参数 用户条目
        镜像操作系统 (OS) Linux
        兼容的操作系统版本 亚马逊 Linux 2 RHEL8,或 RHEL9
        组件名称 输入一个名字,例如:<research-and-engineering-studio-infrastructure>
        组件版本 我们建议从 1.0.0 开始。
        描述 可选的用户条目。
    4. 在 “创建组件” 页面上,选择 “定义文档内容”。

      1. 在输入定义文档内容之前,需要一个 tar.gz 文件的文件 URI。将 RES 提供的 tar.gz 文件上传到亚马逊 S3 存储桶,然后从存储桶属性中复制该文件的 URI。

      2. 输入以下信息:

        注意

        AddEnvironmentVariables是可选的,如果您不需要在基础架构主机中使用自定义环境变量,则可以将其删除。

        如果您正在设置http_proxyhttps_proxy环境变量,则需要使用这些no_proxy参数来防止实例使用代理来查询本地主机、实例元数据 IP 地址和支持 VPC 终端节点的服务。

        # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance # with the License. A copy of the License is located at # # http://www.apache.org/licenses/LICENSE-2.0 # # or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES # OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions # and limitations under the License. name: research-and-engineering-studio-infrastructure description: An RES EC2 Image Builder component to install required RES software dependencies for infrastructure hosts. schemaVersion: 1.0 parameters: - AWSAccountID: type: string description: RES Environment AWS Account ID - AWSRegion: type: string description: RES Environment AWS Region phases: - name: build steps: - name: DownloadRESInstallScripts action: S3Download onFailure: Abort maxAttempts: 3 inputs: - source: '<s3 tar.gz file uri>' destination: '/root/bootstrap/res_dependencies/res_dependencies.tar.gz' expectedBucketOwner: '{{ AWSAccountID }}' - name: RunInstallScript action: ExecuteBash onFailure: Abort maxAttempts: 3 inputs: commands: - 'cd /root/bootstrap/res_dependencies' - 'tar -xf res_dependencies.tar.gz' - 'cd all_dependencies' - '/bin/bash install.sh' - name: AddEnvironmentVariables action: ExecuteBash onFailure: Abort maxAttempts: 3 inputs: commands: - | echo -e " http_proxy=http://<ip>:<port> https_proxy=http://<ip>:<port> no_proxy=127.0.0.1,169.254.169.254,169.254.170.2,localhost,{{ AWSRegion }}.res,{{ AWSRegion }}.vpce.amazonaws.com,{{ AWSRegion }}.elb.amazonaws.com,s3.{{ AWSRegion }}.amazonaws.com,s3.dualstack.{{ AWSRegion }}.amazonaws.com,ec2.{{ AWSRegion }}.amazonaws.com,ec2.{{ AWSRegion }}.api.aws,ec2messages.{{ AWSRegion }}.amazonaws.com,ssm.{{ AWSRegion }}.amazonaws.com,ssmmessages.{{ AWSRegion }}.amazonaws.com,kms.{{ AWSRegion }}.amazonaws.com,secretsmanager.{{ AWSRegion }}.amazonaws.com,sqs.{{ AWSRegion }}.amazonaws.com,elasticloadbalancing.{{ AWSRegion }}.amazonaws.com,sns.{{ AWSRegion }}.amazonaws.com,logs.{{ AWSRegion }}.amazonaws.com,logs.{{ AWSRegion }}.api.aws,elasticfilesystem.{{ AWSRegion }}.amazonaws.com,fsx.{{ AWSRegion }}.amazonaws.com,dynamodb.{{ AWSRegion }}.amazonaws.com,api.ecr.{{ AWSRegion }}.amazonaws.com,.dkr.ecr.{{ AWSRegion }}.amazonaws.com,kinesis.{{ AWSRegion }}.amazonaws.com,.data-kinesis.{{ AWSRegion }}.amazonaws.com,.control-kinesis.{{ AWSRegion }}.amazonaws.com,events.{{ AWSRegion }}.amazonaws.com,cloudformation.{{ AWSRegion }}.amazonaws.com,sts.{{ AWSRegion }}.amazonaws.com,application-autoscaling.{{ AWSRegion }}.amazonaws.com,monitoring.{{ AWSRegion }}.amazonaws.com,ecs.{{ AWSRegion }}.amazonaws.com,.execute-api.{{ AWSRegion }}.amazonaws.com > " > /etc/environment
    5. 选择创建组件

  4. 创建 Image Builder 图片配方。

    1. 创建食谱页面上,输入以下内容:

      Section 参数 用户条目
      食谱详情 名称 输入适当的名称,例如 res-recipe-linux-x 86。
      版本 输入一个版本,通常从 1.0.0 开始。
      描述 添加可选描述。
      基础图片 选择图片 选择托管映像。
      OS 亚马逊 Linux 或红帽企业 Linux (RHEL)
      图像来源 快速入门(亚马逊管理)
      映像名称 亚马逊 Linux 2 x86、红帽企业 Linux 8 x86 或红帽企业 Linux 9 x86
      自动版本控制选项 使用最新的可用操作系统版本。
      实例配置 将所有内容保持在默认设置中,并确保未选中 “在管道执行后移除 SSM 代理”。
      工作目录 工作目录路径 /root/bootstrap/res_依赖关系
      组成部分 构建组件

      搜索并选择以下内容:

      • 亚马逊管理:-2-linux aws-cli-version

      • 亚马逊管理: amazon-cloudwatch-agent-linux

      • 归您所有:之前创建的 Amazon EC2 组件。在字段 AWS 区域 中输入您的 AWS 账户 身份证和当前身份。

      测试组件

      搜索并选择:

      • 亚马逊管理: simple-boot-test-linux

    2. 选择创建配方

  5. 创建 Image Builder 基础架构配置。

    1. 在 “已保存的资源” 下,选择基础架构配置

    2. 选择创建基础设施配置

    3. 创建基础架构配置页面上,输入以下内容:

      Section 参数 用户条目
      一般性问题 名称 输入适当的名称,例如 res-infra-linux-x 86。
      描述 添加可选描述。
      IAM 角色 选择之前创建的 IAM 角色。
      AWS 基础设施 实例类型 选择 t3.medium。
      VPC、子网和安全组

      选择一个允许互联网访问和访问 Amazon S3 存储桶的选项。如果您需要创建安全组,则可以使用以下输入从 Amazon EC2 控制台创建一个安全组:

      • VPC:选择用于基础设施配置的同一 VPC。此 VPC 必须可以访问互联网。

      • 入站规则:

        • 类型:SSH

        • Source:Custom

        • CIDR 区块:0.0.0.0/0

    4. 选择创建基础设施配置

  6. 创建新的 EC2 Image Builder 管道:

    1. 转到图像管道,然后选择创建图像管道

    2. 指定管道详细信息页面上,输入以下内容并选择下一步

      • 管道名称和可选描述

      • 对于生成计划,请设置计划,或者如果您想手动启动 AMI 烘焙流程,请选择手动。

    3. “选择食谱” 页面上,选择 “使用现有食谱”,然后输入之前创建的食谱名称。选择下一步

    4. 在 “定义图像处理” 页面上,选择默认工作流程,然后选择 “下一步”。

    5. 定义基础架构配置页面上,选择使用现有基础设施配置,然后输入先前创建的基础架构配置的名称。选择下一步

    6. 在 “定义分发设置” 页面上,请考虑以下内容进行选择:

      • 输出映像必须与已部署的 RES 环境位于同一区域,这样 RES 才能从中正确启动基础设施主机实例。使用服务默认值,将在使用 Image Builder 服务的区域创建输出 EC2图像。

      • 如果要在多个区域部署 RES,可以选择创建新的分布设置并在那里添加更多区域。

    7. 查看您的选择并选择创建管道

  7. 运行 EC2 Image Builder 管道:

    1. 图像管道中,找到并选择您创建的管道。

    2. 选择 “操作”,然后选择 “运行管道”。

      该管道可能需要大约 45 分钟到一个小时才能创建 AMI 映像。

  8. 记下生成的 AMI 的 AMI ID,并将其用作中 InfrastructureHost AMI 参数的输入第 1 步:启动产品

设置 VPC 终端节点

要部署 RES 并启动虚拟桌面, AWS 服务 需要访问您的私有子网。您必须设置 VPC 终端节点以提供所需的访问权限,并且需要对每个终端节点重复这些步骤。

  1. 如果之前未配置过终端节点,请按照AWS 服务 使用接口 VPC 终端节点访问中提供的说明进行操作。

  2. 在两个可用区中各选择一个私有子网。

AWS 服务 服务名称
应用程序 Auto Scaling com.amazonaws。 region. 应用程序自动缩放
AWS CloudFormation com.amazonaws。 region.cloudfor
Amazon CloudWatch com.amazonaws。 region. 监控
亚马逊 CloudWatch 日志 com.amazonaws。 region.logs
Amazon DynamoDB com.amazonaws。 region.dynamodb(需要网关终端节点)
Amazon EC2 com.amazonaws。 region.ec2
Amazon ECR com.amazonaws。 region.ecr.api
com.amazonaws。 region.ecr.dkr
Amazon Elastic File System com.amazonaws。 region.elasticfilesyste
Elastic Load Balancing com.amazonaws。 region.elasticload bal
Amazon EventBridge com.amazonaws。 region. 事件
Amazon FSx com.amazonaws。 region.fsx
AWS Key Management Service com.amazonaws。 region.kms
Amazon Kinesis Data Streams com.amazonaws。 region.kinesis-streams
AWS Lambda com.amazonaws。 region.lambda
Amazon S3

com.amazonaws。 region.s3(需要在 RES 中默认创建的网关终端节点。)

在隔离环境中交叉安装存储桶需要额外的 Amazon S3 接口终端节点。请参阅访问 Amazon 简单存储服务接口终端节点

AWS Secrets Manager com.amazonaws。 region.secretsManag
Amazon 弹性容器服务 com.amazonaws。 region.ecs
亚马逊 SES com.amazonaws。 region.email-smtp(以下可用区不支持:use-1-az2、use1-az3、use1-az5、usw1-az2、usw2-az4、apne2-az4、cac1-az3 和 cac1-az4。)
AWS Security Token Service com.amazonaws。 region.sts
Amazon SNS com.amazonaws。 region.sns
Amazon SQS com.amazonaws。 region.sqs
AWS Systems Manager com.amazonaws。 region.ec2messages
com.amazonaws。 region.ssm
com.amazonaws。 region.ssmmessages

在没有 VPC 终端节点的情况下连接到服务

要与不支持 VPC 终端节点的服务集成,您可以在 VPC 的公有子网中设置代理服务器。使用 Identity Center 作为 AWS 身份提供商,按照以下步骤创建具有研究与工程工作室部署所需的最低访问权限的代理服务器。

  1. 在您将用于 RES 部署的 VPC 的公有子网中启动一个 Linux 实例。

    • Linux 系列 — 亚马逊 Linux 2 或亚马逊 Linux 3

    • 架构 — x86

    • 实例类型 — t2.micro 或更高版本

    • 安全组 — 从 0.0.0.0/0 开始的端口 3128 上的 TCP

  2. 连接到实例以设置代理服务器。

    1. 打开 http 连接。

    2. 允许从所有相关子网连接到以下域:

      • .amazonaws.com(适用于通用服务) AWS

      • .amazoncognito.com(适用于亚马逊 Cognito)

      • .awsapps.com(用于身份中心)

      • .signin.aws(用于身份中心)

      • 。 amazonaws-us-gov.com(适用于 Gov Cloud)

    3. 拒绝所有其他连接。

    4. 激活并启动代理服务器。

    5. 记下代理服务器监听的端口。

  3. 配置您的路由表以允许访问代理服务器。

    1. 转到您的 VPC 控制台,确定您将用于基础设施主机和 VDI 主机的子网的路由表。

    2. 编辑路由表以允许所有传入连接转到在前面步骤中创建的代理服务器实例。

    3. 对要用于 Inf VDIs rastructure/ 的所有子网(无法访问互联网)的路由表执行此操作。

  4. 修改代理服务器 EC2 实例的安全组,并确保它允许在代理服务器侦听的端口上进行入站 TCP 连接。

设置私有 VPC 部署参数

在中第 1 步:启动产品,您需要在 AWS CloudFormation 模板中输入某些参数。请务必按照说明设置以下参数,以便成功部署到您刚刚配置的私有 VPC 中。

参数 输入
InfrastructureHostAMI 使用中创建的基础设施 AMI ID 准备 Amazon 机器映像 (AMIs)
IsLoadBalancerInternetFacing 设置为 false。
LoadBalancerSubnets 选择无法访问互联网的私有子网。
InfrastructureHostSubnets 选择无法访问互联网的私有子网。
VdiSubnets 选择无法访问互联网的私有子网。

ClientIP

您可以选择您的 VPC CIDR 以允许所有 VPC IP 地址进行访问。

HttpProxy

示例:http://10.1.2.3:123

HttpsProxy

示例:http://10.1.2.3:123

NoProxy

示例:

127.0.0.1,169.254.169.254,169.254.170.2,localhost,us-east-1.res,us-east-1.vpce.amazonaws.com,us-east-1.elb.amazonaws.com,s3.us-east-1.amazonaws.com,s3.dualstack.us-east-1.amazonaws.com,ec2.us-east-1.amazonaws.com,ec2.us-east-1.api.aws,ec2messages.us-east-1.amazonaws.com,ssm.us-east-1.amazonaws.com,ssmmessages.us-east-1.amazonaws.com,kms.us-east-1.amazonaws.com,secretsmanager.us-east-1.amazonaws.com,sqs.us-east-1.amazonaws.com,elasticloadbalancing.us-east-1.amazonaws.com,sns.us-east-1.amazonaws.com,logs.us-east-1.amazonaws.com,logs.us-east-1.api.aws,elasticfilesystem.us-east-1.amazonaws.com,fsx.us-east-1.amazonaws.com,dynamodb.us-east-1.amazonaws.com,api.ecr.us-east-1.amazonaws.com,.dkr.ecr.us-east-1.amazonaws.com,kinesis.us-east-1.amazonaws.com,.data-kinesis.us-east-1.amazonaws.com,.control-kinesis.us-east-1.amazonaws.com,events.us-east-1.amazonaws.com,cloudformation.us-east-1.amazonaws.com,sts.us-east-1.amazonaws.com,application-autoscaling.us-east-1.amazonaws.com,monitoring.us-east-1.amazonaws.com,ecs.us-east-1.amazonaws.com,.execute-api.us-east-1.amazonaws.com