0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS EC2のDocker上でKeyCloakをたてる方法

Last updated at Posted at 2024-04-05

認証・認可の導入

認証・認可の勉強がしたいと思い、KeyCloakを触ってみようと思いました。

最初はローカル上で構築していたけれど、実際に運用する場合はサーバー公開しないといけないから手軽にEC2上で構築してみました。

EC2はAmazon Linux2を選択

今回は無料利用枠で使えるAmazon Linux2を使います。

スペックはt2.microでデフォルトのままにしました。

dockerをインストール

インスタンス生成時に作ったキーペアを使ってSSHします。

# pemのパーミッションがでかいと怒られるので、400に設定
chmod 400 ~/.ssh/[作成したキーペア名].pem

ssh -i [作成したキーペア名].pem ec2-user@[EC2のパブリックIP]

下記コマンドでdockerをインストール

# インストール
sudo yum install -y docker

# 起動設定
sudo service docker start
sudo service docker enable

# ec2-userでdockerが起動できるようにする
sudo usermod -a -G docker ec2-user

# 動作確認
sudo docker info

docker-composeをインストール

sudo mkdir -p /usr/local/lib/docker/cli-plugins

sudo curl -SL https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose

sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose

docker compose version

公式のDockerイメージからKeyCloak起動

下記公式からDocker起動コマンドを確認する。
https://www.keycloak.org/getting-started/getting-started-docker

docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:24.0.2 start-dev

そのままだとブラウザアクセスできない

どうもKeyCloakのデフォルト設定だとHTTPS必須になっているので、そのままではブラウザアクセスできませんでした。
アクセスすると次のようなエラーがでます。

http required

ローカルでたてていたときは、出なかったのでlocalhostのときは通る設定になっている模様。
今回はEC2上にたてたのでlocalhostではなく、パブリックIPになるのでその影響かと思います。

KeyCloakのHTTPS必須設定をオフにする

ということで、CLI経由でHTTPS必須設定にオフにしていきます。

実行したコマンドは以下

# dockerコンテナにログイン
docker exec -it [コンテナ名] /bin/bash

# コンテナ内で実行
bash-5.1$ find / -name kcadm.sh
/opt/keycloak/bin/kcadm.sh
find: ‘/proc/tty/driver’: Permission denied
bash-5.1$ 
bash-5.1$ cd /opt/keycloak/bin/
bash-5.1$ 
bash-5.1$ ./kcadm.sh config credentials --server http://localhost:8080 --realm master --user admin
Logging into http://localhost:8080 as user admin of realm master
Enter password: *****       # adminと入力
bash-5.1$ ./kcadm.sh update realms/master -s sslRequired=NONE

その後、再度ブラウザアクセスしてログイン画面が出てきたら完了です。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?