SlackからSecurityGroupをコントロールする関門海峡を書いた

こんにちは、皆さんはゼロトラストですか?残念ながら僕はまだゼロトラストではありません。

一方で、ゼロトラストになるまでの過程は技術的に楽しみながら豊かに過ごしたいと思っています。

先日書いたポストでは、踏み台サーバをGoogleoAuthを利用して堅牢にするという実装を紹介しました。一方でペパボは多くの商材がありその全てが一気にこれらの認証方式に移行できるかというとそうではありません。つまり、これまで通りFromIPでのデバイス認証が必要な箇所がおおくあります。

それらを解決するために同僚の @buty4629 が開発した kanmon を利用して、CLIからOpenStackのSGを開閉していました。

これはサーバ名を指定したり、操作するSGを設定ファイルとして持たせることで、自宅のIPから特定のサーバにアクセスできるようにするソフトウェアです。とても便利なのですがOpenStackのAPIを実行する必要があるので、非エンジニアによる操作が少々困難であったり、OpenStackのアカウントの整備諸々が必要でした。

それらを解決すために開発したのが関門海峡です。

これは先に紹介したkanmonをSlack経由で実行するものなのですが、下記のような動きになります。

まずはボットにアクセスを許可したいServerIDを指定して話しかけると、URLが払い出されます。

リンクをクリックするとGoogleoAuthの画面が出てきます。

認証が無事パスされると、このときブラウザからアクセスしたFromIPをSecurityGroupにPermitで登録します。

本来Slack経由で何かしらを利用してAPI叩くとき非常に監査がしづらくなるのですが、このようにoAuthと上手に組み合わせることで監査も可能にしつつ、認証、認可をコントロールすることができます。

今回開発にあたって、botの部分は社内で@hibomaがしっかりとした実装を残してくれていたのでそれを大いに参考にしました。

CLIで運用しているものをちょっと工夫して、平易にすることで利活用できる場面は今の時代とても多いと思うで、運用でのちょっとした気づきをChatOpsしてみてはどうでしょうか。