Azureの基礎　その１０

#Azure Policyでインフラストラクチャの標準を適用して監視する

出展：https://docs.microsoft.com/ja-jp/learn/modules/intro-to-governance/index

##Azure Policyを使用してITのコンプライアンスを定義する
・Azure Policy
　ポリシーの作成、割り当て、管理に使用するAzureサービス
　割り当て済みのポリシーでリソースの非準拠を評価することによって、ニーズが満たされる
　既定で許可し、明示的に拒否するシステム

###ポリシーの作成
・ポリシー定義　
　一般的なポリシー定義の一部
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/545315/fc48bf65-76ce-d809-db90-e205a6c67e54.png)
　ポリシー定義自体はJSONファイルとして表される
　ポータルで事前に定義された定義のいずれかを使用するか、独自に定義することができる
　（既存の定義を変更するか、最初から定義する）

###Azure Policyの適用
・Azure portalを使用するか、またはMicrosoft.PolicyInsights拡張子を追加することで Azure PowerShellなどのいずれかのコマンドラインツールを使用する

###準拠していないリソースの特定
・適用されたポリシー定義を使用して、Azure portalで、ポリシー割り当てに準拠していないリソースを特定することができる
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/545315/0fa0267a-544d-40de-5358-4577180f0b1b.png)
・コマンドラインツールを使用して、ポリシー割り当てに準拠していないリソースグループ内のリソースを識別することもできる
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/545315/c082123a-4dcf-8d14-8001-79d6d8bd4f32.png)
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/545315/dcd1e377-d92f-32d6-ff64-5318a59f6b1c.png)

###リソースのスコープに定義を割り当てる
・ポリシー定義を特定のスコープ内で実行するように割り当てる
・スコープの範囲は完全なサブスクリプションからリソースグループまで
・ポリシー割り当ては、すべての子リソースによって継承される
・サブスコープをポリシーの割り当てから除外できる
・ポリシーを割り当てるにはAzure Portal、PowerShell、またはAzure CLIを使用する

###Policyの効果
・Azure Policyによって最初に評価されるのは、Azure Resource Managerを使用したリソースの作成または更新の要求
・Policyの効果と処理内容
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/545315/2893f098-1454-8893-2b3b-f4aca74abbb5.png)

###ポリシー定義の削除
・ポータルを使用するか、または次に示すようにPowerShellコマンド「Remove-AzPolicyAssignment」を使用する

##イニシアチブを使用してポリシーを整理する
・イニシアチブ定義は、一連のポリシー定義またはポリシー定義のグループであり、大きな目標に向けてコンプライアンスの状態を追跡することができる
・ポリシーが1つの場合でも、時間の経過と共にポリシーの数が増えると予想される場合は、イニシアチブを使用すべき

###イニシアティブの定義
・一連のポリシーを1つの項目にグループ化することで、ポリシー定義の管理と割り当てのプロセスが簡略化される

##Azure Blueprintsを使用して標準リソースを定義する
・Azure Blueprintsによってクラウドアーキテクトや中央の情報技術部門は、組織の標準、パターン、要件を実装および順守した反復可能な一連のAzureリソースを定義できる
・Azure Blueprintsを使用すると、開発チームは新しい環境を迅速に構築して立ち上げることができる
・Azure Blueprintsを使用すると、ブループリント定義（何をデプロイする「必要がある」か）とブループリント割り当て（何がデプロイ「された」か）の間に関係が維持される。この結び付きによって、デプロイの追跡と監査が向上する
・Azure Blueprintsサービスは、一連のリソースグループ、ポリシー、ロールの割り当てのほか、Resource Managerテンプレートのデプロイから成り立つ。
・ブループリントは、個々のアーティファクトの種類をまとめたパッケージ
・ブループリントにより、そのパッケージの作成とバージョン管理を行うことができる（CI/CD パイプラインを使用して行うこともできる）
・最終的には、それぞれが、監査と追跡が可能なサブスクリプションに1回の操作で割り当てられる
・ブループリントにおいてデプロイの対象に含めるものはほぼすべて、Resource Managerテンプレートを使用して実現できる

###Azure Policyとの違い
・ブループリントは、一貫性とコンプライアンスを確保する再利用可能なAzureクラウドサービス、セキュリティ、デザインの実装に関連した、一連の標準、パターン、要件を作成するためのパッケージまたはコンテナー
・ポリシーは、デプロイ時のリソースプロパティと、既に存在するリソースのリソースプロパティに焦点を合わせた、既定での許可と明示的な拒否のシステム
・ポリシーは、数多くのアーティファクトの 1 つとしてブループリント定義に含めることができる

##コンプライアンス マネージャーを使用してサービスのコンプライアンスを調べる

###Microsoftプライバシーに関する声明
・Microsoftが処理する個人データ、Microsoftがそれを処理する方法、およびその目的について説明する
・MicrosoftとユーザーおよびMicrosoft製品（サービス、Web サイト、アプリ、ソフトウェア、サーバー、デバイスなど）とのやり取りに適用される
・目的は、MicrosoftがMicrosoftの製品やサービスの中で個人データを処理する方法を開示し、誠実に示すこと

###Microsoftセキュリティセンター
・MicrosoftがすべてのMicrosoftクラウド製品とサービスにおいてセキュリティ、プライバシー、コンプライアンス、および透明性をどのように実装し、サポートしているかに関する情報と詳細を含むWebサイトリソース

###Service Trust Portal（STP）とは
・Compliance Managerするサービスをホストしている
・監査レポートやMicrosoftのクラウドサービスに関連するその他のコンプライアンス関連情報を公開するためのMicrosoft の公開サイト

###コンプライアンス マネージャー
・Trust Portal内のワークフローベースのリスク評価ダッシュボード
・MicrosoftプロフェッショナルサービスやMicrosoftクラウドサービス（Office 365、Dynamics 365、Azureなど）に関連する組織の法規制順守アクティビティを追跡、割り当て、および検証することができる

##サービス正常性を監視する

###Azure Monitor
・クラウドおよびオンプレミス環境の利用統計情報を収集、分析し、それに対応する包括的なソリューションを提供することにより、アプリケーションの可用性とパフォーマンスを最大化する
・利用しているアプリケーションがどのように実行されているかを把握するのに役立つ
・アプリケーションに影響している問題点およびアプリケーションが依存しているリソースを事前に明らかにできる
・データソース
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/545315/2aa6c037-4434-9d62-091e-ffedb0f0f6d9.png)

・診断設定
　・ゲストレベルの監視を有効にする
　・パフォーマンス カウンター：パフォーマンス データを収集する
　・イベント ログ：さまざまなイベント ログを有効にする
　・クラッシュ ダンプ：有効または無効
　・シンク：さらに分析するために、診断データを他のサービスに送信する
　・エージェント：エージェントの設定を構成する

・アプリからさらにデータを取得する
　・Application Insights
　　・クラウドとオンプレミスのどちらにホストされているかにかかわらず、Webアプリケーションの可用性、パフォーマンス、使用状況を監視するサービス
　　・Log Analyticsのデータ分析プラットフォームを利用し、アプリケーションの運用に対する分析情報を提供する
　　・ユーザーからの報告を待たずにエラーを診断できる
　　・Application Insightsにはさまざまな開発ツールへの接続ポイントが含まれており、DevOpsプロセスをサポートするMicrosoft Visual Studioとも統合されている
　・コンテナーに対するAzure Monitor
　　・Azure Kubernetes Service（AKS）にホストされたマネージドKubernetesクラスターにデプロイされているコンテナーワークロードのパフォーマンスを監視するために設計されたサービス
　　・Kubernetesで使用可能なコントローラー、ノード、およびコンテナーからMetrics API経由でメモリやプロセッサメトリックを収集することにより、パフォーマンスを可視化する
　　・コンテナーのログも収集される
　・Azure Monitor for VMs
　　・Azure VMの大規模な監視を行うサービス
　　・WindowsおよびLinuxVMのパフォーマンスと正常性（さまざまなプロセスや、その他のリソースおよび外部プロセスに対する相互接続された依存関係など）が分析される
　　・オンプレミスでホストされているVM、および別のクラウドプロバイダーでホストされている VMを対象にしたパフォーマンスおよびアプリケーションの依存関係の監視がサポートされている

・アラートの条件への応答
　・アラート
　　・Azure Monitorでは、アラートを使用して重大な条件を事前に通知し、可能であれば是正措置を実行しようとする
　・自動スケーリング
　　・Azure Monitor では、自動スケーリングを使用して、アプリケーションに対する負荷を効率的に管理できる適切な量のリソースを確保できる
　　・自動スケーリングにより、Azure Monitorが収集したメトリックを使用して、負荷の増加に対応するために自動的にリソースを追加するタイミングを判別する規則を作成することができる
　　・使用されていないリソースを削除してAzureのコストを削減するためにも役立つ
　　・インスタンスの最小数と最大数を指定し、リソースを増減するタイミングを決定するロジックを指定できる

・Azure Service Health
　・Azureサービスに関する問題による影響を受けた場合にパーソナライズされたガイダンスとサポートを提供する
　・問題を通知するだけでなく、その影響の把握にも役立つほか、問題が解決した場合にはその旨の情報が随時配信される
　・使用中のリソースの可用性に影響を及ぼすおそれのある、予定されているメンテナンスや変更に備えることもできる
　・Azure Service Healthを構成するビュー
　　・Azureの状態
　　　・Azureサービスの正常性の状態をグローバルに確認できるビューが提供される
　　　・サービスの可用性に関する最新情報を取得できる
　　・Service Health
　　　・ユーザーが使用しているリージョン内のAzureサービスの状態を追跡するカスタマイズ可能なダッシュボードを提供する
　　　・進行中のサービスの問題、次に予定されている定期的なメンテナンス、関連する正常性の勧告などのアクティブなイベントを追跡できる
　　　・ダッシュボードを使用してサービスの正常性アラートを作成および管理できる
　　・Resource Health
　　　・Azureサービスのイシューによってリソースが影響を受けているときに、診断を行ったり、サポートを受けたりするのに役立つ
　　　・リソースの現在と過去の状態に関する詳細が提供される
　　　・問題を軽減するのに役立つサポートチームが提供される
　　　・リソースの正常性に関するパーソナライズされたダッシュボードを提供する
　　　・Azureサービスの問題によってユーザのリソースを使用できなくなった過去のすべての時間が表示される。そのため、SLAに違反していたかどうかを簡単に把握できる