第 9 章 在不使用 AWS STS 的情况下部署 ROSA
9.1. ROSA 的 AWS 先决条件
Red Hat OpenShift Service on AWS (ROSA)提供了一个模型,红帽可以将集群部署到客户的现有 Amazon Web Service (AWS)帐户中。
您必须确保在安装 ROSA 前满足先决条件。此要求文档不适用于 AWS 安全令牌服务(STS)。如果使用 STS,请参阅 STS 特定要求。
AWS 安全令牌服务 (STS) 是推荐的凭证模式,用于安装 Red Hat OpenShift Service on AWS (ROSA) 集群并与之交互,因为它提供了增强的安全性。
9.1.1. 部署先决条件
要将 Red Hat OpenShift Service on AWS (ROSA) 部署到现有的 Amazon Web Services (AWS) 帐户中,红帽要求满足以下几个先决条件。
红帽建议使用 AWS 机构管理多个 AWS 帐户。由客户管理的 AWS 机构托管多个 AWS 帐户。机构中有一个 root 帐户,所有帐户都将在帐户层次结构中引用。
它是在 AWS 机构单元内托管在 AWS 帐户中的 ROSA 集群的最佳实践。创建服务控制策略 (SCP) 并应用到 AWS 机构单元,后者管理 AWS 子帐户可访问的服务。SCP 仅适用于单个 AWS 帐户内对机构单元中的所有 AWS 子帐户的可用权限。也可以将 SCP 应用到单个 AWS 帐户。客户 AWS 组织中的所有其他帐户以客户要求的任何方式进行管理。红帽站点可靠性工程师(SRE)对 AWS 机构内的 SCP 没有控制。
9.1.2. 客户需求
在部署前,Red Hat OpenShift Service on AWS (ROSA)集群必须满足几个先决条件。
要创建集群,用户必须以 IAM 用户身份登录,而不是假定的角色或 STS 用户。
9.1.2.1. 帐户
- 客户可确保 AWS limits 足以支持在客户 AWS 帐户中置备 Red Hat OpenShift Service on AWS。
客户的 AWS 帐户应该位于客户具有适用服务控制策略 (SCP) 的 AWS 机构中。
注意不要求客户的帐户位于 AWS 机构内或要应用的 SCP,但红帽必须能够在不限制任何限制的情况下执行 SCP 中列出的所有操作。
- 客户的 AWS 帐户不应转移到红帽。
- 客户可能不会向红帽活动实施 AWS 使用限制。受损限制将严重阻碍红帽响应事件的能力。
客户可以在同一 AWS 帐户内部署原生 AWS 服务。
注意我们鼓励客户在虚拟私有云(VPC)中部署资源,与在 AWS 上托管 Red Hat OpenShift Service 的 VPC 以及其它红帽支持的服务分开。
9.1.2.2. 访问要求
要在 AWS 服务上正确管理 Red Hat OpenShift Service,红帽始终必须将
AdministratorAccess策略应用到管理员角色。如果您使用 AWS 安全令牌服务(STS),则此要求 不适用。注意此政策只为红帽提供了更改客户提供的 AWS 帐户资源的权限和功能。
- 红帽必须具有对客户提供的 AWS 帐户的 AWS 控制台访问权限。此访问权限由红帽保护和管理。
- 客户不得使用 AWS 帐户在 Red Hat OpenShift Service on AWS 集群中提升其权限。
-
Red Hat OpenShift Service on AWS (ROSA) CLI、
rosa或 OpenShift Cluster Manager Hybrid Cloud Console 控制台中提供的操作不能直接在客户的 AWS 帐户中执行。
9.1.2.3. 支持要求
- 红帽建议客户从 AWS 至少有商业支持。
- 红帽的客户授权可以代表他们请求 AWS 支持。
- 红帽的客户授权可以请求 AWS 资源限制来增加客户的帐户。
- 除非本要求部分中另有指定,否则红帽以相同的方式管理所有 Red Hat OpenShift Service on AWS 集群上的限制、预期和默认值。
9.1.2.4. 安全要求
- 卷快照将保留在客户的 AWS 帐户和客户指定的区域。
- 红帽必须具有来自允许 IP 地址的对 EC2 主机和 API 服务器的入口(ingress)访问权限。
- 红帽需要有一个出口,可以将系统和审计日志转发到红帽管理的中央日志记录环境中。
9.1.3. 所需的客户流程
在部署 Red Hat OpenShift Service on AWS (ROSA)前完成这些步骤。
流程
9.1.3.1. 服务控制策略的最小有效权限集(SCP)
服务控制策略(SCP)是一种机构策略类型,可管理您的机构中的权限。SCP 可确保您机构中的帐户保留在您定义的访问控制指南中。这些策略在 AWS 机构中维护,并控制附加的 AWS 帐户中可用的服务。SCP 管理是客户的职责。
使用 AWS 安全令牌服务(STS)时,最低 SCP 要求不适用。有关 STS 的更多信息,请参阅使用 STS 的 ROSA 的 AWS 先决条件。
验证您的服务控制策略(SCP)是否不限制任何这些所需的权限。
| Service | Actions | 效果 | |
|---|---|---|---|
| 必需 | Amazon EC2 | All | Allow |
| Amazon EC2 自动扩展 | All | Allow | |
| Amazon S3 | All | Allow | |
| 身份和访问管理 | All | Allow | |
| Elastic Load Balancing | All | Allow | |
| Elastic Load Balancing V2 | All | Allow | |
| Amazon CloudWatch | All | Allow | |
| Amazon CloudWatch Events | All | Allow | |
| Amazon CloudWatch Logs | All | Allow | |
| AWS Support | All | Allow | |
| AWS 密钥管理服务 | All | Allow | |
| AWS 安全令牌服务 | All | Allow | |
| AWS Marketplace | Subscription 取消订阅 查看订阅 | Allow | |
| AWS Resource Tagging | All | Allow | |
| AWS Route53 DNS | All | Allow | |
| AWS Service Quotas | ListServices GetRequestedServiceQuotaChange GetServiceQuota RequestServiceQuotaIncrease ListServiceQuotas | Allow | |
| 选填 | AWS Billing | ViewAccount Viewbilling ViewUsage | Allow |
| AWS 成本和使用量报告 | All | Allow | |
| AWS Cost Explorer Services | All | Allow |
其他资源
9.1.4. Red Hat Managed IAM 参考
红帽负责创建和管理以下 Amazon Web Services (AWS)资源:IAM 策略、IAM 用户和 IAM 角色。
9.1.4.1. IAM 策略
IAM 策略会随着 Red Hat OpenShift Service on AWS 的变化而进行修改。
AdministratorAccess策略由管理角色使用。此政策提供了在客户 AWS 帐户中管理 Red Hat OpenShift Service on AWS (ROSA)集群所需的访问权限。{ "Version": "2012-10-17", "Statement": [ { "Action": "*", "Resource": "*", "Effect": "Allow" } ] }
9.1.4.2. IAM 用户
在将 ROSA 安装到客户的 AWS 帐户后,osdManagedAdmin 用户会立即创建。
9.1.5. 置备的 AWS 基础架构
这是在部署的 Red Hat OpenShift Service on AWS (ROSA) 中置备的 Amazon Web Services (AWS) 组件的概述。有关所有置备的 AWS 组件的详细列表,请参阅 OpenShift Container Platform 文档。
9.1.5.1. EC2 实例
在 AWS 公有云中部署 ROSA 的 control plane 和 data plane 功能需要 AWS EC2 实例。
根据 worker 节点数,实例类型可能会因 control plane 和基础架构节点而异。至少会部署以下 EC2 实例:
-
三个
m5.2xlargecontrol plane 节点 -
两个
r5.xlarge基础架构节点 -
两个
m5.xlarge自定义 worker 节点
有关 worker 节点计数的更多信息,请参阅此页面的"Limits and scalability"部分中有关初始规划注意事项的信息。
9.1.5.2. Amazon Elastic Block Store 存储
Amazon Elastic Block Store (Amazon EBS)块存储用于本地节点存储和持久性卷存储。
每个 EC2 实例的卷要求:
Control Plane 卷
- 大小:350GB
- 类型: io1
- 每秒输入/输出操作: 1000
基础架构卷
- 大小:300GB
- 类型: gp3
- 每秒输入/输出操作:900
Worker 卷
- 大小:300GB
- 类型: gp3
- 每秒输入/输出操作:900
在 OpenShift Container Platform 4.11 发布前部署的集群默认使用 gp2 类型存储。
9.1.5.3. Elastic Load Balancing
最多两个 Network Load Balancers for API,最多两个 Classic Load Balancers 用于应用程序路由器。如需更多信息,请参阅 AWS 的 ELB 文档。
9.1.5.4. S3 存储
镜像 registry 由 AWS S3 存储支持。定期修剪资源以优化 S3 使用量和集群性能。
需要两个存储桶,每个 bucket 典型的大小为 2TB。
9.1.5.5. VPC
客户应该希望看到每个集群一个 VPC。另外,VPC 需要以下配置:
子网 :一个具有单一可用区的集群的两个子网,或具有多个可用区的集群 6 个子网。
注意公共子网 通过互联网网关直接连接到互联网。专用子网 通过网络地址转换(NAT)网关连接到互联网。
- 路由表 :每个专用子网一个路由表,每个集群有一个额外的表。
- Internet 网关 :每个集群一个互联网网关。
- NAT 网关 :每个公共子网一个 NAT 网关。
9.1.5.5.1. VPC 架构示例

9.1.5.6. 安全组
AWS 安全组在协议和端口访问级别提供安全性;它们与 EC2 实例和 Elastic Load Balancing (ELB)负载均衡器关联。每个安全组包含一组规则,这些规则过滤进出一个或多个 EC2 实例的流量。您必须确保在网络上打开 OpenShift 安装所需的端口,并配置为允许主机间的访问。
| 组 | 类型 | IP 协议 | 端口范围 |
|---|---|---|---|
| MasterSecurityGroup |
|
|
|
|
|
| ||
|
|
| ||
|
|
| ||
| WorkerSecurityGroup |
|
|
|
|
|
| ||
| BootstrapSecurityGroup |
|
|
|
|
|
|
9.1.6. AWS 防火墙先决条件
只有使用 PrivateLink 部署的 ROSA 集群才能使用防火墙来控制出口流量。
本节提供了必要的详情,供您控制来自 Red Hat OpenShift Service on AWS 集群的出口流量。如果您使用防火墙来控制出口流量,您必须配置防火墙以便授予对域和端口组合的访问权限。Red Hat OpenShift Service on AWS 需要此访问权限来提供完全托管的 OpenShift 服务。
流程
允许列出用于安装和下载软件包和工具的以下 URL:
域 端口 功能 registry.redhat.io443
提供核心容器镜像。
quay.io443
提供核心容器镜像。
*.quay.io443
提供核心容器镜像。
sso.redhat.com443, 80
必需。
https://console.redhat.com/openshift站点使用sso.redhat.com中的身份验证下载 pull secret,并使用 Red Hat SaaS 解决方案来简化订阅、集群清单、销售报告等的监控。quay-registry.s3.amazonaws.com443
提供核心容器镜像。
ocm-quay-production-s3.s3.amazonaws.com443
提供核心容器镜像。
quayio-production-s3.s3.amazonaws.com443
提供核心容器镜像。
cart-rhcos-ci.s3.amazonaws.com443
提供 Red Hat Enterprise Linux CoreOS (RHCOS)镜像。
openshift.org443
提供 Red Hat Enterprise Linux CoreOS (RHCOS)镜像。
registry.access.redhat.com[1]443
托管存储在 Red Hat Ecosytem Catalog 中的所有容器镜像。另外,registry 提供了对
odoCLI 工具的访问,可帮助开发人员在 OpenShift 和 Kubernetes 上进行构建。registry.connect.redhat.com443, 80
所有第三方镜像和认证 Operator 都需要。
console.redhat.com443, 80
必需。允许集群和 OpenShift Console Manager 之间的交互以启用功能,如调度升级。
sso.redhat.com443
https://console.redhat.com/openshift站点使用来自sso.redhat.com的身份验证pull.q1w2.quay.rhcloud.com443
当 quay.io 不可用时,提供核心容器镜像作为回退。
.q1w2.quay.rhcloud.com443
当 quay.io 不可用时,提供核心容器镜像作为回退。
www.okd.io443
openshift.org站点通过www.okd.io重定向。www.redhat.com443, 80
sso.redhat.com站点通过www.redhat.com重定向。aws.amazon.com443
iam.amazonaws.com和sts.amazonaws.com站点通过aws.amazon.com重定向。catalog.redhat.com443
registry.access.redhat.com和https://registry.redhat.io站点通过catalog.redhat.com重定向。-
在防火墙环境中,确保
access.redhat.com资源位于允许列表中。此资源托管容器客户端在从registry.access.redhat.com中拉取镜像时验证镜像所需的签名存储。
当您将
quay.io等网站添加到 allowlist 中时,不要在您的 denylist 中添加通配符条目,如*.quay.io。在大多数情况下,镜像 registry 使用内容交付网络(CDN)来提供镜像。如果防火墙阻止访问,那么当初始下载请求重定向到一个主机名(如cdn01.quay.io)时,则不能下载镜像。当您在允许列表中添加通配符条目(如
.quay.io)时,将涵盖 CDN 主机名,如cdn01.quay.io。-
在防火墙环境中,确保
将以下遥测 URL 列入允许列表:
域 端口 功能 cert-api.access.redhat.com443
遥测是必需的。
api.access.redhat.com443
遥测是必需的。
infogw.api.openshift.com443
遥测是必需的。
console.redhat.com443
遥测(telemetry)和 Red Hat Insights 需要。
cloud.redhat.com/api/ingress443
遥测(telemetry)和 Red Hat Insights 需要。
observatorium-mst.api.openshift.com443
受管 OpenShift 遥测需要。
observatorium.api.openshift.com443
受管 OpenShift 遥测需要。
受管集群需要让红帽能够更快速地对问题做出反应,更好地支持客户,并更好地了解产品升级对集群的影响。如需有关如何为红帽使用远程健康监控数据的更多信息,请参阅关于远程健康监控。
允许以下 Amazon Web Services (AWS) API URls:
域 端口 功能 .amazonaws.com443
需要此项以访问 AWS 服务和资源。
或者,如果您选择不为 Amazon Web Services (AWS) API 使用通配符,则必须允许列出以下 URL:
域 端口 功能 ec2.amazonaws.com443
用于在 AWS 环境中安装和管理集群。
events.amazonaws.com443
用于在 AWS 环境中安装和管理集群。
iam.amazonaws.com443
用于在 AWS 环境中安装和管理集群。
route53.amazonaws.com443
用于在 AWS 环境中安装和管理集群。
sts.amazonaws.com443
用于在 AWS 环境中安装和管理集群,用于配置为使用 AWS STS 的全局端点。
sts.<aws_region>.amazonaws.com443
用于在 AWS 环境中安装和管理集群,用于配置为使用 AWS STS 的区域端点的集群。如需更多信息,请参阅 AWS STS 区域端点。
tagging.us-east-1.amazonaws.com443
用于在 AWS 环境中安装和管理集群。此端点始终为 us-east-1,无论集群要部署到的区域。
ec2.<aws_region>.amazonaws.com443
用于在 AWS 环境中安装和管理集群。
elasticloadbalancing.<aws_region>.amazonaws.com443
用于在 AWS 环境中安装和管理集群。
servicequotas.<aws_region>.amazonaws.com443, 80
必需。用于确认用于部署该服务的配额。
tagging.<aws_region>.amazonaws.com443, 80
允许以标签的形式分配 AWS 资源的元数据。
将以下 OpenShift URL 列入允许列表:
域 端口 功能 mirror.openshift.com443
用于访问镜像安装内容和镜像。此站点也是发行版本镜像签名的来源,但 Cluster Version Operator (CVO)只需要一个可正常工作的源。
storage.googleapis.com/openshift-release(推荐)443
mirror.openshift.com/ 的替代站点。用于下载集群用来从 quay.io 中拉取哪些镜像的平台发行版本签名。
api.openshift.com443
用于检查集群是否有可用的更新。
将以下站点可靠性工程(SRE)和管理 URL 列入允许:
域 端口 功能 api.pagerduty.com443
集群内 alertmanager 使用此警报发送警报,通知 Red Hat SRE 要对其执行操作的事件通知。
events.pagerduty.com443
集群内 alertmanager 使用此警报发送警报,通知 Red Hat SRE 要对其执行操作的事件通知。
api.deadmanssnitch.com443
Red Hat OpenShift Service on AWS 用来发送定期 ping 的警报服务,以指示集群是否可用并在运行。
nosnch.in443
Red Hat OpenShift Service on AWS 用来发送定期 ping 的警报服务,以指示集群是否可用并在运行。
*.osdsecuritylogs.splunkcloud.comORinputs1.osdsecuritylogs.splunkcloud.cominputs2.osdsecuritylogs.splunkcloud.cominputs4.osdsecuritylogs.splunkcloud.cominputs5.osdsecuritylogs.splunkcloud.cominputs6.osdsecuritylogs.splunkcloud.cominputs7.osdsecuritylogs.splunkcloud.cominputs8.osdsecuritylogs.splunkcloud.cominputs9.osdsecuritylogs.splunkcloud.cominputs10.osdsecuritylogs.splunkcloud.cominputs11.osdsecuritylogs.splunkcloud.cominputs12.osdsecuritylogs.splunkcloud.cominputs13.osdsecuritylogs.splunkcloud.cominputs14.osdsecuritylogs.splunkcloud.cominputs15.osdsecuritylogs.splunkcloud.com9997
splunk-forwarder-operator使用为一个日志转发端点,供 Red Hat SRE 用于基于日志的警报。http-inputs-osdsecuritylogs.splunkcloud.com443
必需。
splunk-forwarder-operator使用为一个日志转发端点,供 Red Hat SRE 用于基于日志的警报。sftp.access.redhat.com(Recommended)22
must-gather-operator使用的 SFTP 服务器上传诊断日志,以帮助排除集群中的问题。如果您不允许为 Amazon Web Services (AWS) API 通配符,还必须允许用于内部 OpenShift registry 的 S3 存储桶。要检索该端点,在集群成功置备后运行以下命令:
$ oc -n openshift-image-registry get pod -l docker-registry=default -o json | jq '.items[].spec.containers[].env[] | select(.name=="REGISTRY_STORAGE_S3_BUCKET")'
S3 端点的格式应为:'<cluster-name>-<random-string>-image-registry-<cluster-region>-<random-string>.s3.dualstack.<cluster-region>.amazonaws.com'。
- 将提供构建所需语言或框架资源的任何站点列入允许列表。
- 允许允许任何依赖于 OpenShift 中使用的语言和框架的出站 URL。如需防火墙或代理上允许的推荐 URL 列表,请参阅 OpenShift 出站 URL。