4.2. 创建 OpenID 连接配置


当使用由红帽托管的集群时,您可以使用 Red Hat OpenShift Service on AWS (ROSA) CLI 创建受管或非受管 OpenID Connect (OIDC)配置。受管 OIDC 配置存储在红帽的 AWS 帐户中,而生成的受管 OIDC 配置存储在 AWS 帐户中。OIDC 配置注册到 OpenShift Cluster Manager。在创建非受管 OIDC 配置时,CLI 为您提供了私钥。

创建 OpenID 连接配置

当使用 Red Hat OpenShift Service on AWS 集群时,您可以在创建集群时创建 OpenID Connect (OIDC)配置。此配置注册到 OpenShift Cluster Manager。

先决条件

  • 您已在安装主机上安装并配置了最新的 Red Hat OpenShift Service on AWS (ROSA) CLI ( rosa )。

流程

  1. 要创建 OIDC 配置以及 AWS 资源,请运行以下命令:

    $ rosa create oidc-config --mode=auto --yes

    此命令返回以下信息:

    输出示例

    ? Would you like to create a Managed (Red Hat hosted) OIDC Configuration Yes
    I: Setting up managed OIDC configuration
    I: To create Operator Roles for this OIDC Configuration, run the following command and remember to replace <user-defined> with a prefix of your choice:
    	rosa create operator-roles --prefix <user-defined> --oidc-config-id 13cdr6b
    If you are going to create a Hosted Control Plane cluster please include '--hosted-cp'
    I: Creating OIDC provider using 'arn:aws:iam::4540112244:user/userName'
    ? Create the OIDC provider? Yes
    I: Created OIDC provider with ARN 'arn:aws:iam::4540112244:oidc-provider/dvbwgdztaeq9o.cloudfront.net/13cdr6b'

    在创建集群时,您必须提供 OIDC 配置 ID。CLI 输出为-- mode auto 提供了此值,否则您必须根据 aws CLI 输出用于- 模式手动 确定这些值。

  2. 可选: 您可以将 OIDC 配置 ID 保存为稍后使用的变量。运行以下命令来保存变量:

    $ export OIDC_ID=<oidc_config_id>1
    1
    在上面的示例输出中,OIDC 配置 ID 是 13cdr6b。
    • 运行以下命令,查看变量的值:

      $ echo $OIDC_ID

      输出示例

      13cdr6b

验证

  • 您可以列出与您的用户机构关联的集群可用的 OIDC 配置。运行以下命令:

    $ rosa list oidc-config

    输出示例

    ID                                MANAGED  ISSUER URL                                                             SECRET ARN
    2330dbs0n8m3chkkr25gkkcd8pnj3lk2  true     https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2
    233hvnrjoqu14jltk6lhbhf2tj11f8un  false    https://oidc-r7u1.s3.us-east-1.amazonaws.com                           aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN

创建自己的 OpenID Connect 配置的参数选项

以下选项可以添加到 rosa create oidc-config 命令中。所有这些参数都是可选的。运行 rosa create oidc-config 命令但没有参数会创建非受管 OIDC 配置。

注意

您需要通过 OpenShift Cluster Manager 将请求发布到 /oidc_configs 来注册非受管 OIDC 配置。您在响应中收到一个 ID。使用此 ID 创建集群。

raw-files

允许您为私有 RSA 密钥提供原始文件。这个密钥名为 rosa-private-key-oidc-<random_label_of_length_4>.key。您还会收到一个名为 discovery-document- oidc-<random_label_of_length_4>.json 的发现 文档,以及名为 jwks-oidc-<random_label_of_length_4>.json 的发现文档。

您可以使用这些文件来设置端点。此端点会响应 /.well-known/openid-configuration,它带有发现文档和带有 JSON Web Key Set 的 keys.json。私钥存储在 Amazon Web Services (AWS) Secret Manager Service (SMS)中。

示例

$ rosa create oidc-config --raw-files

模式

允许您指定模式来创建 OIDC 配置。使用 手动 选项,您可以接收在 S3 存储桶中设置 OIDC 配置的 AWS 命令。这个选项将私钥存储在 Secrets Manager 中。使用 手动 选项时,OIDC Endpoint URL 是 S3 存储桶的 URL。您必须检索 Secret Manager ARN,才能使用 OpenShift Cluster Manager 注册 OIDC 配置。

使用 auto 选项时,您会收到与 手动模式 相同的 OIDC 配置和 AWS 资源。两个选项之间的显著区别在于,在使用 auto 选项时,ROSA 调用 AWS,因此您不需要执行任何进一步的操作。OIDC Endpoint URL 是 S3 存储桶的 URL。CLI 检索 Secrets Manager ARN,使用 OpenShift Cluster Manager 注册 OIDC 配置,并报告用户可以运行的第二个 rosa 命令,以继续创建 STS 集群。

Example

$ rosa create oidc-config --mode=<auto|manual>

Managed

创建托管在红帽 AWS 帐户下的 OIDC 配置。这个命令会创建一个私钥,它直接以 OIDC 配置 ID 响应,供您在创建 STS 集群时使用。

Example

$ rosa create oidc-config --managed

输出示例

W: For a managed OIDC Config only auto mode is supported. However, you may choose the provider creation mode
? OIDC Provider creation mode: auto
I: Setting up managed OIDC configuration
I: Please run the following command to create a cluster with this oidc config
rosa create cluster --sts --oidc-config-id 233jnu62i9aphpucsj9kueqlkr1vcgra
I: Creating OIDC provider using 'arn:aws:iam::242819244:user/userName'
? Create the OIDC provider? Yes
I: Created OIDC provider with ARN 'arn:aws:iam::242819244:oidc-provider/dvbwgdztaeq9o.cloudfront.net/233jnu62i9aphpucsj9kueqlkr1vcgra'

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.