短期間でも妥協なし、AWSセキュリティ実践術「CloudNative Days Summer 2025」LT全文書き起こし

2025/08/07

2025年5月23日、「Passion~CloudNativeに熱中する~」をテーマとしたテックカンファレンス「CloudNative Days Summer 2025」が開催されました。

SHIFTからはクラウドアーキテクトの寅野が登壇。短期間で堅牢なセキュリティ対策を実装した経験を共有しました。本記事では、寅野の発表内容を全文書き起こしでお届けします。

関連コンテンツ

  • ITソリューション部 寅野

    新卒から一貫してIT業界に従事。独立系SIerでアプリケーションおよびインフラエンジニアや大規模PMOを経験した後、アクセンチュア株式会社でアウトソーシングコンサルタント、アマゾンウェブサービスジャパン合同会社でクラウドインフラアーキテクトなど、ITに関するさまざまな経験を経て、2021年8月にSHIFT入社。2025 Japan AWS Top Engineer (Services)、2025/2024 Japan All AWS Certifications Engineersに選出。現在はAWSのプロフェッショナルとして、お客様へのアーキテクチャ検討からデリバリーまでを一気通貫で担当しつつ、社内では「AWSができる企業」の発信プロジェクトを牽引している。

目次

クラウドアーキテクトが振り返る、AWSセキュリティ構築案件

「6ヶ月でカットオーバー!ファンクション型BtoB SaaSで実装したインフラレイヤーのセキュリティ」というテーマで発表させていただきます。株式会社SHIFTでクラウドアーキテクトをしている寅野と申します。 愛知県出身です。趣味は釣りを含めて基本外で遊んでいます。

今回ご紹介するシステムのアーキテクチャは以下の通りです。

AWSのネイティブのサービスで、ファンクション型のWebサービスとして典型的なサービスを利用しており、フロントエンド、バックエンド、キュー・データストア、外部サービス連携用にハブ環境を利用しています。

このようなサービスに対して、どのようなセキュリティ要素を入れ込んだのかご紹介します。大きくは、アーキテクチャ、権限統制、振る舞い検知、脆弱性の対応を行いました。

1. アーキテクチャ

今回はアーキテクチャの部分を重点的にお話しさせていただきます。アーキテクチャのなかでも大きく3つあります。

1つ目は、階層的なアーキテクチャをとるということです。今回の事例の構成をサービス観点で見ると、このような図になります。

①でCDNを利用することにより、インターネットからパブリックのアプリケーションへの直接のアクセスを防いでいます。そして、②でデータへのアクセスをアプリケーションに限定しています。

これらをサービスではなく、Amazon Virtual Private Cloud (VPC)リソースの観点で整理すると以下のような図になります。

これはAWSのひとつの特徴なのですが、ローカルルート が存在するため、ルートテーブルのみで特定サブネットへのアクセスを防ぐのはむずかしいです。そのため、ネットワークACL とセキュリティグループ を活用し、データが置かれているリソースへの接続元を制限していきます。

2つ目は、グローバルやリージョンリソースへのアクセス方法です。通常、インターネットへの接続経路を作成し、リソースがアクセス可能な状況にすることもできますが、インターネットへのアクセス経路があるというだけでリスクの検討や対策が必要になります。

このような場合は、VPCエンドポイント というサービスを使って、インターネットへのアクセス経路をつくらずにグローバルやリージョンリソースにアクセスできるようにする対策をおすすめします。今回の例でも実装しています。

3つ目 がメンテナンスです。アプリケーションを保守運用していると、どうしてもリソースに直接アクセスしたくなるケースが出てきます。その際に、以下のスライドに並んでいるようなサービスをご利用いただくと、インターネットからのインバウンドを開けることなくメンテナンスができるようになります。

また、ツールを使う際にアップデートなどが必要な場合は、専用のLambda関数などを用意して、NATゲートウェイやルートテーブルの更新を行い、必要なときだけアウトバウンド通信で取得できる環境を準備し、常時開放しないことが大事です。

2. 権限統制

次に、大きなポイントの2つ目の権限統制です。権限、暗号化、シークレット管理がポイントになります。

権限では、リソースにロールを付与することは一般的ですが、さらにリソースポリシーを使ってリソース側から想定外のアクセスを防ぐ二重の対策が可能です。また、暗号化を併用することで、対象リソースの権限だけでは、利用した暗号鍵への適切な権限がないとアクセスできなくなり、よりセキュアな構成にできます。

3つ目 がシークレット管理です。アプリケーションのデータなどにアクセスする際に利用するシークレット情報の管理です。設定ファイルに記載する必要はなく、シークレット情報へのアクセスもLambda関数などに権限を使ってコントロールできるため、よりセキュリティに配慮した構成にできます。

3. 振る舞い検知/脆弱性チェック・防御

大きな観点の最後、3つ目です。これらは、アーキテクチャや権限上問題ない場合でも、リクエストが怪しい、もしくは構成上望ましくないものや脆弱性を含んだアプリケーションの本稼働を防ぐ仕組みです。

1つ目がWAFです。これはアプリケーションリクエスト内容をチェックし、怪しいものをブロックまたは検知するために導入します。

2つ目は、何らかに侵入された後の早期検知を想定していますが、GuardDutyなどのサービスを用いることで、アプリケーションの振る舞いやログなどをチェックし、アプリケーションが通常時と異なり、怪しい動きをしていれば検知できます。

最後の3つ目は、構成上好ましくないものや脆弱性が含まれるアプリケーションのデプロイを検知し、事故を未然に防ぐ対応です。これは本番だけでなく、その前のフェーズや環境で検出できるとよりいいです 。

以上、駆け足になりましたが、セキュリティ対策のご紹介でした。
ご清聴ありがとうございました。

(※本記事の内容および取材対象者の所属は、イベント開催当時のものです)