$ rosa create oidc-config --mode=auto --yes
OpenID Connect (OIDC) 使用安全令牌服务 (STS) 允许客户端提供 Web 身份令牌以访问多个服务。当客户端使用 STS 登录服务时,令牌会针对 OIDC 身份提供程序进行验证。
OIDC 协议使用包含身份验证客户端身份所需信息的配置 URL。该协议会使用提供程序验证客户端并使其登录所需的凭据来响应提供程序。
AWS 上的 Red Hat OpenShift 服务集群使用 STS 和 OIDC 向集群内操作员授予访问必要 AWS 资源的权限。
OIDC 验证有三种选项
未注册的,托管的 OIDC 配置
在集群安装过程中会为您创建一个未注册的托管 OIDC 配置。该配置托管在 Red Hat 的 AWS 帐户下。此选项不会为您提供链接到 OIDC 配置的 ID,因此您只能在一个集群上使用此类型的 OIDC 配置。
已注册的,托管的 OIDC 配置
在开始创建集群之前,您可以创建一个已注册的托管 OIDC 配置。此配置与未注册的托管 OIDC 配置一样,托管在 Red Hat 的 AWS 帐户下。当您将此选项用于您的 OIDC 配置时,您将收到一个链接到 OIDC 配置的 ID。Red Hat 使用此 ID 来识别颁发者 URL 和私钥。然后,您可以使用此 URL 和私钥来创建身份提供程序和 Operator 角色。这些资源是使用 Identity and Access Management (IAM) AWS 服务在您的 AWS 帐户下创建的。您还可以在集群创建过程中使用 OIDC 配置 ID。
已注册的,非托管的 OIDC 配置
您可以在开始创建集群之前创建已注册的非托管 OIDC 配置。此配置托管在您的 AWS 帐户下。当您使用此选项时,您负责管理私钥。您可以通过使用 AWS Secrets Manager (SM) 服务将私钥存储在 AWS 密钥文件中以及托管配置的颁发者 URL 来向 Red Hat OpenShift 集群管理器注册配置。您可以使用 AWS 上的 Red Hat OpenShift 服务 (ROSA) CLI,`rosa`,使用 `rosa create oidc-config --managed=false` 命令创建已注册的非托管 OIDC 配置。此命令会在您的帐户下创建和托管配置,并创建必要的文 件和私有密钥。此命令还会向 OpenShift 集群管理器注册配置。
已注册的选项可在您开始创建集群之前用于创建所需的 IAM 资源。此选项可缩短安装时间,因为在集群创建过程中存在一个等待期,在此期间安装会暂停,直到您创建 OIDC 提供程序和 Operator 角色。
对于 ROSA Classic,您可以使用任何 OIDC 配置选项。如果您使用的是带有 HCP 的 ROSA,则必须创建已注册的 OIDC 配置,无论是托管的还是非托管的。您可以将已注册的 OIDC 配置与其他集群共享。此共享配置的功能还允许您共享提供程序和 Operator 角色。
不建议在生产集群之间重用 OIDC 配置、OIDC 提供程序和 Operator 角色,因为身份验证验证将贯穿所有这些集群。Red Hat 建议仅在非生产测试环境中重用资源。 |
当使用 Red Hat 托管的集群时,您可以使用 AWS 上的 Red Hat OpenShift 服务 (ROSA) CLI,`rosa`,创建托管的或非托管的 OpenID Connect (OIDC) 配置。托管的 OIDC 配置存储在 Red Hat 的 AWS 帐户中,而生成的非托管 OIDC 配置存储在您的 AWS 帐户中。OIDC 配置已注册以用于 OpenShift 集群管理器。创建非托管 OIDC 配置时,CLI 会为您提供私钥。
当使用 AWS 上的 Red Hat OpenShift 服务集群时,您可以在创建集群之前创建 OpenID Connect (OIDC) 配置。此配置已注册以用于 OpenShift 集群管理器。
您已在安装主机上安装并配置了最新的 AWS 上的 Red Hat OpenShift 服务 (ROSA) CLI,`rosa`。
要与 AWS 资源一起创建您的 OIDC 配置,请运行以下命令
$ 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 输出确定这些值才能使用 `--mode manual`。
可选:您可以将 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
以下选项可以添加到rosa create oidc-config
命令中。所有这些参数都是可选的。不带参数运行rosa create oidc-config
命令会创建一个未管理的OIDC配置。
您需要通过OpenShift集群管理器向 |
允许您提供私有RSA密钥的原始文件。此密钥名为rosa-private-key-oidc-<长度为4的随机标签>.key
。您还会收到一个发现文档,名为discovery-document-oidc-<长度为4的随机标签>.json
,以及一个JSON Web密钥集,名为jwks-oidc-<长度为4的随机标签>.json
。
您可以使用这些文件来设置端点。此端点使用发现文档响应/.well-known/openid-configuration
,使用JSON Web密钥集响应keys.json
。私钥以明文形式存储在Amazon Web Services (AWS) Secrets Manager Service (SMS)中。
$ rosa create oidc-config --raw-files
允许您指定创建OIDC配置的模式。使用manual
选项,您将收到在S3存储桶中设置OIDC配置的AWS命令。此选项将私钥存储在Secrets Manager中。使用manual
选项时,OIDC端点URL是S3存储桶的URL。您必须检索Secrets Manager ARN才能向OpenShift集群管理器注册OIDC配置。
使用auto
选项时,您会收到与manual
模式相同的OIDC配置和AWS资源。这两个选项之间的一个显著区别是,使用auto
选项时,ROSA会调用AWS,因此您无需执行任何其他操作。OIDC端点URL是S3存储桶的URL。CLI会检索Secrets Manager ARN,向OpenShift集群管理器注册OIDC配置,并报告用户可以运行的第二个rosa
命令以继续创建STS集群。
$ rosa create oidc-config --mode=<auto|manual>
创建一个托管在Red Hat的AWS账户下的OIDC配置。此命令创建一个私钥,直接为您提供一个OIDC配置ID,供您在创建STS集群时使用。
$ 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 OpenShift Service on AWS (ROSA) CLI,rosa
,在您的AWS账户中创建一个托管的OIDC提供程序。
您已安装最新版本的ROSA CLI。
要创建OIDC提供程序,可以使用未注册或已注册的OIDC配置。
未注册的OIDC配置要求您通过集群创建OIDC提供程序。运行以下命令以创建OIDC提供程序
$ rosa create oidc-provider --mode manual --cluster <cluster_name>
使用 |
aws iam create-open-id-connect-provider \
--url https://oidc.op1.openshiftapps.com/<oidc_config_id> \(1)
--client-id-list openshift sts.<aws_region>.amazonaws.com \
--thumbprint-list <thumbprint> (2)
1 | 创建集群后用于访问OpenID Connect (OIDC)身份提供程序的URL。 |
2 | 当您运行rosa create oidc-provider 命令时,会自动生成指纹。有关将指纹与AWS Identity and Access Management (IAM) OIDC身份提供程序一起使用的更多信息,请参阅AWS文档。 |
已注册的OIDC配置使用OIDC配置ID。使用您的OIDC配置ID运行以下命令
$ rosa create oidc-provider --oidc-config-id <oidc_config_id> --mode auto -y
I: Creating OIDC provider using 'arn:aws:iam::4540112244:user/userName'
I: Created OIDC provider with ARN 'arn:aws:iam::4540112244:oidc-provider/dvbwgdztaeq9o.cloudfront.net/241rh9ql5gpu99d7leokhvkp8icnalpf'
有关ROSA Classic说明,请参阅创建OpenID Connect配置。
有关使用HCP的ROSA说明,请参阅创建OpenID Connect配置。