メドピア開発者ブログ

集合知により医療を再発明しようと邁進しているヘルステックカンパニーのエンジニアブログです。読者に有用な情報発信ができるよう心がけたいので応援のほどよろしくお願いします。

AWS DevDay 2023 Tokyoへの参加レポート〜「セキュリティ/ガバナンス系サービスを使った安全なSandbox環境の作り方」の紹介

はじめに

 今年の4月に新卒で入社したバックエンドエンジニアの冨家(@asahi05020934)です。現在は、全国の医師が経験やナレッジを 「集合知」として共有し合う医師・医学生専用のドクタープラットフォームの開発を行っています。
 新しいAWSのサービスをキャッチアップするときに、触ってみることは効果的です。 「自宅で学ぼう!AWS 初学者向けの勉強方法 6ステップ!」 によると、

勉強したサービスをハンズオンなどを通じて実際に触ってみることで、知識と実践を結びつけて理解することができます。

とあり、アウトプットの重要性が身に沁みます。
 しかし、AWSのサービスを実際に触っていると、想定外のコストが発生し後悔する可能性があります。私も以前使っていないリソースを消し忘れて、月数千円の想定外の費用が発生し後悔したことがあります。
 どのようにすれば、AWSの安全なSandbox環境を作ることができるのか知りたいと思っていたところ、先日 AWS Dev Day 2023 Tokyoというイベントに参加し、セキュリティ/ガバナンス系サービスを使った安全なSandbox環境の作り方というセッションを聞いたので紹介します。

Sandbox環境構築に役立つサービス

 「セキュリティ/ガバナンス系サービスを使った安全なSandbox環境の作り方」では、主にコスト管理系のサービスで「AWS Budgets」「AWS Cost Anomaly Detection」、ガバナンス系のサービスで「AWS Organizations」「AWS IAM Identity Center」、発見的統制のサービスで「Amazon GuardDuty」「AWS CloudTrail」を紹介していました。

表1 AWSのSandbox環境構築に役立つサービス

コスト管理系 ガバナンス系 発見的統制
AWS Budgets AWS Organizations AWS CloudTrail
AWS Cost Anomaly Detection AWS IAM Identity Center Amazon GuardDuty

出典: セキュリティ・ガバナンス系サービス を使った安全な Sandbox 環境の作り方をもとに作成

コスト管理系

AWS Budgets

カスタム予算を設定してコストと使用状況を追跡し、しきい値を超えた場合に E メールまたは SNS 通知でアラートを受信できるサービス
出典: AWS Budgets

  AWS Budgetsには「予測とアクション」という機能があり、「月末ではいくらになるか」を予測してアラートを出してくれます。 これによりコスト面で危険な状態になりそうなとき、より早く気づくことができます。
 私も「このまま使っていけば月末どのくらいかかるんだろう」と不安になることが多いので、月末の金額を予測できるのは便利だと思いました。

AWS Cost Anomaly Detection

高度な Machine Learning テクノロジーを活用して、異常な支出と根本原因を特定できるサービス
出典: AWS Cost Anomaly Detection

 AWS Cost Anomaly Detectionを使用することで、想定外の請求リスクを減らすことができます。
 私も過去にどこでコストが発生しているかよくわからず特定するのに苦労したことがあったので、このサービスを使えばスマートに特定できそうで良いなと思いました!

ガバナンス系

AWS Organizations

複数のアカウントをまとめるサービス
出典: セキュリティ・ガバナンス系サービス を使った安全な Sandbox 環境の作り方

 AWS Organizationsが役に立つ理由は、2つあります。
 1つ目は、SCPが利用できるからです。SCPは、アカウントや組織単位にアタッチするポリシーです。SCPを使いSandbox環境のアカウントでも使用してはいけないサービスをあらかじめ禁止することで、Sandbox環境のアカウント利用者が本番アカウントでも使用できない事を事前に気づくことができます。
 2つ目は、アカウントの閉鎖による不要リソースの削除を行うことができるからです。 リソースを消し忘れる原因の1つは、消して良いリソースと消してはいけないリソースが混ざってしまうことです。そこで、本番環境のアカウントとSandbox環境のアカウントを分け、お試し的な用途はSandbox環境のアカウントを利用し、使わなくなったらSandbox環境のアカウントごと削除することでリソースの消し漏れを防ぐことができます。
 私はこのセッションを聞くまで「リソースの消し漏れを抑制するためにアカウントごと閉鎖してしまう」という発想に至らなかったので、とても斬新な方法だと感じました!

AWS IAM Identity Center

ワークフォースのアイデンティティを安全に作成または接続し、AWSアカウントとアプリケーション全体でそのアクセスを一元管理するサービス
出典: AWS IAM Identity Center

 AWS IAM Identity Centerが役に立つ理由は、3つあります。
 1つ目は、AWS Organizations全体のユーザー管理をAWS IAM Identity Centerでまとめて行うことができるからです。AWS IAM Identity Centerの方にログインをすれば、複数のAWSアカウントに対して、シングルサインオンが可能になります。これにより、IAMユーザーを勝手に作ってID・パスワードをいい加減に使い、インシデントを起こすリスクを減らすことができます。
 2つ目は、AWS CLIとAWS IAM Identity Centerが連携可能だからです。AWS CLIとAWS IAM Identity Centerを連携することで、一時的な認証情報(アクセスキー)を必要に応じて発行することができます。これにより、永続的なアクセスキーを発行することが不要になり、アクセスキーをGitにコミットしてしまったときなどのセキュリティリスクを下げることができます。
 3つ目は、WebAuthn対応のTouch ID / Windows Hello カメラ などの MFA が利用可能だからです。MFAの1つに、TOTPがあります。TOTPとは

ワンタイムパスワード(OTP)の生成手法の標準の一つで、秘密鍵と現在時刻からハッシュ値を求め、これを6桁程度の数値列に変換してパスワードとする方式

です。TOTPは、パスワードの生成・入力する分手間がかかります。そこで、WebAuthn対応のTouch ID / Windows Hello カメラ などの MFAを使うことで、パスワードの生成・入力が不要になり、多要素認証の手間を減らすことができます。
 私は毎回多要素認証する時にすぐにスマホを開けられずに困っているので、WebAuthn対応のTouch IDのような多要素認証が使えるのはとても魅力的に感じました!

発見的統制

AWS CloudTrail

AWS インフラストラクチャ全体のアカウントアクティビティをモニタリングして記録し、ストレージ、分析、および修復アクションをコントロールできるサービス
出典: AWS CloudTrail

 AWS CloudTrailを使うことで、「いつ誰が操作したのか」や「どんな操作をしたのか」ということを追跡することができ、調査をするとき便利です。
 もし、SandBox 環境がハッキングされ侵入されていた場合、作業時刻から不審な操作に気付けるかもしれませんね!

Amazon GuardDuty

悪意のあるアクティビティのために AWS アカウントとワークロードを継続的にモニタリングし、可視化と修復のための詳細なセキュリティ調査結果を提供する脅威検出サービス
出典: Amazon GuardDuty

 Amazon GuardDutyを使うことで、AWS アカウントの脅威を様々な情報ソースから機械学習を使って検知することができます。
 セキュリティ問題は自分の想定外な部分に潜んでいて、私はいつも「本当にこれで問題ないかな」と不安に思っているので、潜在的な脅威の検出に役立てられるAmazon GuardDutyはとても心強いツールだと感じました。

最後に

 以上、「セキュリティ/ガバナンス系サービスを使った安全なSandbox環境の作り方」を紹介してきました。今後はこの話を聞いたことをもとに安全なAWSのSandbox環境を構築して、後悔なくAWSのサービスに触れていきたいと思います。


是非読者になってください!


メドピアでは一緒に働く仲間を募集しています。   ご応募をお待ちしております!

■募集ポジションはこちら

medpeer.co.jp

■エンジニア紹介ページはこちら

engineer.medpeer.co.jp