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
)。
流程
要创建 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 输出用于-模式手动
确定这些值。可选: 您可以将 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'