Azure での DevSecOps

Boards
Azure DevOps
Monitor
Pipelines
ポリシー

ソリューションのアイデア

さらなる情報、実装の詳細、価格ガイダンス、コード例を追加してこの記事を拡張することをお望みの場合は、GitHub のフィードバックでご連絡ください。

セキュリティは、あらゆる種類のカスタム データやクライアント データを保存する企業にとって最大の関心事です。 このデータの管理とインターフェイスに対応するソリューションは、セキュリティを考慮して開発する必要があります。 DevSecOps では、開発の最初からセキュリティのベスト プラクティスを利用し、シフト レフト戦略を採用して、最後の監査段階ではなく、最初の開発段階からセキュリティに重点を置きます。

アーキテクチャ図 このアーキテクチャの SVG をダウンロードしてください。

Data flow

  1. Azure Active Directory (AD) を、GitHub の ID プロバイダーとして構成できます。 セキュリティを強化するために、多要素認証を有効にすることができます。
  2. 開発者は、Azure Boards で追跡される作業項目とバグに対処して、GitHub Enterprise にコミットします。
  3. GitHub Enterprise では、GitHub Advanced Security と GitHub Open Source Security によるセキュリティと依存関係の自動スキャンを統合できます。
  4. pull request により、Azure Pipelines で CI ビルドと自動テストがトリガーされます。
  5. Azure Pipelines の CI ビルドにより、Docker コンテナー イメージが生成されます。これは、Azure Kubernetes Service がリリース時に使用する Azure Container Registry に保存されます。
  6. Azure Container Registry にアップロードすると、Azure Security Center によってイメージがスキャンされ、Azure ネイティブの脆弱性の有無と、プッシュされたイメージのセキュリティに関する推奨事項が確認されます。
  7. Azure Pipelines でのリリースでは、Terraform ツールが統合されます。このツールにより、クラウド インフラストラクチャをコードとして管理し、Azure Kubernetes Service、Application Gateway、Azure Cosmos DB などのリソースをプロビジョニングできます。
  8. Azure Pipelines は、セキュリティで保護されたサービス接続を介して Container Registry にアクセスすることで、Azure Kubernetes Service への継続的デリバリー (CD) を可能にします。
  9. Azure Policy を Azure Pipelines に適用してデプロイ後のゲートウェイを強制することも、AKS エンジンに直接適用してポリシーを強制することもできます。
  10. Azure Key Vault を使用して、実行時にシークレットと資格情報をアプリケーションに安全に挿入し、開発者から機密情報を抽象化します。
  11. エンド ユーザーは Azure AD B2C を使用して認証できます。これは、MFA を使用してセキュリティを強化し、コア サービスの負荷分散と保護が可能な Application Gateway を介してルーティングするために必要となります。
  12. Azure Monitor を使用した継続的監視がリリース パイプラインにも適用され、監視データに基づいてリリースのゲート管理やロールバックが行われます。 また、Azure Monitor はセキュリティ ログを取り込むので、疑わしいアクティビティに関するアラートを生成できます。
  13. DevSecOps フローの追加および最後の部分として、Azure Security Center では、ノード レベル (VM の脅威) と内部の両方で、Azure Kubernetes Service のアクティブな脅威の監視を実行できます。

コンポーネント

  • Azure Active Directory は、ID およびアクセス管理サービスを組織に提供します。これにより、Azure、GitHub Enterprise、Azure DevOps 内のリソースへのアクセスを制御できるようになります。
  • ソース コードは GitHub Enterprise でホストされており、開発者は組織内やオープンソース コミュニティ内で共同作業を行うことができます。 GitHub Enterprise は、記述したコードやオープンソースの依存関係に内在する脆弱性を特定する高度なセキュリティ機能を提供します
  • Azure Boards では、かんばんボードなどのアジャイル ツールを使用して、作業を計画し、その進行状況を追跡します。
  • Azure Pipelines は、アプリケーションを自動的にビルドしてリリースするために、継続的インテグレーションと継続的デリバリーのジョブを提供するサービスです。
  • Azure Container Registry で Docker コンテナー イメージをホストします。 このサービスには、Azure Security Center との統合によるコンテナー イメージのスキャンが含まれます。
  • Azure Kubernetes Service は、インフラストラクチャの可用性とセキュリティを確保するために、Azure によって完全に管理される Kubernetes クラスターを提供します。
  • Terraform は HashiCorp によって開発されたサードパーティ製品であり、Azure やその他の環境でインフラストラクチャの自動化を可能にします。
  • Azure Policy では、ポリシーの作成、割り当て、管理を行うことができます。 これらのポリシーは、リソースにさまざまなルールと効果を適用して、それらのリソースが会社の標準とサービス レベル アグリーメントに準拠した状態に保たれるようにします。 Azure Kubernetes Service とも統合されます。
  • Azure Key Vault を使用して、証明書、接続文字列、トークン、その他のシークレットを格納できます。 この機密情報は実行時にアプリケーションによって読み取られるので、開発者から抽象化されています。
  • Azure Cosmos DB は、グローバル分散型マルチモデル データベース サービスです。フル マネージドであり、MongoDB、Cassandra、SQL などの複数の API と互換性があります。
  • Azure Application Gateway は、高度なルーティング規則と Web アプリケーション ファイアウォール (WAF) をサポートする、レイヤー 7 のロード バランサーです。
  • Azure Monitor を使用すると、アプリケーションやインフラストラクチャの可用性とパフォーマンスに関する分析情報が得られます。 また、ソリューションの正常性を監視し、異常なアクティビティを早期に発見するためのシグナルにアクセスすることもできます。
  • Azure AD B2C を使用すると、アプリケーションのコンシューマー (エンド ユーザー) が組織に属していなくても、ID サービスを提供できます。

次のステップ

  • Azure Security Center を使用すると、デプロイされたコンテナーベースのソリューションに脅威と脆弱性の管理を提供できます。