--- title: MicroK8sのOIDC連携にCognitoを使うメモ tags: ["Kubernetes", "MicroK8s", "OIDC", "Cognito"] categories: ["Dev", "CaaS", "Kubernetes", "MicroK8s"] date: 2025-02-10T04:26:17Z updated: 2025-02-10T04:28:43Z --- MicroK8sの[OIDC連携](https://microk8s.io/docs/oidc-dex)にCognitoを使う。 MicroK8sのインストールは[こちら](/entries/782)を参照。 CognitoのUser Poolは作成済みの前提で、クライアントを作成する。 "Create app client"をクリック。 image "Application Type"は"Traditional web application"で"Name your application"に`microk8s`を入力。"Return URL"に`http://localhost:8000` ([kubelogin](https://github.com/int128/kubelogin)のコールバックURL) を設定して、"Create app client"ボタンをクリック。 (スクリーンショットは`http://localhost:18000`になっているが、`http://localhost:8000`の間違い。) image 必須ではないが、ローカルで`8000`ポートが使用済みの場合ののフォールバックポートとして`18000`が使われるので、Callback URLに`http://localhost:18000`を追加しておいた方が無難。 image "App client information"パネルから"Client ID"と"Client secret"をコピー。 image User Poolの"Overview"パネルから"Token signing key URL"の`/.well-known/jwks.json`の前までのパスをコピー。 image MicroK8sのControlplaneをインストールしてあるサーバーにログインして、`/var/snap/microk8s/current/args/kube-apiserver`を修正する。 変数は環境に合わせて修正し、次のコマンドを実行。 ``` OIDC_ISSUER_URL=https://cognito-idp.ap-northeast-1.amazonaws.com/ap-northeast-1_tv3NHZAKO OIDC_CLIENT_ID=3ftgo86lgdb2mb0fr0jho761q9 OIDC_USERNAME_CLAIM=email OIDC_GROUPS_CLAIM=cognito:groups cat < ログインが成功すると、 image 次のようにUsernameとGroupsがマッピングされる。 ``` $ kubectl auth whoami ATTRIBUTE VALUE Username oidc:makingx@gmail.com Groups [oidc:platform-engineer system:authenticated] ```