---
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"をクリック。
"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`の間違い。)
必須ではないが、ローカルで`8000`ポートが使用済みの場合ののフォールバックポートとして`18000`が使われるので、Callback URLに`http://localhost:18000`を追加しておいた方が無難。
"App client information"パネルから"Client ID"と"Client secret"をコピー。
User Poolの"Overview"パネルから"Token signing key URL"の`/.well-known/jwks.json`の前までのパスをコピー。
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 <
ログインが成功すると、
次のようにUsernameとGroupsがマッピングされる。
```
$ kubectl auth whoami
ATTRIBUTE VALUE
Username oidc:makingx@gmail.com
Groups [oidc:platform-engineer system:authenticated]
```