$ ocm gcp create wif-config --name <wif_name> \ (1)
--project <gcp_project_id> \ (2)
工作负载身份联合 (WIF) 是 Google Cloud Platform (GCP) 身份和访问管理 (IAM) 功能,它为第三方提供了一种安全的方法来访问客户云帐户上的资源。WIF 消除了对服务帐户密钥的需求,是 Google Cloud 首选的凭据身份验证方法。
虽然服务帐户密钥可以提供对 Google Cloud 资源的强大访问权限,但它们必须由最终用户维护,如果管理不当,则可能构成安全风险。WIF 不使用服务密钥作为访问 Google Cloud 资源的方法。相反,WIF 通过使用来自外部身份提供商的凭据来生成短期凭据来授予访问权限。然后,工作负载可以使用这些凭据临时模拟服务帐户并访问 Google Cloud 资源。这消除了必须正确维护服务帐户密钥的负担,并消除了未经授权的用户访问服务帐户密钥的风险。
以下项目提供了工作负载身份联合流程的基本概述
Google Cloud Platform (GCP) 项目的所有者使用身份提供程序配置工作负载身份池,允许 OpenShift Dedicated 使用短期凭据访问项目关联的服务帐户。
此工作负载身份池配置为使用用户定义的身份提供程序 (IP) 来验证请求。
为了让应用程序访问云资源,它们首先将凭据传递给 Google 的安全令牌服务 (STS)。STS 使用指定的身份提供商来验证凭据。
凭据验证后,STS 会向调用方返回一个临时访问令牌,使应用程序能够模拟绑定到该身份的服务帐户。
运营商也需要访问云资源。通过使用 WIF 而不是服务帐户密钥来授予此访问权限,可以进一步增强集群安全性,因为服务帐户密钥不再存储在集群中。相反,运营商会获得模拟服务帐户的临时访问令牌。这些令牌是短暂的,并且会定期轮换。
有关工作负载身份联合 (Workload Identity Federation) 的更多信息,请参阅Google Cloud Platform 文档。
工作负载身份联合 (WIF) 仅在 OpenShift Dedicated 4.17 及更高版本上受支持。 |
在使用 OpenShift 集群管理器创建工作负载身份联合集群和使用 OCM CLI 创建工作负载身份联合集群之前,您必须完成以下先决条件。
您已确认您的 Google Cloud 帐户拥有根据集群资源要求支持您所需集群大小的必要资源配额和限制。
有关资源配额和限制的更多信息,请参阅其他资源。 |
您已查看OpenShift Dedicated 简介和有关架构概念的文档。
您已阅读并完成了必需的客户程序。
WIF 支持在 Google Cloud Platform (GCP) 上使用私有服务连接 (PSC) 部署私有 OpenShift Dedicated 集群。Red Hat 建议在部署私有集群时使用 PSC。有关 PSC 先决条件的更多信息,请参阅私有服务连接的先决条件。 |
登录OpenShift 集群管理器,然后点击 OpenShift Dedicated 卡片上的创建集群。
在计费模式下,配置订阅类型和基础设施类型。
工作负载身份联合仅受客户云订阅 (CCS) 基础设施类型支持。 |
选择订阅类型。有关 OpenShift Dedicated 订阅选项的信息,请参阅 OpenShift 集群管理器文档中的集群订阅和注册。
选择客户云订阅基础设施类型。
点击下一步。
选择在 Google Cloud Platform 上运行。
选择工作负载身份联合作为身份验证类型。
阅读并完成所有必需的先决条件。
选中复选框,表示您已阅读并完成所有必需的先决条件。
要创建新的 WIF 配置,请打开终端窗口并运行以下 OCM CLI 命令。
$ ocm gcp create wif-config --name <wif_name> \ (1)
--project <gcp_project_id> \ (2)
1 | 将<wif_name> 替换为您的 WIF 配置的名称。 |
2 | 将<gcp_project_id> 替换为将实施 WIF 配置的 Google Cloud Platform (GCP) 项目的 ID。 |
从WIF 配置下拉列表中选择已配置的 WIF 配置。如果您想选择上一步中创建的 WIF 配置,请先点击刷新。
点击下一步。
在详细信息页面上,为您的集群提供名称并指定集群详细信息。
在集群名称字段中,输入集群的名称。
可选:集群创建会生成一个域名前缀,作为您在openshiftapps.com
上配置的集群的子域。如果集群名称小于或等于 15 个字符,则该名称将用作域名前缀。如果集群名称超过 15 个字符,则域名前缀将随机生成一个 15 个字符的字符串。
要自定义子域前缀,请选择创建自定义域名前缀复选框,并在域名前缀字段中输入您的域名前缀名称。域名前缀不能超过 15 个字符,必须在您的组织内唯一,并且在集群创建后无法更改。
从版本下拉菜单中选择集群版本。
工作负载身份联合 (WIF) 仅在 OpenShift Dedicated 4.17 及更高版本上受支持。 |
从区域下拉菜单中选择云提供商区域。
选择单区域或多区域配置。
可选:选择为 Shielded VM 启用安全启动以在安装集群时使用 Shielded VM。有关更多信息,请参阅Shielded VM。
要成功创建集群,如果您的组织启用了策略约束 |
保留选中启用用户工作负载监控,以便与 Red Hat 站点可靠性工程师 (SRE) 平台指标隔离地监控您自己的项目。此选项默认启用。
可选:展开高级加密以更改加密设置。
选择使用自定义 KMS 密钥以使用自定义 KMS 密钥。如果您不想使用自定义 KMS 密钥,请保留默认设置使用默认 KMS 密钥。
选中使用自定义 KMS 密钥后
从密钥环位置下拉菜单中选择密钥环位置。
从密钥环下拉菜单中选择密钥环。
从密钥名称下拉菜单中选择密钥名称。
提供KMS 服务帐户。
可选:如果您需要您的集群经过 FIPS 验证,请选择启用 FIPS 加密。
如果选中启用 FIPS 加密,则启用附加 etcd 加密默认启用且无法禁用。您可以选择启用附加 etcd 加密而不选择启用 FIPS 加密。 |
可选:如果您需要 etcd 密钥值加密,请选择启用附加 etcd 加密。使用此选项,etcd 密钥值将被加密,但密钥不会被加密。此选项是对默认控制平面存储加密的补充,默认控制平面存储加密默认情况下会加密 OpenShift Dedicated 集群中的 etcd 卷。
通过为 etcd 中的密钥值启用 etcd 加密,您将产生大约 20% 的性能开销。开销是由于除了默认的控制平面存储加密(加密 etcd 卷)之外,还引入了这一第二层加密。仅当您特别需要它用于您的用例时,才考虑启用 etcd 加密。 |
点击下一步。
在机器池页面上,选择计算节点实例类型和计算节点数。可用节点的数量和类型取决于您的 OpenShift Dedicated 订阅。如果您使用多个可用区域,则计算节点数为每个区域。
可选:展开添加节点标签以向您的节点添加标签。点击添加附加标签以添加更多节点标签。
此步骤指的是 Kubernetes 中的标签,而不是 Google Cloud。有关 Kubernetes 标签的更多信息,请参阅标签和选择器。 |
点击下一步。
在**集群隐私**对话框中,选择**公共**或**私有**以使用您的集群的公共或私有 API 端点和应用程序路由。如果您选择**私有**,则默认情况下会选择**使用私有服务连接**,并且无法禁用。私有服务连接 (PSC) 是 Google Cloud 的安全增强型网络功能。
可选:在现有 GCP 虚拟私有云 (VPC) 中安装集群
选择**安装到现有 VPC**。
私有服务连接仅支持**安装到现有 VPC**。 |
如果您要安装到现有 VPC 并想要为您的集群启用 HTTP 或 HTTPS 代理,请选择**配置集群范围的代理**。
为了为您的集群配置集群范围的代理,您必须首先创建云网络地址转换 (NAT) 和云路由器。有关更多信息,请参阅“其他资源”部分。 |
接受默认的应用程序入口设置,或者要创建您自己的自定义设置,请选择**自定义设置**。
可选:提供路由选择器。
可选:提供排除的命名空间。
选择命名空间所有权策略。
选择通配符策略。
有关自定义应用程序入口设置的更多信息,请点击每个设置提供的帮助信息图标。
点击下一步。
可选:要在 GCP 共享 VPC 中安装集群,请按照以下步骤操作。
主机项目的 VPC 所有者必须在其 Google Cloud 控制台中启用项目作为主机项目,并在集群安装之前向以下服务帐户添加**计算机网络管理员**、**计算安全管理员**和**DNS 管理员**角色
|
选择**安装到 GCP 共享 VPC**。
指定**主机项目 ID**。如果指定的主机项目 ID 不正确,则集群创建将失败。
如果您选择在现有 GCP VPC 中安装集群,请提供您的**虚拟私有云 (VPC) 子网设置**并选择**下一步**。您必须已创建云网络地址转换 (NAT) 和云路由器。有关云 NAT 和 Google VPC 的信息,请参阅“其他资源”。
如果您正在将集群安装到共享 VPC,则 VPC 名称和子网将从主机项目共享。 |
点击下一步。
如果您选择配置集群范围的代理,请在**集群范围的代理**页面上提供您的代理配置详细信息
至少在一个字段中输入值
指定有效的**HTTP 代理 URL**。
指定有效的**HTTPS 代理 URL**。
在**附加信任捆绑包**字段中,提供 PEM 编码的 X.509 证书捆绑包。该捆绑包将添加到集群节点的受信任证书存储区。如果您使用 TLS 检查代理,除非代理的标识证书由 Red Hat Enterprise Linux CoreOS (RHCOS) 信任捆绑包中的机构签名,否则需要附加信任捆绑包文件。无论代理是透明的还是需要使用http-proxy
和https-proxy
参数进行显式配置,此要求都适用。
点击下一步。
有关使用 OpenShift Dedicated 配置代理的更多信息,请参阅“配置集群范围的代理”。
在**CIDR 范围**对话框中,配置自定义无类别域间路由 (CIDR) 范围或使用提供的默认值。
CIDR 配置以后无法更改。在继续操作之前,请与您的网络管理员确认您的选择。 如果集群隐私设置为**私有**,则在您配置云提供商中的私有连接之前,您无法访问您的集群。 |
在**集群更新策略**页面上,配置您的更新首选项
选择集群更新方法
如果您想单独安排每个更新,请选择**单个更新**。这是默认选项。
选择**定期更新**以在更新可用时,在您首选的日期和开始时间更新您的集群。
您可以查看 OpenShift Dedicated 更新生命周期文档中的生命周期结束日期。有关更多信息,请参阅OpenShift Dedicated 更新生命周期。 |
根据您的集群更新方法提供管理员批准
单个更新:如果您选择需要批准的更新版本,请提供管理员的确认并点击**批准并继续**。
定期更新:如果您为集群选择了定期更新,请提供管理员的确认并点击**批准并继续**。OpenShift 集群管理器不会在未收到管理员确认的情况下启动计划的 y 流次要版本的更新。
如果您选择了定期更新,请从下拉菜单中选择首选的星期几和 UTC 中的升级开始时间。
可选:您可以在集群升级期间为**节点清空**设置宽限期。默认情况下设置**1 小时**的宽限期。
点击下一步。
如果出现严重影响集群安全或稳定性的严重安全问题,Red Hat 站点可靠性工程 (SRE) 可能会安排自动更新到不受影响的最新 z 流版本。在提供客户通知后 48 小时内应用更新。有关严重影响安全评级的说明,请参阅了解 Red Hat 安全评级。 |
查看您选择的摘要,然后点击**创建集群**以开始集群安装。安装大约需要 30-40 分钟才能完成。
可选:在**概述**选项卡上,您可以通过选择**启用**(位于**删除保护:已禁用**正下方) 来启用删除保护功能。这将防止您的集群被删除。要禁用删除保护,请选择**禁用**。默认情况下,集群在创建时删除保护功能处于禁用状态。
您可以在集群的**概述**页面中监控安装进度。您可以在同一页面上查看安装日志。当页面的**详细信息**部分中的**状态**列为**就绪**时,您的集群已准备就绪。
您可以使用 OpenShift 集群管理器 CLI (ocm
) 在交互式或非交互式模式下创建具有工作负载身份联合 (WIF) 的 Google Cloud Platform (GCP) 上的 OpenShift Dedicated 集群。
要创建启用 WIF 的集群,OpenShift 集群管理器 CLI ( |
在创建集群之前,您必须首先创建一个 WIF 配置。
不支持将现有非 WIF 集群迁移到 WIF 配置。此功能只能在新集群创建期间启用。 |
您可以使用auto
模式或manual
模式创建 WIF 配置。
auto
模式允许您自动创建 OpenShift Dedicated 组件以及其他 IAM 资源的服务帐户。
或者,您可以使用manual
模式。在manual
模式下,您将在script.sh
文件中获得用于手动创建 OpenShift Dedicated 组件以及其他 IAM 资源的服务帐户的命令。
根据您的模式偏好,运行以下命令之一来创建 WIF 配置
通过运行以下命令在自动模式下创建 WIF 配置
$ ocm gcp create wif-config --name <wif_name> \ (1)
--project <gcp_project_id> \ (2)
1 | 将<wif_name> 替换为您的 WIF 配置的名称。 |
2 | 将<gcp_project_id> 替换为将实施 WIF 配置的 Google Cloud Platform (GCP) 项目的 ID。 |
2024/09/26 13:05:41 Creating workload identity configuration...
2024/09/26 13:05:47 Workload identity pool created with name 2e1kcps6jtgla8818vqs8tbjjls4oeub
2024/09/26 13:05:47 workload identity provider created with name oidc
2024/09/26 13:05:48 IAM service account osd-worker-oeub created
2024/09/26 13:05:49 IAM service account osd-control-plane-oeub created
2024/09/26 13:05:49 IAM service account openshift-gcp-ccm-oeub created
2024/09/26 13:05:50 IAM service account openshift-gcp-pd-csi-driv-oeub created
2024/09/26 13:05:50 IAM service account openshift-image-registry-oeub created
2024/09/26 13:05:51 IAM service account openshift-machine-api-gcp-oeub created
2024/09/26 13:05:51 IAM service account osd-deployer-oeub created
2024/09/26 13:05:52 IAM service account cloud-credential-operator-oeub created
2024/09/26 13:05:52 IAM service account openshift-cloud-network-c-oeub created
2024/09/26 13:05:53 IAM service account openshift-ingress-gcp-oeub created
2024/09/26 13:05:55 Role "osd_deployer_v4.17" updated
通过运行以下命令在手动模式下创建 WIF 配置
$ ocm gcp create wif-config --name <wif_name> \ (1)
--project <gcp_project_id> \ (2)
--mode=manual
1 | 将<wif_name> 替换为您的 WIF 配置的名称。 |
2 | 将<gcp_project_id> 替换为将实施 WIF 配置的 Google Cloud Platform (GCP) 项目的 ID。 |
配置 WIF 后,将创建以下服务帐户、角色和组。
服务帐户/组 | GCP 预定义角色和 Red Hat 自定义角色 |
---|---|
osd-deployer |
osd_deployer_v4.17 |
osd-control-plane |
|
osd-worker |
|
cloud-credential-operator-gcp-ro-creds |
cloud_credential_operator_gcp_ro_creds_v4.17 |
openshift-cloud-network-config-controller-gcp |
openshift_cloud_network_config_controller_gcp_v4.17 |
openshift-gcp-ccm |
openshift_gcp_ccm_v4.17 |
openshift-gcp-pd-csi-driver-operator |
|
openshift-image-registry-gcp |
openshift_image_registry_gcs_v4.17 |
openshift-ingress-gcp |
openshift_ingress_gcp_v4.17 |
openshift-machine-api-gcp |
openshift_machine_api_gcp_v4.17 |
通过 SRE 组访问:sd-sre-platform-gcp-access |
sre_managed_support |
有关 WIF 配置角色及其分配权限的更多详细信息,请参阅 managed-cluster-config。
您可以使用interactive
模式或non-interactive
模式创建 WIF 集群。
在interactive
模式下,集群属性会在集群创建过程中自动显示为提示。您根据提供的字段中的指定要求输入这些提示的值。
在non-interactive
模式下,您在命令中指定特定参数的值。
根据您的模式偏好,运行以下命令之一来创建具有 WIF 配置的 OpenShift Dedicated (GCP) 集群
通过运行以下命令以交互式模式创建集群
$ ocm create cluster --interactive (1)
1 | interactive 模式允许您在交互式提示符下指定配置选项。 |
通过运行以下命令以非交互式模式创建集群
以下示例包含可选和必需参数,可能与您的 |
$ ocm create cluster <cluster_name> \ (1)
--provider=gcp \ (2)
--ccs=true \ (3)
--wif-config <wif_name> \ (4)
--region <gcp_region> \ (5)
--subscription-type=marketplace-gcp \ (6)
--marketplace-gcp-terms=true \ (7)
--version <version> \ (8)
--multi-az=true \ (9)
--enable-autoscaling=true \ (10)
--min-replicas=3 \ (11)
--max-replicas=6 \ (12)
--secure-boot-for-shielded-vms=true (13)
1 | 将<cluster_name> 替换为您的集群名称。 |
2 | 将值设置为gcp 。 |
3 | 将值设置为true 。 |
4 | 将<wif_name> 替换为您的 WIF 配置的名称。 |
5 | 将<gcp_region> 替换为将部署新集群的 Google Cloud Platform (GCP) 区域。 |
6 | 可选:集群的订阅计费模式。 |
7 | 可选:如果您为subscription-type 参数提供了marketplace-gcp 的值,则marketplace-gcp-terms 必须等于true 。 |
8 | 可选:所需的 OpenShift 版本。 |
9 | 可选:部署到多个数据中心。 |
10 | 可选:启用计算节点的自动缩放。 |
11 | 可选:计算节点的最小数量。 |
12 | 可选:计算节点的最大数量。 |
13 | 可选:安全启动启用在 Google Cloud Platform 中使用 Shielded VM。 |
要列出所有使用 WIF 身份验证类型部署的 OpenShift Dedicated 集群,请运行以下命令
$ ocm list clusters --parameter search="gcp.authentication.wif_config_id != ''"
要列出所有使用特定 wif-config 部署的 OpenShift Dedicated 集群,请运行以下命令
$ ocm list clusters --parameter search="gcp.authentication.wif_config_id = '<wif_config_id>'" (1)
1 | 将<wif_config_id> 替换为 WIF 配置的 ID。 |
更新 WIF 配置仅适用于 y 流更新。有关更新过程的概述,包括有关版本语义的详细信息,请参阅 集群管理员的 OpenShift 发布和升级过程终极指南。 |
在将启用 WIF 的 OpenShift Dedicated 集群更新到较新版本之前,您必须也将 wif-config 更新到该版本。如果您在尝试更新集群版本之前没有更新 wif-config 版本,则集群版本更新将失败。
您可以通过运行以下命令将 wif-config 更新到特定的 OpenShift Dedicated 版本
ocm gcp update wif-config --version <version> \ (1)
--name <wif_name> (2)
1 | 将<version> 替换为您计划将集群更新到的 OpenShift Dedicated y 流版本。 |
2 | 将<wif_name> 替换为要更新的 WIF 配置的名称。 |
您可以通过运行ocm gcp verify wif-config
命令来验证与 WIF 配置关联的资源配置是否正确。如果发现配置错误,输出将提供有关配置错误的详细信息,并建议您更新 WIF 配置。
在验证之前,您需要验证要验证的 WIF 配置的名称和 ID。要获取活动 WIF 配置的名称和 ID,请运行以下命令
$ ocm gcp list wif-configs
要确定要验证的 WIF 配置是否配置正确,请运行以下命令
$ ocm gcp verify wif-config <wif_config_name>|<wif_config_id> (1)
1 | 分别将<wif_config_name> 和<wif_config_id> 替换为您的 WIF 配置的名称和 ID。 |
Error: verification failed with error: missing role 'compute.storageAdmin'.
Running 'ocm gcp update wif-config' may fix errors related to cloud resource misconfiguration.
exit status 1.
有关在 Google Cloud Platform (GCP) 上使用客户云订阅 (CCS) 模型的 OpenShift Dedicated 集群的信息,请参阅 客户要求。
有关资源配额的信息,每个项目的资源配额。
有关限制的信息,GCP 帐户限制。
有关所需 API 的信息,请参阅 所需客户程序。
有关管理工作负载身份池的信息,请参阅 管理工作负载身份池和提供程序。
有关管理 Google Cloud 帐户中的角色和权限的信息,请参阅角色和权限。
有关支持的最大值列表,请参阅集群最大值。
有关配置身份提供程序的信息,请参阅配置身份提供程序。
有关撤销集群权限的信息,请参阅撤销 OpenShift Dedicated 集群的权限和访问。