前段

前回EC2上にRocket.Chatを導入したのですが、諸々気になる部分があるので
今回はその辺りを整理してなんとか検証できる環境を作りきりたいと思います。

気になること

・サインアップ時に使用できるメールアドレスのドメイン制限
・メール送信経路(作った覚えもない)
・Anyで解放するこのドキドキ感を緩和する施策

ということで上から行きます。

サインアップ時に使用できるドメイン制限

この辺じゃなかろうかと思うのです。

Allowed Domains List:
This will block emails with different domains than the ones on this list.

あとこの辺りも有効にしておきたい気もする

Email Verification:
If this is set to true, users will have to confirm their email via a confirmation email sent to their email. (For this setting work, the SMTP settings must be already set up. See Email Configuration)

・管理->アカウント->登録->許可されたドメイン一覧にドメインを登録します。
・同じところにメール認証の項目もありますがまだSMTPを設定していないのであとでやります

あった.png

メール送信経路

・メール送信にはSESを利用(SMTP Auth)
・Postfixを挟んでSESにRelayした方が何かあった時に早い気もするけど、Rocket.ChatからSESを直接指定する
・SESはバージニア北部を使用
・送信元アドレス(今回は自分のアドレスを使用)は先に認証しておく
・SandBoxモードは解除しておく(少し時間がかかるのでテストメールは認証済みの送信元アドレスをFrom/Toで利用)
・SESのSMTP SettingからSMTP Authに利用するIAMユーザを作っておく
・プロトコルはSMTP、ポートはサブミッションポート、IgnoreTLSはいいえ
・ユーザ名パスワードはSMTPSettingで作成したIAMユーザのものを使用

SMTPの.png

・テストメール送信はうまくいったが
・届いたメールが「このメールにはご注意ください」になっている
・MAIL FROMはDomain:amazonses.comから変えていない
 →メールヘッダを見てもdkim=pass、spf=passになってる
・多分gmail側でgmailのSMTPかどうか、見てるんだと思う。きっと。わかんない。

Anyで解放するこのドキドキ感を緩和する施策

・cognitoを挟む?
・AWS WAF入れる?
・ユーザビリティは下がりそうですが、一旦Cognitoで簡単な認証を設定してWAFを後から入れてみようと思います。

cognito

・目的はあくまでも緩やかなブロック
素晴らしい記事を参考に設定

認証がきた

cognito.png

初回パスワード変更

cognito2.png

ログイン画面に遷移できました

ok.png

あらためて、というか再認識

・画像ファイルを添付しながら丁寧に記事を書くのは本当に大変
・最初から粒度粗々だったけど途中からさらに粒度が落ちてしまった
・いつも何気なく読んでしまっている技術記事も同じ背景があるんだと思うと感謝せずにはいられない
・この記事が誰かのお役に立てば嬉しい。

 参考

・インフラエンジニアが一切コードを書かずにWebサーバーに認証機能を実装した話

TOP