Azure Arc 対応 Kubernetes のガバナンス、セキュリティ、およびコンプライアンスのベースライン
この記事では、Azure Arc 対応 Kubernetes のデプロイを構築するときに使用する必要がある、セキュリティ、ガバナンス、コンプライアンスに関する主要な設計上の考慮事項とベスト プラクティスについて説明します。 エンタープライズ規模のランディング ゾーンのドキュメントでは、ガバナンスとセキュリティを個別のトピックとして取り上げていますが、Azure Arc 対応 Kubernetes の場合、これらの重要な設計領域は単一のトピックにまとめられています。
Azure Policy と Microsoft Defender for Cloud は、ガードレール、コントロール、レポート、アラート、修復タスクを大規模に自動で実装できるようにするクラウドネイティブ ツールです。 それらを Azure Arc 対応 Kubernetes と組み合わせることで、ガバナンス ポリシーとセキュリティ チェックを、オンプレミスまたはマルチクラウド環境の任意の Kubernetes クラスターに拡張できます。
アーキテクチャ
次の図は、Azure Arc 対応 Kubernetes のセキュリティ、コンプライアンス、ガバナンスの設計領域を示す概念参照アーキテクチャを示しています。
設計上の考慮事項
ハイブリッド リソースとマルチクラウド リソースが Azure Resource Manager の一部になると、Azure からそれらを管理できます。 このセクションでは、Azure Arc 対応 Kubernetes クラスター リソースのセキュリティとガバナンスを計画する際に留意する必要がある設計上の考慮事項について説明します。
Azure ランディング ゾーンのセキュリティとガバナンスの設計領域を確認して、Azure Arc 対応 Kubernetes がガバナンス モデルとセキュリティ モデル全体に及ぼす影響を評価します。
エージェントのプロビジョニング
Azure Arc 対応 Kubernetes エージェントをプロビジョニングするための戦略を定義し、オンボード サービス プリンシパルを作成するときに最小特権の原則を使用します。 一括登録に自動化を使用することを検討してください。
エージェント管理
Azure Arc 対応 Kubernetes エージェントは、Azure Arc 対応 Kubernetes クラスターのハイブリッド操作において重要な役割を果たします。これは、Azure からクラスターを管理できるようになるためです。 エージェントの接続状態を追跡するソリューションを実装します。 Azure Arc 対応 Kubernetes エージェントをアップグレードするプロセスを必ず定義してください。
ロールベースのアクセス制御 (RBAC)
ハイブリッド クラスターでの日常的な操作を担当する組織内の管理ロール、運用ロール、開発者ロールを定義します。 各チームをアクションと責任にマッピングすることで、Azure ロールベースのアクセス制御 (RBAC) ロールと Kubernetes ClusterRoleBinding および RoleBinding が決まります。
この取り組みをサポートし、リソース整合性とインベントリ管理のガイダンスに基づいて定義した管理スコープ階層に制御を組み込むために、RACI マトリックスの使用を検討してください。
詳細については、「Azure Arc 対応 Kubernetes の ID 管理とアクセス管理」を参照してください。
シークレットおよび証明書の管理
Azure Key Vault を使用し、Container Storage Interface (CSI) を通じて Azure Arc 対応 Kubernetes クラスターにその拡張機能をデプロイすることで、シークレットと証明書をセキュリティで保護します。
データの保存場所
Azure Arc 対応 Kubernetes クラスターをプロビジョニングする予定の Azure リージョンを検討します。 リソースから収集されるデータを理解し、組織のデータ所在地の要件に基づいて適切に計画します。
GitOps 構成を有効にしてセキュリティで保護する
GitOps 構成では、必要なシステム状態が適用されます。これは、Arc 対応 Kubernetes クラスターのコンプライアンスを追跡するための重要なツールです。 GitOps 構成を使用する場合は、適切なネットワークとアクセス制御を使用してソース管理システムへのアクセスをセキュリティで保護することを検討してください。
ポリシーの管理とレポート
大規模な組織標準を監査および適用する Azure ポリシーに変換するハイブリッド Kubernetes クラスターのガバナンス計画を定義します。 たとえば、Kubernetes クラスターに sourceControlConfiguration ポリシーを適用して、定義済みの Git リポジトリからワークロードと構成の信頼できるソースをクラスターで確実に取得し、Azure Policy を使用してコンプライアンスを追跡することができます。
ログ管理戦略
管理規範の重要な設計領域の設計上の考慮事項とレコメンデーションを確認し、さらに分析と監査を行うために、ハイブリッド リソースから Log Analytics ワークスペースにメトリックとログを収集することを計画します。
脅威の防止とクラウド セキュリティ体制の管理
脅威の防止を適用し、セキュリティの構成ミスを検出し、コンプライアンスを追跡するための制御機能を導入します。 Azure のインテリジェンスを使用して、ハイブリッド ワークロードを脅威から保護します。 Microsoft Defender for Containers を有効にして、Azure Arc 対応 Kubernetes を含むすべてのサブスクリプションに対してセキュリティ ベースラインの監視、セキュリティ体制の管理、脅威の防止を有効にします。
クラスター アクセスのセキュリティ保護
Kubernetes API へのアクセスをセキュリティで保護する計画を立てます。 Azure Arc 対応 Kubernetes クラスター接続機能を使用すると、受信ポートを有効にしなくても、API サーバーに接続できます。
マイクロサービスの可観測性とセキュリティを向上させる
サービス メッシュの実装は、マイクロサービス ベースのアプリケーションの認証、認可、セキュリティ、可視性に役立ちます。 Azure Arc 対応 Kubernetes を使用すると、拡張機能としての Open Service Mesh (OSM) のデプロイが簡略化されます。
設計の推奨事項
このセクションでは、Azure Arc 対応 Kubernetes クラスター リソースのセキュリティとガバナンスを計画する際に従う必要がある設計の推奨事項について説明します。
エージェントのプロビジョニング
一括登録の自動化方法など、クラスターを Azure Arc にオンボードするための戦略を定義します。 デプロイの範囲を考慮し、目標、選択基準、成功基準、トレーニング計画、ロールバック、リスクを含む正式な計画を確立します。
サービス プリンシパルを使用して、継続的インテグレーションと継続的配置 (CI/CD) パイプラインの一部としてエージェント プロビジョニングを統合できます。 このサービス プリンシパルの特権を制限し、Kubernetes を Azure にオンボードするために必要なロール ("Kubernetes Cluster - Azure Arc Onboarding" ロール) のみを割り当てる必要があります。これは、プロセスの取り消しやリソースの削除ではなく、Kubernetes のオンボードにのみ使用できるためです。
エージェント管理
Azure Arc エージェントは、Azure Arc 対応 Kubernetes の主要なコンポーネントであり、セキュリティ、ガバナンス、管理操作で役割を果たす複数の論理コンポーネントを含みます。
エージェントが Azure へのハートビートの送信を停止したり、オフラインになったり、Azure への接続が失われたりした場合は、そのエージェントに対して操作タスクを実行することはできません。 これらのシナリオが発生した場合に通知を受け取る方法と、組織が対応する方法を計画します。
Azure アクティビティ ログを使用してリソース正常性アラートを設定し、エージェントのポッドの現在および過去の正常性状態に関する情報を保持できます。 エージェントを適切に管理する方法を理解するには、管理の重要な設計領域を確認します。
サービスがエージェントのハートビートを 15 分間受信していない場合、Azure Arc 対応 Kubernetes クラスターはオフラインとして表示されます。 エージェントが Azure Arc エンドポイントに安全に接続できるようにするには、Azure Arc 対応 Kubernetes 接続の重要な設計領域を確認してください。
ロールベースのアクセス制御 (RBAC)
Kubernetes クラスターをオンボードしたら、Azure Arc 対応 Kubernetes クラスター リソースに Azure RBAC を割り当てることができます。
"共同作成者" や "所有者" などのロールを割り当てるときは、最小特権の原則に従います。これらのロールは、"ClusterAdmin" としてアクションを実行し、クラスター全体に影響を与える拡張機能のデプロイなどの操作を実行できます。 これらのロールは、起こりうる "影響範囲" を制限したり、最終的にカスタム ロールに置き換えたりするには、注意して使用する必要があります。
Azure Monitor Log Analytics ワークスペースに送信される機密データにも、同じ RBAC 原則を適用する必要があります。 Azure Arc 対応 Kubernetes では、Log Analytics エージェントによって収集され、クラスターが登録されている Log Analytics ワークスペースに格納されたログ データへの RBAC アクセスを提供します。 きめ細かい Log Analytics ワークスペース アクセスを実行する方法については、Azure Monitor ログのデプロイの設計に関するページを参照してください。
Azure Arc 対応 Kubernetes クラスターを Microsoft Entra ID と統合すると、Azure ロールの割り当てを使用して、Azure Arc 対応 Kubernetes クラスター リソースに対するアクセス許可を持つユーザーをより細かく制御できます。
Note
この統合は、Kubernetes ClusterRoleBinding および RoleBinding オブジェクトの種類とネイティブに連携し、Kubernetes クラスターへの認可を、中央の ID およびアクセス管理サービスとして Microsoft Entra ID と効果的に統合します。 Microsoft Entra ID を使用すると、クラスターで行われた変更と認可イベントの完全な監査とトレースを取得できます。
Microsoft Entra ID と統合すると、高度なセキュリティ機能にアクセスすることもできます。この機能は、次の構成に使用する必要があります。
- Microsoft Entra ID を使用した条件付きアクセス。 条件付きアクセスの詳細については、「条件付きアクセスの概要」を参照してください。
- 昇格されたアクセス許可を必要とするタスクの Just-In-Time (JIT) アクセス規則。 Kubernetes で機密情報や重要なネットワーク構成設定に永続的にアクセスできるユーザーがいると、侵害されたアカウントや内部の脅威アクティビティへの経路が生じる可能性があります。 特権アクセス管理は、機密データへの永続的なアクセスや重要な構成設定へのアクセスを制限することで、組織を侵害から保護し、コンプライアンスのベスト プラクティスを満たすのに役立ちます。
シークレットおよび証明書の管理
アプリケーション コードまたはファイル システムにシークレットまたは証明書を格納しないでください。 シークレットはキー ストアに格納し、必要に応じて実行時にコンテナーに提供されるようにする必要があります。
Azure Arc 対応 Kubernetes クラスターでシークレットと証明書を管理するために、Azure Key Vault 拡張機能を使用することを検討してください。 Key Vault 拡張機能を使用すると、次の図に示すように、Kubernetes デプロイの証明書ライフサイクルを管理できます。
GitOps 構成を有効にしてセキュリティで保護する
GitOps は、運用に対して完全に自動化されたアプローチを採用するすべての IT 戦略の重要なコンポーネントです。 GitOps は、あらゆるデプロイに対してスケール、一貫性、追跡、監査の機能を提供します。
GitOps を使用すると、Git を使用してシステムの望ましい状態を宣言的に追跡および適用しながら、クラスターと環境間での複数のアプリケーションのデプロイを簡略化できます。 Git を単一の信頼できるソースとして使用し、すべてのデプロイの中心的なツールとして使用する場合は、クラスターの状態を追跡し、時間の経過に伴う変更と承認を考慮し、障害調査を容易にし、分散環境全体で自動化を有効にする最善の方法になります。
GitOps 構成を追加するときは、リポジトリとそのキーへのアクセスをセキュリティで保護し、ブランチのアクセス許可を設定してください。 詳細については、GitOps の重要な設計領域を確認してください。
ポリシーの管理とレポート
ポリシー主導のガバナンスは、クラウドネイティブ運用と Azure 向けの Microsoft クラウド導入フレームワークの基本原則です。 Azure Policy は、企業の標準を適用し、コンプライアンスを大規模に評価するメカニズムを提供します。 Azure Policy を通じて、デプロイの一貫性、コンプライアンス、コストの管理、セキュリティ体制のためにガバナンスを実装できます。 コンプライアンス ダッシュボードでは、環境の全体的な状態を大規模に集計したビューを表示し、クラスター レベルの修復機能を見つけることができます。
Azure Arc 対応 Kubernetes では、Azure Resource Management レイヤーでの Azure Policy がサポートされます。また、Open Policy Agent 用のゲートキーパーを拡張して、クラスター内ポリシーの適用もサポートされます。 任意の組み込みポリシーを実装して、大規模なコンプライアンスと適用をすばやく実現できます。 次の図は、Azure Policy によって大規模な適用と保護を Azure Arc 対応 Kubernetes クラスターに適用する方法を示しています。
Azure ポリシーのスコープ、およびそれを適用できる場所 (管理グループ、サブスクリプション、リソース グループ、または個々のリソース レベル) を理解してください。 Azure Arc 対応 Kubernetes には、Azure Policy の組み込みライブラリを使用します。 クラウド導入フレームワークのエンタープライズ規模に関するガイダンスで概要が説明されている推奨プラクティスに従って、管理グループの設計を作成します。
- 大規模な Azure Arc 対応 Kubernetes のビジネス、規制、セキュリティの要件を満たすために必要な Azure ポリシーを決定します。
- タグ付けを適用し、修復タスクを実行します。
- Azure Policy を使用して GitOps を適用し、構成を大規模に適用します。
- Azure Arc 対応 Kubernetes の Azure Policy 組み込み定義を理解し、評価します。
- Azure Policy の DeployIfNotExists ポリシーは、Azure Monitor を含む大規模な Arc 対応クラスターに拡張機能/管理サービス エージェントをプログラムでデプロイします。
- Azure Monitor Container Insights を有効にして、Azure Arc 対応 Kubernetes クラスターのコンプライアンスと運用監視を行います。
ログ管理戦略
Log Analytics ワークスペースのデプロイを設計および計画します。これは、データが収集、集計、および後で分析されるストレージです。 Log Analytics ワークスペースはデータの地理的な場所を表しているため、データ保有などの構成の分離とスコープのレベルをサポートするには、必要なワークスペースの数と、それらが組織構造にどのようにマップされるかを決定する必要があります。
クラウド導入フレームワークの管理と監視のベスト プラクティスに関するページで説明されているように、単一の Azure Monitor Log Analytics ワークスペースを使用して、一元化された RBAC、可視性、レポートを管理します。
詳細については、Azure Monitor ログのデプロイを設計するためのベスト プラクティスを確認してください。
脅威の防止とクラウド セキュリティ体制の管理
- Microsoft Defender for Cloud は、クラウド セキュリティ体制管理 (CSPM) とクラウド ワークロード保護プラットフォーム (CWPP) としてセグメント化された統合セキュリティ管理プラットフォームを提供します。 ハイブリッド ランディング ゾーンのセキュリティを強化するには、Azure やその他の場所でホストされているデータと資産を保護する必要があります。
- Microsoft Defender for Containers は、Microsoft Defender for Cloud の機能を Azure Arc 対応 Kubernetes に拡張します。 ハイブリッド ランディング ゾーンのセキュリティを強化するには、次のことを検討してください。
- Azure Arc 対応 Kubernetes 拡張機能を使用して、Microsoft Defender for Cloud で Arc 対応 Kubernetes リソースをオンボードします。
- すべてのサブスクリプションに対して Microsoft Defender for Containers プランを有効にします。 既定では、このプランは、同じサブスクリプションにオンボードされている Arc 対応 Kubernetes クラスターに Defender 拡張機能を自動的にデプロイするように構成されています。 必要に応じて、この構成を変更できます。
- Defender 拡張機能がクラスターにデプロイされていることを確認します。
- Microsoft Defender for Cloud および Microsoft Sentinel におけるセキュリティ情報とイベント管理 (SIEM) 統合の使用。
次の図は、Azure Arc 対応 Kubernetes クラスター リソース上の Microsoft Defender for Cloud の概念参照アーキテクチャを示しています。
コンテナー イメージを格納および管理するための中央プライベート Docker レジストリとして Microsoft Container Registry を使用する場合は、Microsoft Defender for Containers を使用してイメージの脆弱性をスキャンする必要があります。
ネットワーク トポロジと接続の重要な設計領域を確認してください。
クラスター アクセスのセキュリティ保護
Kubernetes API は、クラスターでアクションを実行する要求を受け取ります。 これはクラスターを操作および管理するための中心的な方法であるため、Kubernetes API は保護する必要がある重要な要素です。 Azure Arc 対応 Kubernetes クラスター接続を使用すると、ファイアウォールで受信ポートを有効にしなくても、どこからでも Azure Arc 対応 Kubernetes クラスターに安全に接続できます。 Azure Arc 対応 Kubernetes の API サーバーへのアクセスには、次の利点があります。
- 対話型デバッグとトラブルシューティングを有効にします。
- セルフホステッド エージェントを必要とせずに、Azure Pipelines、GitHub Actions、またはその他のホステッド CI/CD サービスのホステッド エージェント/ランナーの使用を有効にします。
- カスタムの場所やその上に作成されたその他のリソースの Azure サービスへのクラスター アクセスを提供します。
マイクロサービスの可観測性とセキュリティ
サービス メッシュを実装すると、サービス接続に認証と認可を導入できます。これにより、最小特権の原則が適用され、より安全な環境が作成されます。 既定では、ポッドはフラットな信頼されたネットワークに配置されます。 サービス メッシュの実装では、ネットワーク プロキシとして機能する一連のサイドカーがデプロイされます。 これらのサイドカーは、東西の通信を管理し、トラフィックを暗号化し、全体的なトラフィックの可観測性を向上させます。
サービス メッシュの実装により、次に対して保護できます。
- 不正侵入
- スニッフィング攻撃
- データ窃盗
- 偽装
詳細については、Open Service Mesh の実装の重要な設計領域を参照してください。
次のステップ
ハイブリッドおよびマルチクラウドのクラウド導入について詳しくは、次の記事を参照してください。
- Azure Arc 対応 Kubernetes の前提条件を検討します。
- Azure Arc 対応 Kubernetes の検証済み Kubernetes ディストリビューションを確認します。
- ハイブリッドおよびマルチクラウド環境を管理する方法について学習する。
- 既存の Kubernetes クラスターを Azure Arc に接続する方法について説明します。
- シークレットおよび証明書の管理について説明します。
- 脅威の防止とクラウド セキュリティ体制の管理について説明します。
- Kubernetes 用の Azure Policy を使用して、GKE に Azure Arc 接続クラスターとして GitOps 構成を適用する方法について説明します。
- Kubernetes 拡張機能を使用して、Azure Defender とクラスター API を Azure Arc 接続クラスターとして統合する方法について説明します。
- Kubernetes 拡張機能を使用して、Open Service Mesh (OSM) とクラスター API を Azure Arc 接続クラスターとして統合する方法について説明します。
- Azure Arc ラーニング パスを使用して Azure Arc の詳細を確認します。
- よく寄せられる質問に対する回答を見つけるには、よく寄せられる質問 - Azure Arc 対応に関するページを参照してください。