この記事について
Cloudera on Cloud では2025年7月1日より、セキュリティ強化対策として、外部 IDプロバイダ によるログインが必須となります。
多くの企業ではすでに ID プロバイダを導入していますが、未導入の企業や個人で検証したい場合など、有償の ID プロバイダをすぐに用意できないケースもあるでしょう。
そうした場合に、手軽に立てられるオープンソースの ID プロバイダとして、KeyCloak を利用することができます。
この記事では、ミニマムな EC2 に KeyCloak を立てる手順を連携します。
この記事は前編として、Keycloak を立てて初回ログインをするまでの手順を対象とします。
立てた KeyCloak を Cloudera と連携する手順は、別途公開しこのページにリンクを貼ります。
参考:
前提
- AWS アカウントにEC2, セキュリティグループを作成できる権限を持っていること
- EC2 上に JDK21, Keycloak をインストールできること
手順
インストール
EC2 を新規作成する
以下で作ります。
- AMI: AmazonLinux
- インスタンスタイプ: t2micro
- ネットワーク: 自分の環境からSSHで入れるようにしておく
- ストレージ: 8GiB
- セキュリティグループ: 自分がSSHで入れるように&ブラウザで入りたいPCから8443に入れるように設定します。
作ったEC2にSSHで入ります。
JDK21のインストール
Keycloak の公式ドキュメント上は OpenJDK21 が前提条件となっていますが、インストールが面倒? なので Oracle JDK の 21 で代替します。
# 事前確認
java --version # 何もバージョンが表示されないはず
# ダウンロード・インストール
sudo wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.rpm
sudo rpm -i jdk-21_linux-x64_bin.rpm
# インストール後確認
java --version # Java21 が表示されればOK
Keycloak のインストール
Keycloak をインストールする先のディレクトリを指定したい場合は、先にそこに移動します。
# ダウンロード
sudo wget https://github.com/keycloak/keycloak/releases/download/26.2.5/keycloak-26.2.5.zip
# インストール
unzip keycloak-26.2.5.zip
すると、keycloak-26.2.5
というディレクトリができるので、そこに入ります。
cd keycloak-26.2.5
admin ユーザーの作成
Keycloak に初回ログインするための admin ユーザーを作成します。
以下のコマンドを実行します。
bin/kc.sh bootstrap-admin user
以下のようなプロンプトが表示されるので、初回ログイン用の admin ユーザーとして使いたいユーザー名とパスワードを入力します。
パスワードは再入力があります。
Enter username [temp-admin]:admin
Enter password:
HTTPS 通信の準備
キーストアの作成
Keycloak は バージョン21以降でHTTPS通信が必須となったため、HTTPS通信をするための準備としてキーストアを作ります。
# ディレクトリは任意だがわかりやすい場所に
sudo mkdir -p /etc/keycloak/ssl
# 作ったディレクトリに移動
cd /etc/keycloak/ssl
# 鍵の作成
sudo keytool -genkeypair \
-alias keycloak \
-keyalg RSA \
-keysize 4096 \
-validity 365 \
-keystore keycloak.jks \
-storepass password(忘れないパスワード) \
-dname "CN=サーバーのDNSまたはIP, C=JP"
すると、ディレクトリ配下に keycloak.jks
というファイル(キーストア)ができます。
HTTPS 通信
先ほど作成したキーストアを使って、HTTPS通信をするための設定を Keycloak の設定ファイルに書き込みます。
# まず編集用のファイルを開く
vim conf/keycloak.conf
vim の画面で、以下の設定をつけたします。
### HTTPS 通信のための設定
# キーストアのパスを指定
https-key-store-file=/etc/keycloak/ssl/keycloak.jks
# キーストアのパスワード(生成時のパスワードと一致させる)
https-key-store-passwd=password
# キーストアの種類
https-key-store-type=jks
# ブラウザからIPでの通信を許可(DNSを使えない場合のための設定)
hostname-strict=false
Keycloak サービスの起動
bin/kc.sh start &
ここまで完了すると、ブラウザ上に https://EC2のパブリックIP:8443
と入力することで Keycloak の Web画面にアクセスできます。
この記事の手順では Keycloak サーバーに自己証明書を使っているため、「この接続ではプライバシーが保護されません」という警告が出ますが、「詳細設定」→「https://EC2のパブリックIP:8443
にアクセスする」をクリックし先へ進みます。
admin ユーザー作成時に設定したユーザー名とパスワードで Sign In します。
Keycloak を立てるまでの手順は以上です!
このあと、realm や ユーザーなどを作成して、Cloudera と Keycloak を接続する設定を行います。
手順は作成次第リンクを貼ります。