2.5. アイデンティティープロバイダーの設定およびクラスターアクセスの付与

Red Hat OpenShift Service on AWS (ROSA) には、ビルトイン OAuth サーバーが含まれます。ROSA クラスターの作成後に、OAuth をアイデンティティープロバイダーを使用するように設定する必要があります。その後、メンバーを設定済みのアイデンティティープロバイダーに追加して、クラスターへのアクセス権限を付与できます。

また、必要に応じて、アイデンティティープロバイダーユーザーに cluster-admin 権限または dedicated-admin 権限を付与することもできます。

2.5.1. アイデンティティープロバイダーの設定

Red Hat OpenShift Service on AWS (ROSA) クラスターにさまざまなアイデンティティープロバイダータイプを設定できます。サポート対象のタイプには、GitHub、GitHub Enterprise、GitLab、Google、LDAP、OpenID Connect、htpasswd アイデンティティープロバイダーが含まれます。

重要

htpasswd ID プロバイダーオプションは、単一の静的管理ユーザーを作成できるようにするためだけに含まれています。htpasswd は、Red Hat OpenShift Service on AWS の汎用 ID プロバイダーとしてはサポートされていません。

以下の手順では、例として GitHub アイデンティティープロバイダーを設定します。

前提条件

  • AWS アカウントがある。
  • 最新の Red Hat OpenShift Service on AWS (ROSA) CLI (rosa) をワークステーションにインストールして設定している。
  • ROSA CLI (rosa) を使用して Red Hat アカウントにログインしている。
  • ROSA クラスターを作成している。
  • GitHub ユーザーアカウントがある。

手順

  1. github.com に移動し、GitHub アカウントにログインします。
  2. ROSA クラスターのアイデンティティープロビジョニングに使用する既存の GitHub 組織がない場合は、これを作成します。GitHub ドキュメント の手順に従います。
  3. GitHub 組織のメンバーに限定するように、クラスターの GitHub アイデンティティープロバイダーを設定します。

    1. インタラクティブモードを使用してアイデンティティープロバイダーを設定します。

      $ rosa create idp --cluster=<cluster_name> --interactive 1
      1
      <cluster_name> は、クラスター名に置き換えます。

      出力例

      I: Interactive mode enabled.
      Any optional fields can be left empty and a default will be selected.
      ? Type of identity provider: github
      ? Identity provider name: github-1
      ? Restrict to members of: organizations
      ? GitHub organizations: <github_org_name> 1
      ? To use GitHub as an identity provider, you must first register the application:
        - Open the following URL:
          https://github.com/organizations/<github_org_name>/settings/applications/new?oauth_application%5Bcallback_url%5D=https%3A%2F%2Foauth-openshift.apps.<cluster_name>/<random_string>.p1.openshiftapps.com%2Foauth2callback%2Fgithub-1&oauth_application%5Bname%5D=<cluster_name>&oauth_application%5Burl%5D=https%3A%2F%2Fconsole-openshift-console.apps.<cluster_name>/<random_string>.p1.openshiftapps.com
        - Click on 'Register application'
      ...

      1
      <github_org_name> は、GitHub 組織の名前に置き換えます。
    2. 出力された URL に従い、Register application を選択すると、Git Hub の組織に新しい OAuth アプリケーションが登録されます。アプリケーションを登録することで、ROSA に内蔵されている OAuth サーバーが GitHub 組織のメンバーをクラスターに認証することができるようになります。

      注記

      Register a new OAuth application GitHub フォームのフィールドには、ROSA CLI ツールで定義された URL を介して、必要な値が自動的に入力されます。

    3. GitHub OAuth アプリケーションページの情報を使用して、残りの rosa create idp の対話式プロンプトを設定します。

      出力例 (続き)

      ...
      ? Client ID: <github_client_id> 1
      ? Client Secret: [? for help] <github_client_secret> 2
      ? GitHub Enterprise Hostname (optional):
      ? Mapping method: claim 3
      I: Configuring IDP for cluster '<cluster_name>'
      I: Identity Provider 'github-1' has been created.
         It will take up to 1 minute for this configuration to be enabled.
         To add cluster administrators, see 'rosa grant user --help'.
         To login into the console, open https://console-openshift-console.apps.<cluster_name>.<random_string>.p1.openshiftapps.com and click on github-1.

      1
      <github_client_id> は、GitHub OAuth アプリケーションのクライアント ID に置き換えます。
      2
      <github_client_secret> は、GitHub OAuth アプリケーションのクライアントシークレットに置き換えます。
      3
      claim をマッピング方法として指定します。
      注記

      アイデンティティープロバイダー設定がアクティブになるまでに、約 2 分かかる場合があります。cluster-admin ユーザーを設定している場合は、oc get pods -n openshift-authentication --watch を実行して、更新された設定で OAuth Pod の再デプロイを確認できます。

    4. 以下のコマンドを実行して、アイデンティティープロバイダーが正しく設定されていることを確認します。

      $ rosa list idps --cluster=<cluster_name>

      出力例

      NAME        TYPE      AUTH URL
      github-1    GitHub    https://oauth-openshift.apps.<cluster_name>.<random_string>.p1.openshiftapps.com/oauth2callback/github-1

関連情報

2.5.2. クラスターへのユーザーアクセスの付与

ユーザーアクセスを設定済みのアイデンティティープロバイダーに追加して、Red Hat OpenShift Service on AWS (ROSA) クラスターに付与できます。

ROSA クラスターに異なるタイプのアイデンティティープロバイダーを設定できます。以下の手順例では、クラスターへのアイデンティティープロビジョニング用に設定された GitHub 組織に、ユーザーを追加します。

前提条件

  • AWS アカウントがある。
  • 最新の Red Hat OpenShift Service on AWS (ROSA) CLI (rosa) をワークステーションにインストールして設定している。
  • ROSA CLI (rosa) を使用して Red Hat アカウントにログインしている。
  • ROSA クラスターを作成している。
  • GitHub ユーザーアカウントがある。
  • クラスターに GitHub アイデンティティープロバイダーを設定している。

手順

  1. github.com に移動し、GitHub アカウントにログインします。
  2. GitHub 組織への ROSA クラスターへのアクセスを必要とするユーザーを招待します。GitHub ドキュメントの 組織に参加するようにユーザーを招待する の手順を実行してください。

2.5.3. ユーザーへの管理者権限の付与

ユーザーを設定済みのアイデンティティープロバイダーに追加した後に、Red Hat OpenShift Service on AWS (ROSA) クラスターの cluster-admin 権限または dedicated-admin 権限を付与できます。

前提条件

  • AWS アカウントがある。
  • 最新の Red Hat OpenShift Service on AWS (ROSA) CLI (rosa) をワークステーションにインストールして設定している。
  • ROSA CLI (rosa) を使用して Red Hat アカウントにログインしている。
  • ROSA クラスターを作成している。
  • クラスターに GitHub アイデンティティープロバイダーを設定し、アイデンティティープロバイダーユーザーを追加している。

手順

  • アイデンティティープロバイダーユーザーの cluster-admin 権限を設定するには、以下を実行します。

    1. ユーザーに cluster-admin 権限を付与します。

      $ rosa grant user cluster-admin --user=<idp_user_name> --cluster=<cluster_name> 1
      1
      <idp_user_name> および <cluster_name> は、アイデンティティープロバイダーのユーザーおよびクラスター名に置き換えます。

      出力例

      I: Granted role 'cluster-admins' to user '<idp_user_name>' on cluster '<cluster_name>'

    2. ユーザーが cluster-admins グループのメンバーとしてリスト表示されているかどうかを確認します。

      $ rosa list users --cluster=<cluster_name>

      出力例

      ID                 GROUPS
      <idp_user_name>    cluster-admins

  • アイデンティティープロバイダーユーザーに dedicated-admin 権限を設定するには、以下を実行します。

    1. ユーザーに dedicated-admin 権限を付与します。

      $ rosa grant user dedicated-admin --user=<idp_user_name> --cluster=<cluster_name>

      出力例

      I: Granted role 'dedicated-admins' to user '<idp_user_name>' on cluster '<cluster_name>'

    2. ユーザーが dedicated-admins グループのメンバーとしてリスト表示されているかどうかを確認します。

      $ rosa list users --cluster=<cluster_name>

      出力例

      ID                 GROUPS
      <idp_user_name>    dedicated-admins