rela1470のブログ

rela1470がブログです。

会社に閉じ込められたのでAmazon Connectで電話脱出システムを作った

脱出ボタン、つけ忘れました。

こんばんは、@rela1470です。
あ、本名は渡辺です。最強です。*1でも簡単なほうの字です。曾祖母ちゃんが最強だ。

この記事は情シスSlackアドベントカレンダー24日目担当だと思い込んだ記事です!
あれ...? 24日じゃないぞ...? 25日だ...明日でした... なんでだ...? adventar.org

ということでアドベントカレンダーとは全く関係ない記事になりましたが、野良記事として供養します。よろしくどうぞ。どこかのアドベントカレンダーの穴埋めに使ってもいいよ。

物理的セキュリティの監視

みんなだいすきISO/IEC27001(JIS Q 27001)が発行されて1年が経ちましたね。

www.tdb-net.co.jp

ISMSを取得している企業では、物理的セキュリティの監視を頑張らなくてはいけません。
さて、少し前の話になるのですが、2022年9月にオフィス移転を行いました。 moffice.tokyo

で、移転と同時に物理的セキュリティの見直しも行い、入退室管理システムのリプレイスをやりまして。
まあ採用事例インタビューを受けるくらいには満足していました。*2 idoors.jp

そして時は過ぎ、約1年後...!

ひーん。

あちゃー。トラブルです。
朝の出社ラッシュ時に、ドアが開かなくなってしまったようです。うーむ。

といっても、自動的に約10分で復旧する*3 とのことで、ミッションクリティカルではないかなー。
実際に導入後、トラブルはこの1回しか起こっていません*4。なんだったんでしょうね。中性子線のせいにしとくか。

とはいえ、まあいい機会か...と、BCP対策本部とリスク再評価を行いました。
結果、うーん、ちょっと閉じ込められるリスク高いね、って話になってしまいました。

不審者を閉じ込めるぞ! アンチパスバック

いらすとやの閉じ込められる図。ほんとなんでもあるな

というのもへーしゃの入退室管理システム、個人情報や生カード、生PANなどを扱う機密区画(通称セキュリティルーム)があり、PCI DSSやISMSに則った運用を行うため、共連れ対策としてアンチパスバック方式を採用しています。入場時に同僚といっしょに入ってしまい、自分のカードをタッチし忘れた...となった際、アンチパスバック違反となりドアが開きません。

https://idoors.jp/cando/security/

つまり不審者です。実はカード持ってる人かどうかなんてわかりませんからね。閉じ込めます。慈悲はありません。成敗。

もちろんこれは正しい挙動なのですが、人間は人間なのでやらかしてしまいますね。お腹が痛くて急いでいたときとか。救済が必要です。

もともと想定していた救済策として、オフィスに誰かいる際はその人のカードタッチで助けてもらえますし、*5そのドアを開ける権限を周りの人が持っていない場合や、オフィスにいない際も、PCやスマホからアクセスできるWEB管理画面があり、本人や同僚を通じてリモート解錠ができます。*6

WebAPIを活用した独自のWeb画面(公式はIdP対応してないので)
公式ツールも認証を除けば必要十分です。
Slack通知はこんなかんじ。

当初はそれで十分だと思っていたのですが、休日出勤時や、夜に最後の1名になった際など、携帯を持ち歩かないでオフィス内を移動し、間違って閉じ込められる... あり得ますね。人間なので。本当の緊急時も大変ですね。お腹痛いときとか。今はお腹痛いときしか思いつかないんですけど。まあなんかありそう。

今考えたらこういうときに使う、ガラスをバリーンってやるようなボタン、つけておくべきでしたね〜。
2022年当時はつけるっていう概念が自分の中になかったんですよね... バリーンってやりたい側の人間のはずなのだが...*7 思いつかなかった... 悔しい...

これはダサすぎて逆にかっこいいな。 www.monotaro.com

わたなべが大好きUniFiは鍵タイプ。これはこれでかっこいい。日本ではまだ売ってないけど。次のオフィスはこれにしそうな気がする。 store.ui.com

もちろんボタンを増設工事して対応してもよかったし、それが正攻法なのはわかってたんですが、お金もかかるし、まあ...エンジニア的には楽しくないですよね。

遠隔で電源を落とせばいいんだな

へーしゃで今回採用していた電子錠は、フェイルセーフなマグネティックロックを採用しています。電磁石。通電してるときだけくっつく。
store.ui.com ということは、この電気錠の電源を落とす=解錠となります。

あ、なんかいけそうですね。ということで、自作することにしました。わくわく。

リモートで電源をON,OFFする機械として、すぐ思いつくのがスマートプラグですかね。SwitchBotとか。

安価だし、Web APIもあるんですよね。
へーしゃも10台買って、社内ツールから会議室の機材などを再起動できるように作ったりしてました。

遠隔で再起動できて最高なのだが...

ただこれがねー、すぐ壊れるんですよ。1年経たないうちに4台壊れました。これはもう出禁ですね。やはりホビーユースな製品をビジネスに使うと駄目だな〜。

ビジネスユースなスマートプラグ、何社かあるんですが、今回は知り合いが使ったことがあって、実績のある明京電機さんにしました。インタロップとかでもお見かけしたことありますし。信頼できそう。

https://www.meikyo.co.jp/product/?id=1492050202-128983
ちょっと管理画面が古めかしいですが、壊れるよりはましですね。アップデートでクラウド画面も最近できたみたいで、ちょっとずつ改善してます。
この機種はTelnetかメールで再起動の指示が出せます。まーやるならメールかな。APIがあればよかったんですが。しゃーない。

4ヶ月前に出た上位機種はSSHとかSSL/TLSメールに対応したのですが、値段が倍になってました。悩ましいね。

内線電話が動かん(ちょっと脱線)

さて、機材に目処が立ったので、次はメールを送る仕組みです。
セキュリティルームにあって使えそうなのは、内線電話のみ。
PCとかスマホとか置いたら監査対象増えちゃいますからね。使えるものはそのまま使おう。

あー脱線するけど、内線電話もちょっとトラブったんですよね。
本筋とは関係ないけど、どこにも書いてないし、いい機会だから書いちゃおー。

へーしゃの内線電話はGrandStreamのGXP-2140です。

で、電話回線はNTTひかりでんわ。HGWはPR-400KI。

あ、知ってますか?NTTのHGWはSIPサーバーの機能があって、5台くらいだったらNTTのHGWだけで使えます。

https://k-tai.watch.impress.co.jp/cda/article/mobile_catchup/45055.html

...使える...はず...だった...。

ええ、動くって書いてます。なのに動かない...
なんか電話をかけると10秒くらいでHGWが再起動しちゃうんですよね。電話機じゃなくてHGWが再起動するのがミソ。なんだこれ。
スマホとかのアプリフォンだと動くので、これは相性問題かな?

うーん。あ、機種は違うけど、このブログと症状が一緒だな? qeynos2525.blog.jp

このブログの方はGrandStreamの GXP-1620 とPR-500KI。
こっちはGrandStreamの GXP-2140 と PR-400KI。

ほほう。同じ会社同士だ。怪しいですね?

ということで、自力では手詰まりだったので、このブログを参考にNTTの出張修理に来ていただきました。
で、来てくれたNTTのお兄さんがむっちゃハナシワカルマンだったのも功を奏しまして、HGWガチャ、やらしてもろたぜ。やった。話が通じないときはマジで通じないですからね。サポート外なんでしょうけども。うむむ。
その場で同機種に交換しても改善しないことを確認。HGWを別会社のもの(今回はPR-400NE)に交換してもらったところ、無事に改善しました。

NTTのお兄さんから聞いた未確認情報ですが、HGWは型番の末尾がKIの沖電気工業製に今後統一していくとのことだったので、次回のオフィス移転時も困りそうだなあ。GrandStreamさん側で対応してくれないかなあ。

2721バイトも脱線してしまった。
閑話休題

電話機からメールを送る仕組みをAWSAmazon Connectで作った

ということでやっと本題なのですが、会社の電話から専用の解錠番号に電話することで、AWSからリブーター宛にメールを送る仕組みを作りました。

aws.amazon.com メインはコールセンターのサービスなんですかね?その中の機能で、簡単にIVRを作れるものがありまして、今回はそれを利用しました。

ルーティングフローのコンタクトフロータイプを作成します。

全体図

ノーコードでブロックを組み合わせる仕組みです。ちなみに画像内の音声設定はともこさんが一番好き。

かかってきた電話番号を確認して

暗証番号チェック。
最初は音声認識で合言葉を言わせてたんだけど、ちょっと精度が低くて断念。合言葉のほうがおもろいよね。大の大人に困った顔で切羽詰まった「ひらけごま〜」が聞きたかった。

で最終的にはLambdaへ。ここまでくればこっちのもんよ

LambdaからSESでメールサーバーにメールを送って、リブーターが1分ごとにメールを受信チェックしてくれて、発動!

あ、メールサーバーもちょっとものを選ぶんですけどね。今回はさくらのレンタルサーバーについてたやつを使ってます。

新機種は大丈夫。

電話の際もSlack通知されます

リブーターの出口は普通のコンセントなので、そのまま電子錠の制御盤を接続しました。
また、発動時に悪さされないよう、念の為サイレンも設置。本来の使い道は停電の確認用なのかな?

法定停電の時やばいですね。忘れないようにしないと。

ということで、かんせいー!!! こんな感じです。

いい感じ!
年の瀬なのでちょっと緩めのネタでした。みなさま良いお年を〜〜!

*1:M-1グランプリ2024を参照のこと

*2:写真撮り直してえな。いや、今のほうが太ってるな。

*3:byエーティーワークスさん

*4:2024年12月現在

*5:まあ... 目をつぶります。監視カメラもあるので。

*6:もちろんSlack通知でアラートは出ます

*7:小学校の頃、同級生の家だったお寺の非常ベルを鳴らした思い出が脳裏を