
2025.03.07
メール対応担当の8割以上が「カスハラ被害」に クレームのハード化・長期化を防ぐ4つの対策
リンクをコピー
記事をブックマーク
菊池宣明氏(以下、菊池):菊池宣明と申します。本日はよろしくお願いします。はじめに、簡単に自己紹介をさせてください。最近私は主にSRE関係の仕事を担当しています。2022年から「ハッカー飯」の開発者メンバーとしてジョインしました。経歴を簡単に述べると、科学系の大学院を卒業して、その後とあるCIerの会社に新卒で入社しました。
ここでは主にAWSについて業務でたくさん取り組み、そこでしばらく修行を積んだ後に、2021年の夏ごろ退職をして独立をして、今はいわゆるフリーランスエンジニアとして活動をしています。エンジニア歴としては、2022年でちょうど5年目になります。
最近の趣味はゲーム。「スマブラ」「Fortnite」が好きです。好きなAWSのサービスは「AWSサポート」です。AWSサポートのみなさん、いつも本当にありがとうございます。
自己紹介はこれぐらいにしておいて、さっそく本題に入りたいと思います。まずハッカー飯の紹介からさせてください。
ハッカー飯というプラットフォームは、技術や知識でアイデアをかたちにする人々、僕らは“ハッカー”と呼んでいますが、このハッカーがご飯を囲むような気軽さで語り合い、教え合い、つながれるオンラインプラットフォームとなっています。
もう少し概要について説明すると、ハッカー飯は、株式会社スタークロスの西田が作ったサービスとなっています。ハッカー飯の特徴としては、話したいことをもとに、エンジニアと1 on 1マッチングできる機能、エンジニア複数人と簡易的なイベントを行う食事会機能、そして興味のあることをもとに集まるコミュニティ機能が存在しています。
サービス開発の背景としては、「いわゆるエンジニア同士で気軽に、ハッカー同士で気軽に話せる環境があまりないよね」といったところがあり、そこを解決するためにハッカー飯というサービスを開発しました。
(スライドを示して)ハッカー飯にログインするとこういう画面になっていて、それぞれユーザーが話したいことリストみたいなことをカード形式で登録しています。
ここでは技術的な話や趣味的な話とかも行われていて、それぞれが「気になるボタン」を押すことによって、「この人はどんな話が気になっているのか」がわかり、気になるボタンを押してくれた人とマッチングして、メッセージを交換して話したり仲よくなったりするサービスとなっています。
(スライドを示して)食事会機能は、いわゆるエンジニアの勉強会なども企画されていたり、ただワインを飲む会というような、いわゆるリアルの飲み会、食事会も開催されていたりもします。
最近、ルーム機能も作成しました。こちらはハッカー飯上で「ルームを作成」というボタンを押すと画面が出て、入室することによってユーザー同士で気軽にカジュアルにお話しできる機能となっています。これによって、ユーザー同士がよりコミュニケーションがしやすくなるのかなと考えています。
そんなハッカー飯の運営メンバーですが、メンバー全員がそれぞれ本業がある中、副業でハッカー飯に携わっています。
開発スタイルですが、それぞれ副業で行っているので、毎週土曜日にDiscordのボイスチャンネルに入室して、各々開発を進めていく。そんなスタイルでやっています。
1時間開発して10分間休憩、みんなスマブラが好きなので、休憩時間中にスマブラをする。そんなサイクルでやっています。その日の夜には定例を行って、それぞれのタスクの確認や今後の方針について話し合いを行います。
収益化に関してですが、現状実はまだ収益化ができていなくて、コストをできるだけ抑えた構成となっています。今後、法人版のハッカー飯を作って、企業の中のエンジニアと気軽につながれるようなシステムを構築する予定です。ここまでがハッカー飯の紹介です。
ここからが今回のテーマでもあるセキュリティ・モニタリングについて、ハッカー飯で取り組んだことをお話しします。まずは、セキュリティについてお話しします。
セキュリティの話に入る前に、ハッカー飯のインフラの構成について簡単に紹介します。本当にすごくシンプルな構成ですが、「Route 53」があって、「CloudFront」「S3」「Lightsail」、こういったサービスを使っています。
この中でLightsailと呼ばれるサービスは、もしかするとあまり聞き慣れないサービスかもしれないので、ここで少し説明させてください。
(スライドを示して)こちらがLightsailの公式ページに載っているスクリーンショットです。「Amazon Lightsail」というのは、ここにも書いてあるとおり、低価格の事前設定されたクラウドリソースを使用して、アプリケーションとWebサイトを構築できるサービスとなっています。
ポイントとしては、数回クリックするだけでWebサイトやアプリケーションを作成でき、費用対効果の高い月額料金で使用できる。これが主なLightsailのポイントです。
なぜハッカー飯の初期の構成でLightsailを選定したかというと、一番の理由としては、コスト管理が行いやすいからです。低額で使用できるため、コストの予算が立てやすいというメリットがありました。
また、3.5ドルのプランというのがあり、これを使用するとEC2を起動するよりも安く使うことができる。そういったメリットもあったのでLightsailを選定しました。
2つ目の理由としては、環境の構築を素早くできるからです。Lightsailでインフラ環境を構築する場合、先ほどのプランを選んでプラットフォームを選択して、必要なものを選択する。これぐらいのクリック(だけ)でインフラの環境が構築できるものとなっています。
いわゆるVPC(Virtual Private Cloud)やサブネット、インターネットゲートウェイすら作成する必要がない。すべて、いわゆる隠蔽化されている状態で作成されるので、そういったところをあまり意識しなくても誰でも構築できるのは、当時の開発メンバーにとって都合がいいものでした。
3番目の理由としては、EC2への移行も可能ということです。やはりEC2に比べるとLightsailはある程度制約、制限があって、EC2に移行したくなるタイミングがあると思います。そういった時にもLightsail上でスナップショットを取得することで、簡単にEC2へエクスポートが行えます。(スライドを示して)この「Export to Amazon EC2」というボタンを押すことで、EC2にエクスポートが可能となります。
そんなLightsailですが、運用していて困ったことがちょっとあって。まずはLightsailにIAMロールが使用できないことです。
EC2であれば必要な権限を付与してIAMロールを作成してアタッチすると思いますが、そういったことができないというのが問題としてありました。なので、いわゆるアンチパターンと呼ばれるものだと思いますが、IAMユーザーを作成してアクセスキーをインスタンス内部に格納する必要があります。
2点目としては、スケールアップが簡単にできないといったことがあります。EC2のようにインスタンスを停止して、インスタンスタイプを変更して、スケールアップして起動ということが、Lightsailでは行えません。
Lightsailの場合、スケールアップするにはスナップショットから作り直す必要があるので、今後、サービスが広く認知されてアクセス数が増えた際には、ちょっと困りそうだなと考えていました。
僕がジョインした後に発覚したんですが、そもそもアクセスキー・シークレットキーがプログラムの中にハードコーディングされていて、誰でも閲覧できる状態になっていました。これは外に漏洩した際にけっこうなセキュリティ上のリスクがあると判断して、最初にアクセスキーを廃止する取り組みを行いました。
方法はほかにもあるかもしれませんが、ハッカー飯ではこれを機にLightsailからEC2へ移行してIAMロールを使用することにしました。
移行の流れとしては本当にシンプルで、LightsailをEC2へエクスポートして、適切な権限に絞ったIAMロールをEC2にアタッチします。アクセスキーには有効化・無効化を切り替えるボタンがあり、まずアクセスキーを無効化にしてテストを実施した後、問題ないことを確認してからアクセスキーを削除する方法で行いました。
これによって、アクセスキーを最初に無効化にしてからテストを実施したほうが、なにか問題があった時にも切り戻しが楽かなと思ったので、こういった手順を踏んでいます。
本来であれば、ここで移行の苦労話とかをしようかなと思っていましたが、特につまずくこともなくすんなりと移行できてしまったので、逆に言うとそれぐらい簡単にシンプルに移行できるサービスなんだとあらためて認識することができました。
実はセキュリティ上のリスクが実はこれだけではなくて、そもそもAWSコンソールへのログインなども、これまでRootユーザーが使われていたということが発覚しました。これもやはり、ふだんの作業でRootユーザーを使うケースはほとんどないと思うので、これもアクセスキーを廃止したタイミングで管理を見直そうと考えました。
そこでハッカー飯では、簡単にセットアップできてユーザー管理を効率化できる「AWS Single Sign-On」を採用しました。
(スライドを示して)こちらを使うとこのような画面が表示されて、このようなポータルページが表示されて、必要な権限が表示されます。「Management console」というボタンを押すとAWSアカウントにログインでき、アクセスキー・シークレットキーの一時的なクレデンシャル情報を出力することも可能となっています。
Single Sign-Onについてもう少し詳しく説明すると、「AWS SSO」と略されたりすることが多いのかなと思いますが、こちらを使用することによって、ユーザー・グループの管理および認証を行えます。
先ほど紹介したようなポータルサイトにログイン後、所属しているグループに付与されている権限のみ使用を制限できます。
(スライドを示して)このように、例えばグループを2つ作って、それぞれにユーザーを所属させて、片方のグループには2つの権限、もう片方のグループには1つの権限のみとこともできて、今後開発メンバーが増えた時にもこういった構成のほうが管理が楽かなと考えたので、AWS SSOを採用することにしました。
以上がハッカー飯のセキュリティに関するお話でした。
(次回に続く)
関連タグ:
2025.03.25
減点を恐れてモチベ低下、果ては離職も… あらゆる“会社の害虫”を大繁殖させる「ラスボス」の正体
2025.03.24
最悪の場合、組織を死に至らせる“会社の害虫”とは 誤った意思決定や品質不祥事を招く要因
2023.02.13
小6で「ヤマギシ会」に入り、23歳まで子どもだけで集団生活 「お金が存在しない」コミューン育ちの青年が社会に出て知ったこと
2025.03.25
ムダな仕事がなくならない“マッチョな職場”を変えるには 近年の過度な「KPI主義」が組織に与えた影響
2025.03.27
交渉で「落としどころを探る」という考えは捨てるべき プロが教える、チャンスを逃さない条件交渉のコツ
2025.03.19
組織をダメにする“害虫”の正体は間違った思い込み AIやDXなど手段のみにこだわるダメ上司の見極め方
2025.03.24
気づけばモラル崩壊……人材育成に無頓着な企業の末路 業績アップや採用にもつながる“人への投資”の重要性
2025.03.21
マネージャーの「自分でやったほうが早い」という行動で失うもの 効率・スピード重視の職場に足りていない考え方
2025.03.21
査定時期に上司から1年前の失敗を指摘される理不尽 変えられない過去を議論する「成果主義」の弊害
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
2025.03.25
減点を恐れてモチベ低下、果ては離職も… あらゆる“会社の害虫”を大繁殖させる「ラスボス」の正体
2025.03.24
最悪の場合、組織を死に至らせる“会社の害虫”とは 誤った意思決定や品質不祥事を招く要因
2023.02.13
小6で「ヤマギシ会」に入り、23歳まで子どもだけで集団生活 「お金が存在しない」コミューン育ちの青年が社会に出て知ったこと
2025.03.25
ムダな仕事がなくならない“マッチョな職場”を変えるには 近年の過度な「KPI主義」が組織に与えた影響
2025.03.27
交渉で「落としどころを探る」という考えは捨てるべき プロが教える、チャンスを逃さない条件交渉のコツ
2025.03.19
組織をダメにする“害虫”の正体は間違った思い込み AIやDXなど手段のみにこだわるダメ上司の見極め方
2025.03.24
気づけばモラル崩壊……人材育成に無頓着な企業の末路 業績アップや採用にもつながる“人への投資”の重要性
2025.03.21
マネージャーの「自分でやったほうが早い」という行動で失うもの 効率・スピード重視の職場に足りていない考え方
2025.03.21
査定時期に上司から1年前の失敗を指摘される理不尽 変えられない過去を議論する「成果主義」の弊害
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由