1.5. アイデンティティープロバイダーの設定およびクラスターアクセスの付与
Red Hat OpenShift Service on AWS (ROSA) には、ビルトイン OAuth サーバーが含まれます。ROSA クラスターの作成後に、OAuth をアイデンティティープロバイダーを使用するように設定する必要があります。その後、メンバーを設定済みのアイデンティティープロバイダーに追加して、クラスターへのアクセス権限を付与できます。
また、必要に応じて、アイデンティティープロバイダーユーザーに cluster-admin
権限または dedicated-admin
権限を付与することもできます。
アイデンティティープロバイダーの設定
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 アイデンティティープロバイダーを設定します。
手順
- github.com に移動し、GitHub アカウントにログインします。
- ROSA クラスターのアイデンティティープロビジョニングに使用する既存の GitHub 組織がない場合は、これを作成します。GitHub ドキュメント の手順に従います。
GitHub 組織のメンバーに限定するように、クラスターの GitHub アイデンティティープロバイダーを設定します。
インタラクティブモードを使用してアイデンティティープロバイダーを設定します。
$ 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 組織の名前に置き換えます。
出力された URL に従い、Register application を選択すると、GitHub の組織に新しい OAuth アプリケーションが登録されます。アプリケーションを登録することで、ROSA に内蔵されている OAuth サーバーが GitHub 組織のメンバーをクラスターに認証することができるようになります。
注記Register a new OAuth application GitHub フォームのフィールドには、ROSA CLI ツールで定義された URL を介して、必要な値が自動的に入力されます。
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.
注記アイデンティティープロバイダー設定がアクティブになるまでに、約 2 分かかる場合があります。
cluster-admin
ユーザーを設定している場合は、oc get pods -n openshift-authentication --watch
を実行して、更新された設定で OAuth Pod の再デプロイを確認できます。以下のコマンドを実行して、アイデンティティープロバイダーが正しく設定されていることを確認します。
$ 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
関連情報
- サポート対象の各アイデンティティープロバイダータイプを設定する詳細な手順は、STS のアイデンティティープロバイダーの設定 を参照してください。
クラスターへのユーザーアクセスの付与
ユーザーアクセスを設定済みのアイデンティティープロバイダーに追加して、Red Hat OpenShift Service on AWS (ROSA) クラスターに付与できます。
ROSA クラスターに異なるタイプのアイデンティティープロバイダーを設定できます。以下の手順例では、クラスターへのアイデンティティープロビジョニング用に設定された GitHub 組織に、ユーザーを追加します。
手順
- github.com に移動し、GitHub アカウントにログインします。
- GitHub 組織への ROSA クラスターへのアクセスを必要とするユーザーを招待します。GitHub ドキュメントの 組織に参加するようにユーザーを招待する の手順を実行してください。
ユーザーへの管理者権限の付与
ユーザーを設定済みのアイデンティティープロバイダーに追加した後に、Red Hat OpenShift Service on AWS (ROSA) クラスターの cluster-admin
権限または dedicated-admin
権限を付与できます。
手順
アイデンティティープロバイダーユーザーの
cluster-admin
権限を設定するには、以下を実行します。ユーザーに
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>'
ユーザーが
cluster-admins
グループのメンバーとしてリスト表示されているかどうかを確認します。$ rosa list users --cluster=<cluster_name>
出力例
ID GROUPS <idp_user_name> cluster-admins
アイデンティティープロバイダーユーザーに
dedicated-admin
権限を設定するには、以下を実行します。ユーザーに
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>'
ユーザーが
dedicated-admins
グループのメンバーとしてリスト表示されているかどうかを確認します。$ rosa list users --cluster=<cluster_name>
出力例
ID GROUPS <idp_user_name> dedicated-admins
関連情報