3.4. Operator 認証のための Open ID Connect (OIDC) 要件

STS を使用する ROSA インストールの場合は、クラスター Operator が認証するために使用するクラスター固有の OIDC プロバイダーを作成するか、独自の OIDC プロバイダー用に独自の OIDC 設定を作成する必要があります。

3.4.1. CLI を使用した OIDC プロバイダーの作成

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>
      注記

      manual モードを使用すると、aws コマンドはレビュー用に端末に出力されます。aws コマンドを確認したら、手動で実行する必要があります。または、rosa create コマンドで --mode auto を指定して、aws コマンドを即時に実行することができます。

      コマンド出力

      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) ID プロバイダーにアクセスするために使用する URL。
      2
      サムプリントは、rosa create oidc-provider コマンドの実行時に自動的に生成されます。AWS Identity and Access Management (IAM) OIDC ID プロバイダーでサムプリントをしようする方法の詳細は、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'

3.4.2. OpenID Connect 設定の作成

Red Hat がホストするクラスターを使用する場合は、Red Hat OpenShift Service on AWS (ROSA) CLI (rosa) を使用して、マネージドまたはアンマネージド OpenID Connect (OIDC) 設定を作成できます。マネージド OIDC 設定は Red Hat の AWS アカウント内に保存されますが、生成されたアンマネージド OIDC 設定は AWS アカウント内に保存されます。OIDC 設定は、OpenShift Cluster Manager で使用するために登録されています。アンマネージド OIDC 設定を作成する場合、CLI は秘密キーを提供します。

OpenID Connect 設定の作成

Red Hat OpenShift Service on AWS クラスターを使用する場合は、クラスターを作成する前に OpenID Connect (OIDC) 設定を作成できます。この設定は、OpenShift Cluster Manager で使用するために登録されています。

前提条件

  • インストールホストに、最新の Red Hat OpenShift Service on AWS (ROSA) CLI (rosa) をインストールして設定している。

手順

  1. 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 のこの値が提供されます。それ以外の場合は、--mode manualaws 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 を使用してクラスターを作成します。

生ファイル

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 という名前の JSON Web キーセットも受け取ります。

これらのファイルを使用してエンドポイントを設定します。このエンドポイントは、/.well-known/openid-configuration に対して検出ドキュメントで応答し、keys.json に対して JSON Web キーセットで応答します。秘密キーは、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 になります。OIDC 設定を OpenShift Cluster Manager に登録するには、Secrets Manager ARN を取得する必要があります。

auto オプションを使用すると、manual モードと同じ OIDC 設定と AWS リソースを受け取ります。2 つのオプションの大きな違いは、自動 オプションを使用すると ROSA が AWS を呼び出すため、それ以上のアクションを行う必要がないことです。OIDC エンドポイント URL は、S3 バケットの URL です。CLI は Secrets Manager ARN を取得し、OIDC 設定を OpenShift Cluster Manager に登録し、ユーザーが STS クラスターの作成を続行するために実行できる 2 番目の rosa コマンドを報告します。

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

管理

Red Hat の AWS アカウントでホストされる OIDC 設定を作成します。このコマンドは、STS クラスターの作成時に使用する OIDC 設定 ID で直接応答する秘密キーを作成します。

$ 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'