「OpenShift.Run Winter 2020 #11」で「OpenShiftの認証を既存の認証基盤でおこなう」という内容で今年4回目の登壇(LT枠)しました。
発表資料
配信のアーカイブも見れますのでこちらからどうぞ。
(私の出番は1:32:20頃~です)
アーカイブ見れるので、見逃したヒトはどぞ〜https://t.co/tQsWXQLR3m#openshiftjp
— Kazufumi Saito (斎藤和史, Kazu) (@capsmalt) 2020年12月10日
内容
「OpenShiftのログイン(oc login
やwebログイン)で使用するユーザー管理に、GitLab(などの)外部のサービスを利用する」という話をしました。
以前ブログに書いたものを改めて紹介する、という内容でした。
LTの実施にあたってCodeReady Containersを使ってOpenShift 4.5.9で再確認しています。
ちなみにOpenShift v3 (当時OKDとOpenShift両方で確認)でも可能です。 (が、OpenShiftリソースではなく全コントロールプレーンノード上に設定が必要なのでだいぶ面倒くさいです)
組み合わせとして特に便利と紹介したGitLabのDockerを使ったローカル構築はこちらを参照してください。
(オフライン用の内容ではないですが、オンライン環境でコンテナイメージをpull
,save
してtar.gzをオフラインに持って行けば良いです)
久しぶりのLT登壇
前回のLT参加が6月末だったので、約半年弱ぶりでした。
発表に入らなかったこと
カットしたところ
主にCLI操作用のアカウント権限ということで、ServiceAccountとは別にKubernetesにはないUserというリソースがある、とう話を入れたかったのですが時間の都合で入りませんでした。
[zaki@codeready-ocp4 ~]$ oc api-resources --api-group user.openshift.io NAME SHORTNAMES APIGROUP NAMESPACED KIND groups user.openshift.io false Group identities user.openshift.io false Identity useridentitymappings user.openshift.io false UserIdentityMapping users user.openshift.io false User
oc get user
とかすれば、クラスタ上にあるユーザー一覧も確認できる。(admin系の権限が必要)
[zaki@codeready-ocp4 ~]$ oc get users NAME UID FULL NAME IDENTITIES developer 2ed7d903-6c01-416b-b8c1-d56b0fac11ef htpasswd_provider:developer htuser d48d3de6-5276-49d5-955c-cb07287be9bb basicauth:htuser user1 c58d9add-59fd-4f30-85c1-6abbeb9303ec user1 gitlabauth:6 zaki 3dc754e9-25ad-44f8-9d91-eb32ff7b2de6 zaki gitlabauth:2 [zaki@codeready-ocp4 ~]$
こんな感じで、Identitiesのところに「どのアイデンティティプロバイダを使って認証されたユーザーか」を確認できます。
スライドにはあるけど流したところ
スライド17ページの「注意点」は時間の都合でほぼ省略してしまいましたが、あくまでユーザー管理を外部のプロバイダで管理するという機能なので、ロールはOpenShiftクラスタ上で設定する必要があります。
たとえば自分のアカウントにcluster-adminを付与させたい場合はbindしておく必要があります。
ロール設定はクラスタ上の情報になるため、1つのアイデンティティプロバイダを複数クラスタで参照する構成にしても、ロールのバインド設定はクラスタ固有の情報になります。
また、OpenShiftクラスタから(BuildConfigを使った)GitLab上のGitアクセスやコンテナレジストリのイメージpullに必要な認証も、ネームスペースなどに別途必要です。
日程がしんどかった
前回6月の「中5日で次のLT」も大変でしたが、今回はこの1件だけなので日程決まった時は別に何も問題ないだろうーと思ってたのですが、忘れてました、、、アドベントカレンダー笑
アドベントカレンダーは何となく「最初の方にエントリーした方が他の人とネタ被りの心配が無い」と言う理由で早めの日程に(LTのことを忘れて)入れてしまったため、LTの前に3件(12/3, 12/4, 12/8)も書く羽目になってしまって大変でした(笑) なのでスライドは結構ギリギリまで作ってて、喋る練習をほとんどできなかったので、初LTの時みたいに「LT本番中に呼吸がヤバくなる」感じがあってだいぶ焦りました。 (だったのですが、終わった後に見てくれてた会社の人とかに「全然そんな感じはなかったよ」と言われたのでホッとしています…見てくれてありがとうございました)
todo
機能比較用に「Basic認証でアイデンティティプロバイダ設定」を今回試したけど、ブログとかにはまだ何もまとめてないので備忘録がわりにまとめておきたい。
ほぼ小ネタレベルだけどw
おまけ
OpenShiftまださわったことないという方で試してみたい方はこちらをどうぞ。