Yuichi(17)28先日、Keycloakの環境を検証する機会があったので、構築手順をまとめました。本ブログはその備忘録です。KeycloakとはKeycloakはOIDC認証等を利用してシングル・サインオンを実現するOSSです。Keycloakより詳細に知りたい方は、@ITの記事がわかりやすいので、こちらを御覧ください。@IT構成図こんな感じの構成をCloudFormationで作ります。Keycloakは、EC2上のDockerで動かします。HTTPS接続できるようにするため、ALBをSSL終端にしたいです。証明書にはACMを利用します。ACMを作成する場合、DNSにRoute53を利用した方が楽なので、Route53も利用します。Route53のホストゾーンとACMだけは、マネジメントコンソールから作ります。構築手順Route53ホストゾーンの構築Route53を利用するには、何かしらのドメインを所有している必要があります。弊社ブログを参考に、無料のドメインを利用してみるのもよいと思います。DevelopersIO作成したホストゾーンのドメイン名はメモしておいてください。のちほどCloudFormationテンプレートで使用します。ACMの構築ALBで利用するためのACMを作成します。ACM構築の詳細は、弊社ブログを御覧ください。DevelopersIO作成したACMのARNはメモしておいてください。のちほどCloudFormationテンプレートで使用します。CloudFormationでALB+EC2の構築CloudFormationで残りのAWSリソースを作成します。以下のボタンをクリックすると、CloudFormationスタックのクイック作成ができます。作成前にパラメーターとして、以下3つの項目を入力してください。Route53で登録したドメイン名。末尾のピリオドは省いてください。作成したACMのARN。ALBに対して接続を許可するネットワークCIDR。(例:192.0.2.2/32)パラメーターを入力したら、一番下までスクロールしてIAMのチェックを入れてスタックを作成します。CloudFormationのスタックが作成できたら、AWSリソースの構築は完了です。セッションマネージャーでDockerを動かすEC2の構築ができたので、KeycloakをDockerで動かします。こちらのDockerイメージを利用します。HubDockerを動かすためにEC2へ接続する必要がありますが、今回はセッションマネージャーを利用します。セッションマネージャーはざっくりいうと、ブラウザ上のシェルでEC2のCLI操作ができる機能です。詳細は弊社ブログを御覧ください。Managerのセッションマネージャーを開いて、セッションの開始をクリックします。すると、接続可能なインスタンスが表示されるので、接続したいインスタンスを選択して、セッションを開始します。すると、ブラウザでEC2インスタンスのシェルを動かすことができます。SSHクライアントいらずです。ユーザーでDockerが使えるようにコマンドを実行して設定します。ssm-userコマンドを実行したら、設定を反映させるためにセッションを張り直す必要があります。1回終了して、もう一度セッションマネージャーで新しいセッションを開始します。新しいセッションが開始できたら、次のコマンドのパスワードを適当に変更して、Dockerでkeycloakを動かします。jboss/keycloak:7.0.0しばらくすると、Dockerが起動してKeycloakにログインできるようになります。ドメイン名のエイリアスを作成しているので、そのURLでアクセスすることが可能です。(ドメイン名がexample.comなら、https://keycloak.example.com/でアクセスできます。)Docker実行時に設定したパスワードでログインすることができます。これでKeycloakの検証環境を構築することができました。終わりにALB+EC2(Docker)を使って、HTTPS接続できるKeycloakの検証環境を構築してみました。今回はKeycloak環境を構築しましたが、セッションマネージャーで実行していたDockerイメージを変えれば別の環境にさっとすげ替えることもできます。Dockerは検証環境の構築にも便利です。Keycloakの方は、Cognitoとの連携あたりを検証したいと思います。コンサルティング部所属。CLIとCloudFormationが好きです。インフラエンジニアとアプリケーションエンジニアの隙間で生きてます。システム運用を楽に楽しくしていきたい。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。濱田孝治391re:Invnetの動画検索でもめちゃくちゃ便利ですが、その他ブログやホワイトペーパーやGitHubも横断検索できるので、是非一度使ってみてください。CAFEの他、NTTデータとセブンイレブンの取り組みや、サインポスト、Zippinなどの各社と流通・小売業との連携を業界マップに作成してみました。PolicyのConditionにaws:CalledViaというキーが追加されました。いったキーなのかご説明します。夏目祐樹410こんにちは、CX事業本部の夏目です。MacのタッチバーのタッチIDが非常に便利なのですが、Terminalでsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。濱田孝治391re:Invnetの動画検索でもめちゃくちゃ便利ですが、その他ブログやホワイトペーパーやGitHubも横断検索できるので、是非一度使ってみてください。臼田佳祐296ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介256SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。