Wickr Enterprise 入门 - Wickr Enterprise

本指南提供了 Wickr Enterprise 的文档。如果您使用的是 AWS Wickr,请参阅 AWS Wickr 管理指南或 AW S Wickr 用户指南。

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

Wickr Enterprise 入门

要求

在您开始之前,确认您满足以下要求:

  • 下载 Node.js 16+

  • AWS CLI 为您的账户配置了证书。

    它们将来自您的配置文件 ~/.aws/config 或者使用 AWS_ 环境变量。

  • 安装 kubectl。有关更多信息,请参阅亚马逊 EKSUser 指南中的安装或更新 kubectl

  • 安装 kots CLI。有关更多信息,请参阅安装 kots CLI

  • 允许名单的端口:443/TCP 用于 HTTPS 和 TCP 呼叫流量;16384-19999/UDP 用于 UDP 呼叫流量;TCP/8443

架构

架构示意图。

安装依赖项。

您可以使用以下命令将所有依赖项添加到默认软件包:

npm install

配置

AWS Cloud Development Kit (AWS CDK) 使用上下文值来控制应用程序的配置。Wickr Enterprise 使用 CDK 上下文值来控制一些设置,例如 Wickr Enterprise 安装的域名或保留 RDS 备份的天数。有关更多信息,请参阅AWS Cloud Development Kit (AWS CDK) 开发人员指南中的运行时上下文

设置上下文值的方法有多种,但我们建议编辑 cdk.context.json 中的值以适应您的特定用例。只有以 wickr/ 开头的上下文值与 Wickr Enterprise 部署相关;其余的则是 CDK 特定的上下文值。要在下次通过 CDK 进行更新时保持相同的设置,请保存此文件。

您必须至少设置wickr/licensePathwickr/domainName、和wickr/acm:certificateArnwickr/route53:hostedZoneIdwickr/route53:hostedZoneName

使用公有托管区域

如果您的 Route 53 公共托管区域中有 Route 53 AWS 账户,我们建议您使用以下设置来配置 CDK 上下文:

  • wickr/domainName:用于此 Wickr Enterprise 部署的域名。如果您使用 Route 53 公有托管区域,则将自动为该域名创建 DNS 记录和 ACM 凭证。

  • wickr/route53:hostedZoneName:用于创建 DNS 记录的 Route 53 托管区域名称。

  • wickr/route53:hostedZoneId:用于创建 DNS 记录的 Route 53 托管区域 ID。

此方法代表您创建 ACM 凭证,以及将您的域名指向 Wickr Enterprise 部署前的负载均衡器的 DNS 记录。

没有公有托管区域

如果您的账户中没有 Route 53 公有托管区域,则必须手动创建 ACM 凭证,然后使用 wickr/acm:certificateArn 上下文值将其导入 CDK。

  • wickr/domainName:用于此 Wickr Enterprise 部署的域名。如果您使用 Route 53 公有托管区域,则将自动为该域名创建 DNS 记录和 ACM 凭证。

  • wickr/acm:certificateArn:要在负载均衡器上使用的 ACM 凭证的 ARN。如果您的账户中没有 Route 53 公有托管区域,则必须提供此值。

将证书导入到 ACM。

您可以使用以下命令导入外部获得的凭证:

aws acm import-certificate \ --certificate fileb://path/to/cert.pem \ --private-key fileb://path/to/key.pem \ --certificate-chain fileb://path/to/chain.pem

输出将是凭证 ARN,应将其用作 wickr/acm:certificateArn 上下文设置的值。上传的凭证必须对 wickr/domainName 有效,否则 HTTPS 连接将无法验证。有关更多信息,请参阅 AWS Certificate Manager 用户指南中的导入证书

创建 DNS 记录

由于没有可用的公有托管区域,因此必须在部署完成后手动创建 DNS 记录,以指向 Wickr Enterprise 部署前的负载均衡器。

部署到现有 VPC

如果您需要使用现有 VPC,则可以使用现有 VPC。但是,必须将 VPC 配置为满足 EKS 所需的规范。有关更多信息,请参阅 Amazon EKS 用户指南中的查看 VPC 和子网的 Amazon EKS 联网要求,并确保要使用的 VPC 符合这些要求。

此外,强烈建议您确保拥有用于以下服务的 VPC 终端节点:

  • 云观察

  • 云监视日志

  • EC2

  • EC2_消息

  • ECR

  • ECR_DOCKER

  • 弹性负载平衡

  • KMS

  • 秘密经理

  • SSM

  • SSM_MESSAGES

要将资源部署到现有 VPC,请设置以下上下文值:

  • wickr/vpc:id - 要将资源部署到其中的 VPC ID(例如 vpc-412beef)。

  • wickr/vpc:cidr-VPC 的 IPv4 CIDR(例如172.16.0.0/16)。

  • wickr/vpc:publicSubnetIds - VPC 中以逗号分隔的公有子网列表。应用程序负载均衡器和调用 EKS Worker 节点将部署在这些子网中(例如 subnet-6ce9941,subnet-1785141,subnet-2e7dc10)。

  • wickr/vpc:privateSubnetIds - VPC 中以逗号分隔的私有子网列表。EKS Worker 节点和堡垒机服务器将部署在这些子网中(例如 subnet-f448ea8,subnet-3eb0da4,subnet-ad800b5)。

  • wickr/vpc:isolatedSubnetIds - VPC 中以逗号分隔的隔离子网列表。RDS 数据库将部署在这些子网中(例如 subnet-d1273a2,subnet-33504ae,subnet-0bc83ac)。

  • wickr/vpc:availabilityZones - VPC 中以逗号分隔的子网可用区列表(例如 us-east-1a,us-east-1b,us-east-1c)。

有关接口 VPC 终端节点的更多信息,请参阅使用接口 VPC 终端节点访问 AWS 服务

其他设置

有关更多信息,请参阅上下文值

引导

如果这是您第一次在此特定 AWS 账户 和地区使用 CDK,则必须先启动该帐户才能开始使用 CDK。

npx cdk bootstrap

部署

此过程大约需要 45 分钟。

npx cdk deploy --all --require-approval=never

完成后,基础架构已创建完毕,您可以开始安装 Wickr Enterprise 了。

创建 DNS 记录

如果您在配置 CDK 时使用公有托管区域,则不需要执行此步骤。

部署过程的输出将包含一个值 WickrAlb.AlbDnsName,即负载均衡器的 DNS 名称。输出如下所示:

WickrAlb.AlbDnsName = Wickr-Alb-1Q5IBPJR4ZVZR-409483305.us-west-2.elb.amazonaws.com

在这种情况下,DNS 名为 Wickr-Alb-1Q5IBPJR4ZVZR-409483305.us-west-2.elb.amazonaws.com。这是为您的域名创建 CNAME 或 A/AAAA(别名)记录时应使用的值。

如果您没有部署输出,运行以下命令来显示负载均衡器 DNS 名称:

aws cloudformation describe-stacks --stack-name WickrAlb \ --query 'Stacks[0].Outputs[?OutputKey==`AlbDnsName`].OutputValue' \ --output text

生成 KOTS Config

警告

此文件包含有关您的安装的敏感信息。请勿公开共享或保存。

Wickr Enterprise 安装程序需要一些有关基础架构的配置值才能成功安装。您可以使用帮助脚本来生成配置值。

./bin/generate-kots-config.ts > wickr-config.json

如果您在第一步中将外部凭证导入 ACM,请将 --ca-file 标志传递给此脚本,例如:

./bin/generate-kots-config.ts --ca-file path/to/chain.pem > wickr-config.json

如果您收到错误消息,提示堆栈不存在,请将 AWS_REGION 环境变量 (export AWS_REGION=us-west-2) 设置为所选区域,然后重试。或者,如果您设置了上下文值wickr/stackSuffix,请传递带有--stack-suffix标志的后缀。