パイプラインのセキュリティを実装する
コードを保護し、資格情報とシークレットを保護することは基本的な要件です。 フィッシングはますます巧妙になっています。 次のリストは、チームが自身を保護するために適用することが推奨される運用方法を示しています。
- 認証と認可。 内部ドメイン間でも多要素認証 (MFA) を使用し、Azure PowerShell Just Enough Administration (JEA) などの Just-In-Time 管理ツールを使用して、特権エスカレーションから保護します。 ユーザー アカウントごとに異なるパスワードを使用すると、アクセス資格情報のセットが盗まれた場合の被害を抑えることができます。
- CI/CD リリース パイプライン。 リリース パイプラインと周期が破損している場合は、このパイプラインを使用して、インフラストラクチャを再構築します。 Azure Resource Manager を使用して Infrastructure as Code (IaC) を管理するか、Azure platform as a service (PaaS) または同様のサービスを使用します。 パイプラインによって、自動的に新しいインスタンスが作成されてから破棄されます。 これにより、攻撃者がインフラストラクチャ内に悪意のあるコードを隠すことができる場所が制限されます。 Azure DevOps を使用すると、パイプライン内のシークレットが暗号化されます。 ベスト プラクティスとして、他の資格情報と同様にパスワードをローテーションすることをお勧めします。
- アクセス許可の管理。 ソース コードの場合と同じように、ロールベースのアクセス制御 (RBAC) を使用して、パイプラインをセキュリティで保護するためのアクセス許可を管理できます。 これにより、運用環境で使用するビルドとリリースの定義の編集を制御できます。
- 動的スキャン。 これは、既知の攻撃パターンを使用して実行中のアプリケーションをテストするプロセスです。 リリースの一部として侵入テストを実装できます。 また、Open Web Application Security Project (OWASP) Foundation などのセキュリティ プロジェクトを最新の状態に保ち、これらのプロジェクトを自分のプロセスに導入することもできます。
- 運用環境の監視。 これは、重要な DevOps プラクティスです。 侵入に関連する異常を検出するための特殊なサービスは、"セキュリティ情報イベント管理"として知られています。 Microsoft Defender for Cloud は、Azure クラウドに関連するセキュリティ インシデントに焦点を当てています。
注意
どのような場合でも、Azure Resource Manager テンプレートまたはその他のコードベースの構成を使用します。 テンプレートに変更を加えることで変更を追跡可能かつ反復可能するなどの、IaC のベスト プラクティスを実装します。 また、Desired State Configuration (DSC)、Azure Automation、Azure とシームレスに統合できるその他のサードパーティ製ツールや製品など、プロビジョニングと構成のテクノロジを使用することもできます。