この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
この記事ではAzure Well-Architected Framework 5つの柱の一つである セキュリティ について記載します。
公式ドキュメントはこちらを参照してください。
Well-Architected Framework におけるセキュリティとは
セキュリティは端的に言えば組織が使用・保存・送信するデータを保護することです。そのために必要となるセキュリティ原則をアーキテクチャに適用することを、Well-Architected Framework のセキュリティでは目標としています。セキュリティをアーキテクチャに適用することで、データの保護やシステムへの攻撃に対して 機密性・完全性・可用性(※) の保証につなげることができます。
※情報セキュリティの3要素(CIA)
機密性(Confidentiality):個人情報や顧客情報など企業が定める機密性の高い情報には、限られた人だけが接触できるよう制限する
完全性(Integrity):不正アクセスなどによるデータの改ざんから保護する
可用性(Availability):システムの停止やデータの損失・改ざんに対応して、利用者が必要な時に安全にアクセスできる
セキュリティの原則
この原則をチェックすることでAzureに構成されたワークロードの信頼性を計測することができると考えられます。やはり直訳的なので少々分かりづらい。
セキュリティ設計原則
- リソースとリソースを強化する方法を計画する
- 最小特権の自動化と使用
- データの分類と暗号化
- システム セキュリティの監視、インシデント対応の計画
- エンドポイントを識別して保護する
- コード レベルの脆弱性から保護する
- 潜在的な脅威をモデル化してテストする
詳細
それぞれ詳細を記載していきます。各原則に対して原文とその補足・解釈を記載します。既に運用中のワークロードをセキュリティ観点で評価する際に役立てていただければ幸いです。
原則 | 推奨事項 | 補足、解釈 |
リソースとリソースを強化する方法を計画する | •ワークロード リソースを計画する際は、セキュリティを考慮してください。 個々のクラウド サービスがどのように保護されるのかについて理解します。 •サービス有効化フレームワークを使用して評価します。 | •利用している各Azureサービス単位で提供されているセキュリティを確認する。以下は一般的なPaaSセキュリティのベストプラクティス。 PaaS デプロイをセキュリティで保護する •CAFで提供されているService enablement framework(サービス有効化フレームワーク)をチェックリストのように用いる。 サービスの有効化フレームワーク |
最小特権の自動化と使用 | •アプリケーションとコントロール プレーン全体で最小特権を実装して、データの侵入や悪意のあるアクターのシナリオから保護します。 •DevSecOps を使用して自動化を実現し、人間の操作の必要性を最小限に抑える。 | •Azure環境等において必要最低限のアクセス権を付与するようにし、過度な権限は与えないようにする DevSecOpsとはDevOpsにセキュリティを統合して自動化する試み。迅速でセキュアなデリバリーが可能になる。 |
データの分類と暗号化 | •リスクに応じてデータを分類する。 •保存時と転送中に業界標準の暗号化を適用します。これにより、キーと証明書が安全に格納され、適切に管理されます。 | •重要なデータは監視できるように分類し、タグ・ラベル付けをする Azure でのデータの暗号化 |
システム セキュリティの監視、インシデント対応の計画 | •セキュリティ イベントと監査イベントを関連付け、アプリケーションの正常性をモデル化します。 •セキュリティ イベントと監査イベントを関連付け、アクティブな脅威を特定します。 •インシデントに対応するための自動化された手動の手順を確立します。 •追跡には、セキュリティ情報およびイベント管理 (SIEM) ツールを使用します。 | •セキュリティ、Azureリソース、アクティビティなどのログを記録して正常性を監視できるようにし、脅威を特定できるようにする。 •AzureではSentinelがSIEMに該当する。 Microsoft Sentinel とは Azure Sentinel の価格 |
エンドポイントを識別して保護する | •次のようなセキュリティ アプライアンスまたは Azure サービスを使用して、内部エンドポイントと外部エンドポイントのネットワーク整合性を監視および保護します。 •ファイアウォール •Web アプリケーション ファイアウォール •業界標準のアプローチを使用して、SlowLoris などの分散型サービス拒否 (DDoS) 攻撃などの一般的な攻撃ベクトルから保護します。 | •パブリックエンドポイントを保護、WAFの利用、DDoS攻撃の軽減、VMからインターネットへの直接アクセスを禁止する、CI/CDを実装してアプリサーバーにコードを直接後悔しないようにする Azure でのエンドポイント セキュリティのベスト プラクティス |
コード レベルの脆弱性から保護する | •クロスサイト スクリプティングや構造化クエリ言語 (SQL) インジェクションなど、コード レベルの脆弱性を特定して軽減します。 •運用ライフサイクルでは、次の機能を定期的に組み込む必要があります。 •セキュリティに関する修正 •コードベースと依存関係の修正プログラムの適用 | 以下にまとめて記載 |
潜在的な脅威をモデル化してテストする | •既知の脅威を特定して軽減するための手順を確立します。 •侵入テストを使用して脅威の軽減策を確認します。 •静的コード分析を使用して、将来の脆弱性を検出して防止します。 •コード スキャンを使用して、将来の脆弱性を検出して防止する | •次の流れで潜在的なリスク分析を行う。 1 – 基本的なセキュリティ制御に関する情報を収集する 2 – アプリケーションの設計を段階的に評価する 3 – 特定された脅威を軽減する アプリケーションの脅威分析 •侵入テストを実施してシステムの脆弱性を検出する。 侵入テスト (pentesting) •優先度の高い修正プログラムを迅速にデプロイできるよう自動化を強化する。またコードスキャンツールを導入し脆弱性に対処する。 コードのデプロイ |