OpenShift 集群管理器
Red Hat 站点可靠性工程 (SRE) 团队的大部分访问都是通过自动化配置管理使用集群 Operator 完成的。
使用工作负载身份联合 (WIF) 身份验证类型创建的 Google Cloud Platform (GCP) 上的 OpenShift Dedicated 集群不使用 Operator 进行 SRE 访问。相反,作为 WIF 配置创建的一部分,将为 SRE 帐户访问所需的必要角色分配给 sd-sre-platform-gcp-access 组,并在 OpenShift 集群管理器部署集群之前进行验证。有关 WIF 配置的更多信息,请参阅其他资源。 |
要查看可用子处理器的列表,请访问 Red Hat 客户门户上的Red Hat 子处理器列表。
SRE 通过代理访问 OpenShift Dedicated 集群。当 SRE 登录时,代理会在 OpenShift Dedicated 集群中为 SRE 铸造一个服务帐户。由于没有为 OpenShift Dedicated 集群配置身份提供程序,因此 SRE 通过运行本地 Web 控制台容器来访问代理。SRE 不会直接访问集群 Web 控制台。SRE 必须以单个用户身份进行身份验证以确保可审计性。所有身份验证尝试都记录到安全信息和事件管理 (SIEM) 系统。
Red Hat SRE 在访问 OpenShift Dedicated 和公共云提供商组件时遵循最小权限原则。SRE 手动访问主要分为四类:
通过 Red Hat 客户门户进行 SRE 管理员访问,使用正常的双因素身份验证,无需特权提升。
通过 Red Hat 公司 SSO 进行 SRE 管理员访问,使用正常的双因素身份验证,无需特权提升。
OpenShift 提升,这是使用 Red Hat SSO 进行的手动提升。它完全经过审核,并且 SRE 执行的每个操作都需要管理批准。
云提供商访问或权限提升,这是对云提供商控制台或 CLI 访问的手动提升。访问权限限制在 60 分钟内,并进行全面审核。
这些访问类型中的每一个都具有不同级别的组件访问权限。
组件 | 典型的 SRE 管理员访问权限(Red Hat 客户门户) | 典型的 SRE 管理员访问权限(Red Hat SSO) | OpenShift 权限提升 | 云提供商访问 |
---|---|---|---|---|
OpenShift 集群管理器 |
读/写 |
无访问权限 |
无访问权限 |
无访问权限 |
OpenShift Web 控制台 |
无访问权限 |
读/写 |
读/写 |
无访问权限 |
节点操作系统 |
无访问权限 |
提升的 OS 和网络权限的特定列表。 |
提升的 OS 和网络权限的特定列表。 |
无访问权限 |
AWS 控制台 |
无访问权限 |
无访问权限,但这是用于请求云提供商访问的帐户。 |
无访问权限 |
使用 SRE 身份的所有云提供商权限。 |
Red Hat 人员在日常 OpenShift Dedicated 操作过程中不会访问云基础设施帐户。出于紧急故障排除的目的,Red Hat SRE 拥有明确定义且可审核的访问云基础设施帐户的流程。
在 AWS 中,SRE 使用 AWS 安全令牌服务 (STS) 为BYOCAdminAccess
用户生成短期 AWS 访问令牌。对 STS 令牌的访问会被审核日志记录,并可追溯到单个用户。BYOCAdminAccess
附加了AdministratorAccess
IAM策略。
在 Google Cloud 中,SRE 在针对 Red Hat SAML 身份提供商 (IDP) 进行身份验证后访问资源。IDP 授权具有生存时间 (TTL) 过期时间的令牌。令牌的发放可由 Red Hat 公司 IT 部门进行审核,并与单个用户关联。
Red Hat CEE 团队成员通常对集群的部分内容具有只读访问权限。具体来说,CEE 对核心和产品命名空间的访问权限有限,并且无法访问客户命名空间。
角色 | 核心命名空间 | 分层产品命名空间 | 客户命名空间 | 云基础设施帐户* |
---|---|---|---|---|
OpenShift SRE |
读取:全部 写入:非常 有限[1] |
读取:全部 写入:无 |
读取:无[2] 写入:无 |
读取:全部[3] 写入:全部[3] |
CEE |
读取:全部 写入:无 |
读取:全部 写入:无 |
读取:无[2] 写入:无 |
读取:无 写入:无 |
客户管理员 |
读取:无 写入:无 |
读取:无 写入:无 |
读取:全部 写入:全部 |
读取:有限[4] 写入:有限[4] |
客户用户 |
读取:无 写入:无 |
读取:无 写入:无 |
读取:有限[5] 写入:有限[5] |
读取:无 写入:无 |
其他所有人 |
读取:无 写入:无 |
读取:无 写入:无 |
读取:无 写入:无 |
读取:无 写入:无 |
云基础设施帐户是指底层的 AWS 或 Google Cloud 帐户
仅限于处理常见的用例,例如部署失败、升级集群和更换故障工作节点。
Red Hat 员工默认无权访问客户数据。
SRE 访问云基础设施帐户是针对已记录事件中的异常故障排除的“破坏玻璃”程序。
客户管理员可以通过云基础设施访问权限有限地访问云基础设施帐户控制台。
仅限于客户管理员通过 RBAC 授予的权限,以及用户创建的命名空间。
对 OpenShift Dedicated 集群的 SRE 访问权限通过几层所需的认证进行控制,所有这些认证都由严格的公司策略管理。所有访问集群的认证尝试和集群内所做的更改都记录在审核日志中,以及负责这些操作的 SRE 的特定帐户身份。这些审核日志有助于确保 SRE 对客户集群所做的所有更改都符合构成 Red Hat 托管服务指南的严格策略和流程。
下面介绍的信息是 SRE 必须执行以访问客户集群的过程概述。
SRE 向 Red Hat SSO(云服务)请求刷新后的 ID 令牌。此请求已通过身份验证。令牌有效期为 15 分钟。令牌过期后,您可以再次刷新令牌并接收新令牌。刷新到新令牌的能力是不确定的;但是,在 30 天的非活动期后,刷新到新令牌的能力将被撤销。
SRE 连接到 Red Hat VPN。对 VPN 的身份验证由 Red Hat 公司身份和访问管理系统 (RH IAM) 完成。使用 RH IAM,SRE 是多因素的,并且可以由组织内部按组和现有的入职和离职流程进行内部管理。在 SRE 通过身份验证并连接后,SRE 可以访问云服务集群管理平面。对云服务集群管理平面的更改需要多层批准,并由严格的公司策略维护。
授权完成后,SRE 登录到集群管理平面并接收集群管理平面创建的服务帐户令牌。令牌有效期为 15 分钟。令牌无效后,它将被删除。
获得对集群管理平面的访问权限后,SRE 将使用各种方法访问集群,具体取决于网络配置。
访问专用或公共集群:通过使用端口 6443 上的加密 HTTP 连接,通过特定的网络负载均衡器 (NLB) 发送请求。
访问 PrivateLink 集群:请求发送到 Red Hat Transit Gateway,然后连接到每个区域的 Red Hat VPC。接收请求的 VPC 将取决于目标专用集群的区域。在 VPC 中,有一个专用子网包含到客户 PrivateLink 集群的 PrivateLink 端点。
访问专用服务连接 (PSC) 集群:请求发送到 Red Hat 的内部后端基础设施,该基础设施通过安全的受信任网络将流量路由到 GCP 中的 Red Hat 管理项目。Red Hat 管理项目包括 VPC,该 VPC 配置了多个区域中的子网,每个子网都包含一个 PSC 端点,该端点提供对相应区域中客户集群的专用访问。流量通过相应的区域子网路由,确保安全且专用地访问集群,而无需遍历公共互联网。
安装使用 AWS 安全令牌服务 (STS) 的 OpenShift Dedicated 集群时,会创建特定于集群的 Operator AWS 身份和访问管理 (IAM) 角色。这些 IAM 角色允许 OpenShift Dedicated 集群 Operator 运行核心 OpenShift 功能。
集群 Operator 使用服务帐户来承担 IAM 角色。当服务帐户承担 IAM 角色时,会为服务帐户提供临时 STS 凭证,以便在集群 Operator 的 Pod 中使用。如果承担的角色具有必要的 AWS 权限,则服务帐户可以在 Pod 中运行 AWS SDK 操作。
下图说明了在 SRE 拥有的项目中承担 AWS IAM 角色的工作流程
此工作流程包含以下阶段
在集群操作符运行的每个项目中,操作符的部署规范都包含一个挂载投影服务账户令牌的卷,以及一个包含 Pod AWS 凭证配置的密钥。该令牌具有受众绑定和时间绑定。每小时,OpenShift Dedicated都会生成一个新令牌,而AWS SDK会读取挂载的密钥,其中包含AWS凭证配置。此配置包含挂载令牌的路径和AWS IAM角色ARN。密钥的凭证配置包括以下内容:
一个$AWS_ARN_ROLE
变量,其中包含具有运行AWS SDK操作所需权限的IAM角色的ARN。
一个$AWS_WEB_IDENTITY_TOKEN_FILE
变量,其中包含Pod中服务账户OpenID Connect (OIDC)令牌的完整路径。完整路径为/var/run/secrets/openshift/serviceaccount/token
。
当集群操作符需要承担一个AWS IAM角色来访问AWS服务(例如EC2)时,在操作符上运行的AWS SDK客户端代码将调用AssumeRoleWithWebIdentity
API调用。
OIDC令牌从Pod传递到OIDC提供商。如果满足以下要求,提供商将验证服务账户身份:
身份签名有效,并由私钥签名。
sts.amazonaws.com
受众列在OIDC令牌中,并与OIDC提供商中配置的受众匹配。
在具有STS集群的OpenShift Dedicated中,OIDC提供商在安装期间创建,并默认设置为服务账户颁发者。 |
OIDC令牌尚未过期。
令牌中的颁发者值具有OIDC提供商的URL。
如果项目和服务账户在正在承担的IAM角色的信任策略范围内,则授权成功。
身份验证和授权成功后,将以AWS访问令牌、密钥和会话令牌的形式将临时AWS STS凭证传递到Pod,供服务账户使用。通过使用这些凭证,服务账户将临时授予IAM角色中启用的AWS权限。
当集群操作符运行时,在Pod中使用AWS SDK的操作符将使用包含投影服务账户路径和AWS IAM角色ARN的密钥来对OIDC提供商进行身份验证。OIDC提供商返回临时STS凭证,用于对AWS API进行身份验证。
有关WIF配置和SRE访问角色的更多信息,请参阅创建WIF配置。