Azure基礎のざっくりまとめ

要点を見直せるように、あと、復習を兼ねて。

##Azureの基本的な理解
Microsoftのクラウドコンピューティングプラットフォーム。


###クラウドコンピューティングとは
コンピューティングサービスをインターネット経由で、従量課金制の価格モデルを使用して提供すること（コンピューティング能力とストレージをレンタル）。

###クラウドコンピューティングのメリット
小～大企業は共通して、簡単かつ効率的に経営することを目標としているが、企業毎の個性やニーズはそれぞれ。
クラウドコンピューティングは各々のニーズを満たすサービスを提供している。

#####■スケーラブル
下記により、急な負荷にもサービス品質を低下することなく提供できる。
※スケーリングは手動／自動

- 垂直スケーリング<br>
CPUの追加やメモリ追加等によって、マシン自体の能力を上げる
- 水平スケーリング<br>
マシンを追加して多くの受信要求に備える

#####■弾力性
需要の増減に合わせて、自動的にリソースを追加したり削除できる。
必要な時に必要なリソースを割り当てて使用するため、コストが最小限に抑えられる。

#####■IT管理の負担軽減
ハードウェアのセットアップやメンテはプロバイダーの役割。

#####■信頼性
データのバックアップやディザスターリカバリ、レプリケーション等のサービスにより、災害発生しても顧客に影響を与えずにサービスを提供できる。

#####■グローバル
世界中にリージョンが配置されており冗長化データセンターを完備。これにより顧客に早いレスポンスを提供することができる。

#####■セキュリティ保護
建物やラック、警備員などの物理的なセキュリティや、ファイアウォールやアクセス制限などのデジタルセキュリティがある。

###コンプライアンスの条件と要件
利用可能なコンプライアンス認証は下記のとおり

- 刑事裁判情報サービス（CIJS）
- クラウドセキュリティアライアンス（CSA）のSTAR認定資格
- 一般データ保護規則（GDPR）
- EUモデル条項
- 医療保険の遂行性と責任に関する法律（HIPAA）
- 国際標準化機構（ISO）／国際電気標準会議（ICE）27018
- 多層クラウドセキュリティ（MTCS）シンガポール
- Service Organization Controls（SOC）1、2、3
- National Institute of Standards and Technology (NIST) Cybersecurity Framework (CSF)
- 英国政府の G-Cloud

###資本的支出 (CapEx) と運用費 (OpEx) 
- CapEx
初期費用。
事前に物理的なインフラ費用がかかる。
時間とともに価値が低下。

- OpEx
現在、サービスや製品に費やしている金額。
初期費用なし。

###クラウドデプロイモデル
- パブリック
一般的なモデル。
ローカルにハードウェアをもたず、メンテナンスもクラウドプロバイダー側。
従量課金制の価格であり、CapExコストなし。
パブリックでは満たせない法的要件がある可能性あり。


- プライベート
独自のデータセンターでクラウド構築。
ハードウェア、ソフトウェアの購入とメンテは自己責任。
セキュリティを完全に制御可能。
CapExコストとメンテナンス時コストあり。


- ハイブリッド
古いハードウェアはシステムを使い続けられる。
ローカルかクラウドで実行するか柔軟にできる。
設定と管理が複雑化する恐れあり。


###クラウドサービスの種類

||IaaS|PaaS|SaaS|
|---|---|---|---|
|サービス|インフラ|プラットフォーム|ソフトウェア|
|コスト|初期費用なし。使用した分に対しての支払い。|初期費用なし。使用した分に対しての支払い。|初期費用なし。月または年単位でサブスクリプションの支払い。|
|ユーザーの所有権|OS、ミドルウェア、およびアプリの購入、インストール、管理|独自アプリの管理、サーバーやインフラの管理責任なし|使用のみ、管理責任なし|
![コメント 2020-06-25 163357.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521911/ceab2a99-01e8-dda7-b0ae-1e529e9d41cc.png)


###Azureの課金について
使用した分だけを支払う。
サブスクリプション（Azureサービスの論理ユニット）は追加でき、サブスクリプション毎にリソースを管理できる。
複数のサブスクリプションを請求書セクションにまとめることができる。

###Azureサポートオプション
オンラインドキュメントやコミュニティサポート、YouTubeデモビデオの他に下記のサポートリソースがある。

|無料サポートリソース|概要|
|---|---|
|課金およびサブスクリプション管理||
|Azure Quickstart Center|知識向上のエクスペリエンス|
|Azure Service Health|Azureサービス関連の問題に関する分析情報|
|Azure Advisor|コストとパフォーマンス最適化する方法や推奨事項|

|有償プラン|ワークロード|リアクティブなテクニカルサポート|プロアクティブなテクニカルサポート|
|---|---|---|---|
|Developer|クリティカルでない|1営業日の応答|なし|
|Standard|運用|1時間の応答|なし|
|Professional Direct|ビジネスクリティカル|1時間の応答＋クリティカルケースの優先的な追跡|技術エキスパートプールへのアクセス|


##Azureのコアサービス
一般的なカテゴリ↓

- コンピューティング

|サービス|概要|
|---|---|
|Virtual Machines|Windows/Linux仮想マシン|
|Virtual Machine Scale Sets|ホストされているWindows/Linuxのスケーリング|
|Kubernetes Service|コンテナー化されたサービスを実行するVMのクラスターを管理|
|Service Fabric|分散システムプラットフォーム|
|Batch|並列および高パフォーマンスのコンピューティングアプリ用のマネージドサービス|
|Container Instances|サーバーやVMをプロビジョニングすることなく、コンテナー化されたアプリを実行|
|Functions|イベントドリブンのサーバーレスコンピューティングサービス|


- ネットワーク

|サービス|概要|
|---|---|
|Virtual Network|受信仮想プライベートネットワーク(VPN)接続にVMを接続する|
|Load Balancer|受信および送信接続を複数のアプリまたはサービスエンドポイントに分散|
|Application Gateway|アプリのセキュリティ向上、アプリサーバーファームの配信最適化|
|VPN Gateway|高パフォーマンスのVPNゲートウェイを介してVirtual Networkにアクセス|
|DNS|高速のDNS応答とドメインの高可用性|
|Content Delivery Network|顧客に対しての広帯域幅コンテンツをグローバルに提供|
|DDos Protection|ホストされたアプリを分散型サービス拒否（DDos）攻撃から保護|
|Traffic Manager|世界中のリージョンにネットワークトラフィックを分散|
|Express Route|セキュリティで保護された広帯域の専用接続を介してAzureに接続|
|Network Watcher|シナリオベースの分析を使用してネットワーク問題を監視および診断|
|Firewall|無制限の拡張性を備えたセキュリティと可用性が高いファイアウォール|
|Virtual WAN|ローカルとリモートのサイトを接続する統合されたWANを作成|


- ストレージ

|サービス|概要|
|---|---|
|Blob Storage|ビデオファイル、ビットマップなど大きなオブジェクト用|
|Fileストレージ|ファイル共有。ファイルサーバーみたくアクセスおよび管理できる|
|Queue Storage|アプリ間のメッセージのキューおよび確実な配信するためのデータストア|
|Table Storage|どのスキーマからも独立した非構造化データをホストするNoSQLストア|

- データベース

|サービス|概要|
|---|---|
|Cosmos DB|NosQLオプションをサポートするグローバルな分散データベース|
|SQL Database|自動スケーリング、統合インテリジェンス、堅牢なセキュリティを備える、フルマネージドのリレーショナルデータベース|
|Database for MySQL|高可用性とセキュリティを備えたフルマネージドのMySQLリレーショナルデータベース|
|Database for PostgreSQL|高可用性とセキュリティを備えたフルマネージドのPostgreSQLリレーショナルデータベース|
|Database for MariaDB|高可用性とセキュリティを備えたフルマネージドのMariaDBリレーショナルデータベース|
|SQL Server（VM上）|エンタープライズSQL Server|
|Synapse Analytics|すべてのスケールレベルで、無料の統合セキュリティを備えもつ完全に管理されたデータウェアハウス|
|Database Migration Service|アプリコードを変更せずにクラウドに移行|
|Cache for Redis|頻繁に使用される静的データをキャッシュ、データ～アプリ間の待機時間を短縮|



- Web

|サービス|概要|
|---|---|
|App Service|クラウドベースのWebアプリ作成|
|Notification Hubs|どのバックエンドからでもあらゆるプラットフォームへプッシュ通知|
|API Management|開発者やパートナー等にAPIを安全に公開|
|Cognitive Search|フルマネージドのサービスとしての検索|
|SignalR Service|リアルタイムWeb機能を追加|


- IOT

|サービス|概要|
|---|---|
|IoT Central|IoT資産の接続、管理、監視。グローバルなSaaSソリューション。|
|IoT Hub|IoTデバイスの安全な通信と監視|
|IoT Edge|クラウドベースのAIモデルを調べることなく、状態の変化に対応|

- ビッグデータ

|サービス|概要|
|---|---|
|Synapse Analytics|超並列処理を活用し、ペタバイト単位のデータに対して複雑なクエリを短時間で実行（大規模な分析）|
|HDInsight|管理対象クラスター（Hadoop）で大量のデータを処理|
|Databricks|Sparkベースの分析|

- 人工知能

|サービス|概要|
|---|---|
|Machine Learning|機械学習モデルの開発、トレーニング、テスト、デプロイ、管理|
|Machine Learning Studio|共同作業に対応する視覚的なワークスペース。|


##アーキテクチャとサービス保証
###リージョン
複数のデータセンターを含む、地球上の地理的領域。
※コンプライアンスや法的な目的に合致したアプリを構築する場合に使用できる特別なリージョンがある

###地域
以下のエリアで分割されている

- アメリカ
- ヨーロッパ
- アジア太平洋
- 中東およびアフリカ

###可用性ゾーン
リージョン内に物理的に分離されたデータセンター。
他のゾーンにレプリケートすることで高可用性を構築できる。

サポートされているリージョンは下記

- 米国中部
- 米国東部２
- 米国西部２
- 西ヨーロッパ
- フランス中部
- 北ヨーロッパ
- 東南アジア


###リージョンペア
同じ地域内の最低300マイル離れている別のリージョンと組み合わされている。
あるリージョンが自然災害などでサービス提供不可の状態になると、リージョンペア内の他のリージョンに自動的にフェールオーバーする。


###サービスレベルアグリーメント（SLA）
SLAという正式ドキュメントでAzureに適用されるパフォーマンス基準を定義する特定の条件をキャプチャする。
特定のパフォーマンス提供を提供するMicrosoftのコミットメントにつて明記。
製品およびサービス毎にSLAあり。
パフォーマンスを実現できない場合の対応方法も指定。

- パフォーマンスの目標
製品およびサービスに固有。

- アップタイムと接続性の保証
99.9%～99.999の範囲でのパフォーマンス目標のコミットメントを指定。


- サービスクレジット
保証として、Azure請求に割引きが適用される場合がある。

###Azureアプリの信頼性を向上させるには
ワークロード要件を知り、最適なAzure製品やサービスを選択し、各々のSLAを理解して達成可能なアプリケーションSLAを作成する。
ダウンタイムまたはデータ損失を回避するように障害に対応する回復性も重要な構成要素。
高可用性（システムが動作し実際に使用可能である時間帯）を実現するためのシステム障害防止手段を実装する必要もある。


##Azureサービスの管理
- Azure Portal
GUIを介してAzureを操作する

- Azure PowerShellおよびAzure CLI
コマンドラインおよびオートメーションベースでAzureを操作

- Azure Cloud Shell
Webベースのコマンドラインインターフェース

###ダッシュボード
Azureポータルに表示されるUIタイルのカスタマイズ可能なコレクション。
JSONファイルを変更することでダッシュボード編集も可能。
共有＋アクセス制御可能。


###Azureプレビュー機能
評価目的で提供。
ベータ版やプレリリース版の機能などをテストできる。

- プライベートプレビュー
Azure特定のお客様に評価目的で提供。
通常は招待制（サービスや製品チームから直接発行）

- パブリックプレビュー
Azureのすべてのお客様に評価目的で提供。

##コンピューティングオプション
- 仮想マシン
物理コンピュータのソフトウェアエミュレーション。
物理コンピュータと同じようにソフトウェアをインストールして実行可能。

- コンテナー
アプリケーションを実行するための仮想化環境。
VMと異なるのは、OSを含んでおらず、代わりにアプリ実行に必要なライブラリとコンポーネントをひとまとめにしている。
コンテナーを実行している既存のホストOSを使用。

- App Service
Azureのサービスとしてのプラットフォーム。

- サーバーレスコンピューティング
ユーザーのコードを実行するクラウドでホストされた実行環境。
基になるホスティング環境が完全に抽象化されている。（プラットフォームにて自動的に管理）
サービスのインスタンスを作成してコードを追加。
インフラの構成やメンテの必要なし。


###可用性セット
計画または計画外のメンテ中、アプリの可用性が維持されるように２つのVMを論理的にグループ化したもの。
料金は発生しない。
VMアーキテクチャの単一障害点がなくなるように、各ワークロードを１つの可用性セットに置くことが勧められている。

###仮想マシンスケールセット
大量のVMを数分で一元的に管理、構成、更新して、アプリの可用性を高めれれる。

###Azure Batch
大規模なジョブスケジューリングとコンピューティング管理を可能にする。
バッチ内容の内訳

- VMコンピューティングのプールを開始
- アプリのステージングデータをインストール
- ジョブと所有するすべてのタスクを実行
- エラーを識別
- 作業を再度キューにいれる
- 作業完了したらプールをスケールダウンする

###コンテナー
単一ホストマシンでアプリの複数のインスタンスを実行したい場合に最適。
コンテナーオーケストレーターで必要に応じてインスタンスを開始、停止、スケールアウト可能。

標準化されたDockerコンテナーに対応。
下記の方法でコンテナーを管理。

- Container Instances
コンテナーをアップロードし、利用状況に合わせて自動でスケールして直接実行できる。
仮想マシンを管理したり、追加サービスを構成する必要なし。

- Kubernetes Service
複数のコンテナーを分散するアーキテクチャを持つ。
完全なオーケストレーションサービス。
※オーケストレーション・・・多くのコンテナーを自動化して管理して、それらとやりとりするタスク

##Azure App Service
インフラ管理不要で、任意のPG言語を使用してWebアプリやバックグラウンドジョブ、モバイルバックエンド、RESTful APIを構築してホストできる。
自動スケーリングと高可用性が提供される。
WindowsとLinuxサポート。
GitHubやDebOPs、任意のGitリポジトリからの自動デプロイ。


###Azure Functions
サーバーレスコンピューティングの主要なコンポーネント。
REST要求、タイマー、別のAzureサービスからのメッセージによるイベントに応答して処理、数秒以内に処理したい場合に最適。
自動的に拡大縮小する。

###Azure Logic Apps
Functionsと同じく、イベントに基づいてロジックをトリガーする。
ビジネスシナリオを自動化するために設計されて、事前に定義されたロジックブロックから構築されたワークフローが実行される。
※Functionsはコードが実行される

Azureポータル、VisualStudio、ビジュアルデザイナーを使用してLogic Appワークフローを作成する（JSONファイルで保持）

##データストレージオプション
Azureを利用してデータを格納するメリット

- バックアップと回復の自動化
- 世界中で複製
- データ分析のサポート
- 暗号化
- 複数のデータ型
- 仮想ディスクデータストレージ
- ストレージ層（ホット、クール、アーカイブ）

###データの種類

- 構造化データ
スキーマに準拠したデータ。（リレーショナルデータともいう）
入力、クエリ、分析が容易。


- 半構造化データ
テーブル、行、列に収まらない。
非リレーショナルデータまたはNoSQLデータと呼ばれる。


- 非構造化データ
構造が指定されていないデータ。
PDF、JPG、JSONなど。

###暗号化
組織のセキュリティや規制コンプライアンスを満たすために、保存データ用のAzure Storage Service Encryption(SSE)がある。
データは各納前に暗号化、返す前に復号化。

###レプリケーション
ストレージアカウント作成時に指定。


##ネットワーク オプション
###疎結合アーキテクチャ
疎結合とは、お互いの関わり（結びつきの強さ）が薄く、分けやすいのが特徴です。（メンテナンスも簡略化）
n層アーキテクチャでは、アプリケーションが２つ以上の論理層に分割されている。
アーキテクチャ上、上の層から下の層へのアクセスは可能だが、下から上へはアクセスできない。
新しい層を挿入することもできる。

ex) 3層アーキテクチャの要求フロー
ユーザー　→　①Web層　→　②アプリ層　→　③データ層

①ブラウザーを介して、ユーザーにWebインターフェースを提供
②ビジネスロジックを実行
③データベースとその他ストレージ等

###仮想ネットワーク
Azure上に論理的に分離されたネットワーク。
１つのリージョン内に制限されるが、仮想ネットワークピアリングを使用すれば、異なるリージョンの複数の仮想ネットワークを相互に接続可能。
ソフトウェアを介して構成する。
１つ以上のサブネットに分割できる。
　※サブネットは個別セクション内にリソースを整理してセキュリティで保護するのに役立つ

###ネットワークセキュリティグループ
Azureリソースへの着信ネットワークトラフィックを許可または拒否する。

ex) Web層
Web層のVMではSSHポート（22）とHTTPポート（80）の着信トラフィックが許可されている場合、
すべてのソースから22と80ポートからの着信トラフィックが許可されることになるため、
信頼できるIPアドレスや限定のソースからのみ受け付けるようなネットワークセキュリティグループの構成が必須となる。


###可用性
サービスが中断することなく稼働する長さ。
高可用性とは、可用性が高い、すなわち長期間起動して実行できるサービスのこと。

###回復性
異常（自然災害、計画外メンテ、DDoS攻撃、トラフィック急増など）な状態でも、システムが機能を維持できる能力。

###Azure Load Balancer
プール内の各システムにトラフィックを均等に分散させるため、高可用性と回復性を実現するのに役立つ。
受信、送信の両方をサポートし、低遅延、高スループットを実現。
１つのシステムが使用不能になると、そのシステムへのトラフィック送信を停止し、そのほかの応答しているVMのいづれかにトラフィックを送信する。
Load Balancerをメンテする必要はなく、送信先や送信元ポートに基づいて転送ルールを定義するのみ。

###Azure Application Gateway
Webアプリ用に設計されたロードバランサー。
そのため、すべてのトラフィックがHTTPの場合に使用するのが最適。
URLベースのルーティング規則を適用して高度なシナリオを実現できる。

###Azure Traffic Manager
ユーザーに最も近いDNSサーバーを使用して、ユーザートラフィックを世界中に分散された待ち時間が最も少ないエンドポイントに送信する。
エンドポイントの正常性を監視しているため、いくら待ち時間が最も少ないエンドポイントでも、応答しなければ次のエンドポイントへトラフィックを送信する。


##Azureにおけるセキュリティ、責任、信頼
クラウドのセキュリティは、クラウドプロバイダーと顧客との共同責任。
データ、エンドポイント、アカウント、アクセス管理は常に顧客の責任。

###多層防御
情報への不正なアクセスを目的とする攻撃の進行を遅らせる戦略。
各層で保護が提供されるため、仮に１つの層が突破されても後続の層で備えることができる。
目的は、情報保護と情報へのアクセスが許可されていない人から情報を盗まれないようにすること。

層は同心円状の輪のセットとして視覚化でき、下記のとおり。

- 物理的なセキュリティ
防御の最前線。
データセンター内のコンピューティングハードウェアへのアクセスを制御する。

- IDとアクセス
インフラへのアクセスを制御する。
シングルサインオンと多要素認証を使用する。
イベントと変更を監査する。

- 境界
DDoS保護を使用して、エンドユーザーに対するサービス拒否が発生する前に攻撃フィルターを処理する。
境界ファイアウォールを使用して、ネットワークに対する悪意のある攻撃を識別して警告する。

- ネットワーク
リソース間の通信を制御する。
既定は拒否設定になっている。
必要に応じて、インバウンドインターネットアクセスを限定してアウトバウンドを制限する。
オンプレミスネットワークへのセキュリティで保護された接続を実装。

- コンピューティング
仮想マシンへのアクセスをセキュリティで保護する。
エンドポイント保護を実装して、システムにパッチ適用して最新状態を保つ。

- アプリケーション
セキュリティで保護された脆弱性のないものにする。
機密性の高いアプリケーションシークレットをセキュリティで保護されたストレージに格納。
セキュリティをすべてのアプリケーション開発の設計要件にする。

- データ
確実に適切なセキュリティで保護されるように格納する。
データへのアクセス制御。

###Azure Security Center
オンプレミスとAzureの両方において、すべてのサービスに対して脅威からの保護を提供する監視サービス。
シナリオとしては、「インシデント対応」「推奨事項を使用してセキュリティ強化」などが挙げられる。

|Free|Standard|
|---|---|
|Azureサブスクリプションの一部として使用可能。リソースの評価と推奨のみに制限。|継続的な監視、脅威の検出、ポートのJust-In-Timeアクセス制御など|
|無料|無料試用期間後は月額15ドル|

- 構成やリソース、ネットワークに基づいてセキュリティに関する推奨事項を提供
- オンプレミスやクラウドのワークロード全体のセキュリティを監視、新しいサービスはオンライン時にセキュリティを自動適用
- 継続的監視とセキュリティ評価をおこない、潜在的な脆弱性を特定する
- 機械学習を使用して、マルウェアを事前にブロック
- 受信攻撃の可能性を分析し、脅威や発生した可能性がある侵害後のアクティビティの調査を支援
- ポートに対するJust-In-Timeアクセス制御を提供して必要なトラフィックのみがネットワークで許可されるようにする


###Azure Active Directory
クラウドベースのIDサービス。
オンプレミスのActive Directoryと同期するためのサポートあり。
スタンドアロン使用もOK。
オンプレやクラウド問わず、すべてのアプリで同じ資格情報を共有可能。

- 認証
アプリやリソースにアクセスするためのIDの検証、セルフサービスパスワードリセット、多要素認証、カスタムの禁止パスワード一覧、スマートロックサービスなど。

- シングルサインオン
１つのIDと１つのパスワードを記憶し、複数のアプリにアクセスできるようにする。
仮に従業員が退職してもIDが一元化されているため、１つの手順で非アクティブなアカウントを無効にできる。

- アプリケーション管理
AADアプリケーションプロキシ、SSO、アクセスパネル、SaaSアプリを使用してクラウドおよびオンプレミスのアプリを管理。

- 企業間IDサービス
ゲストユーザーと外部パートナを管理しながら、自社の企業データに対するコントロールを維持。

- 企業消費者間IDサービス
アプリとサービス使用時にユーザーがサインアップおよびサインインする方法や自分のプロファイルを管理する方法をカスタマイズして制御。

- デバイス管理
クラウドまたはオンプレミスのデバイスが会社のデータにアクセスする方法を管理。

###多要素認証（MFA）
完全な認証のために、２つ以上の要素を必須とする。

- ユーザーが知っているもの
パスワードや質問の答え

- ユーザーが持っているもの
モバイルアプリ、トークンを生成するデバイス

- ユーザー自身
指紋や顔スキャンなど

###サービスへのIDの提供
一般的に、サービスIDを与えると資格証明は構成ファイルに埋め込まれますが、構成ファイルはセキュリティ保護されていないために公開されるリスクがある。
それをAzureADの下記の方法で解決している。

- サービスプリシンパル
サービスまたはアプリによって使用されるID。他のID同様にロールを割り当てることができる。

　　ID：認証可能なもの（ユーザー名／パスワード、秘密鍵や認定資格証で認証されるアプリやサーバなど）
　　プリシンパル：特定のロールや要求で機能するID。

- マネージドID<br>
すぐに作成でき、作成すると祖式のActive Directoryにアカウントが作成される。（サービス認証とアカウント管理を自動でおこなってくれる）

###ロールベースのアクセス制御
Azureに対して、きめ細かいアクセス管理を提供する。許可していくスタイル。
ロールとは、「読み取り専用」や「共同作成者」などのアクセス許可のセットであり、ユーザーに付与される。
サービスインスタンスレベルで個々の付与できるが、Resource Managerの階層で下位にも継承される。
サブスクリプション全体など、より高いスコープに割り当てられているロールはサービスインスタンスなどの子スコープへ継承される。

###Privileged Identity Management
リソースへのアクセスをロールベースのアクセス制御を使用して管理。
追加の有料サービスで、ロールの割り当てなどリソースへのアクセス確認を監視できる。


###暗号化
暗号化には「対象」と「非対称」という最上位レベルの２種類がある。
通常、保存時と転送時に暗号化される。

- 対象暗号化
暗号化と復号化で同一キーが使用される。

- 非対象暗号化
公開鍵と秘密鍵のペアが使用される。
トランスポート層セキュリティ（TLS）（HTTPS）やデータ署名などで使用される。

###Azureで暗号化するには
####生のストレージの暗号化
保存データ用のStorage Service Encryption(SSE)は組織のセキュリティとコンプライアンスコミットメントを満たすためのデータ保護に役立つ。
ストレージプラットフォームにおいて、保存される前に自動的に暗号化されて、データ取得前に復号化される。
暗号化や復号化、キー管理処理はサービスを使用するアプリに対して透過的（存在するものを存在しないように見せる）におこなわれる。

####仮想マシンディスクの暗号化
SSEでは、物理ディスクに書き込まれたデータに対する低レベルの暗号化は提供されるが、仮想ハードディスクの暗号化までは提供されない。
そのため、Azure Disk Encryption機能を使用する。
これはWindows標準のBitLockerとLinuxのdm-cryptを利用してOSとディスクボリュームの暗号化を提供する。
Azure Key vaultと統合しているため、ディスク暗号化キーとシークレットの制御および管理をおこなう。

####データベースの暗号化
透過的なデータ暗号化（TDE）は悪意あるアクティビティの脅威からAzure SQL DatabaseとData Warehouseをアプリに変更を加えることなく保護する。
バックアップ、トランザクションログファイルがリアルタイムに暗号化や復号化される。
デプロイ時は既定で有効になっている。
データベース暗号化キーと呼ばれる対象キーを使用してデータベース全体のストレージを暗号化する。
Azure Key Vaultに格納されているキーとともに、Bing Your Own Key(BYOK)もサポートされる。

暗号化はキーを使用して暗号化と復号化をおこなうが、キー自体の保護はAzure Key Vaultを使用する。
Key Vaultは一元的なクラウドサービスで、シークレット管理をおこなう。
Key Vaultへのアクセスはセキュリティで保護、アクセス許可が制御され、かつ、アクセスがログに記録されている。

###Azure証明書
トランスポート層セキュリティ（TLS）では、データの暗号化と復号化に証明書が使用される。
Azureで使用される証明書は「x.509 v3」
信頼された証明機関によって署名されることも、自己署名することもできる。
ただし、自己署名証明書は作成も自身であるため、規定では信頼されないため、クラウドサービスを開発してテストするときなどに特化しての使用が推奨されている。
これらの証明書には秘密鍵と公開鍵を含めることができる。

###証明書の種類
証明書はKey Vaultに格納できる。また、Key Vaultで証明書を作成したりインポートもできる。
選択した発行者（Key Vaultパートナー X509証明書プロバイダーで証明書を自動的に更新できる。
使用目的は下記のとおり。

- サービス証明書：クラウドサービスに対して使用
- 管理証明書：管理APIでの認証に使用


###ネットワーク保護
すべてのアーキテクチャにおいて、攻撃や未承認のアクセスからネットワークを保護する必要がある。
これまでのとおり、セキュリティに対して階層型アプローチに重点が置かれているが、これはネットワーク層でも同じことが言える。

ネットワーク境界のセキュリティ保護やサービス間のネットワークセキュリティでは不十分といえる。
階層型アプローチで複数レベルの保護体制を準備する必要がある。

###ファイアウォール
各要求の送信元IPアドレスに基づいて、サーバーへのアクセスを許可するサービス。

####Azure Firewall
Azure virtual Networkリソースを保護するクラウドベースのマネージドネットワークセキュリティサービス。
組み込みの高可用性とクラウドによる無制限のスケーラビリティを備えている。

###Azure Application Gateway
ロードバランサー。
Webサイトの一般的な既知の脆弱性に対する保護を提供。
Webアプリケーションファイアウォール(WAF)に含まれる。

###ネットワーク仮想アプライアンス
ハードウェアファイアウォールアプライアンスと同様。
HTTP以外のサービスまたは詳細な構成に最適なオプション。

###Azure DDoS Protection
Microsoftのグローバルなネットワークのスケールと弾力性を利用して、あらゆるリージョンでDDoSの軽減能力を発揮する。
サービスの可用性に影響を及ぼす前にAzureネットワークエッジのトラフィックを監視してアプリを保護する。
攻撃の検出から数分以内にAzure Monitorメトリックを使用して通知する。

|Basicレベル|Standardレベル|
|---|---|
|自動的に有効になる。常時トラフィックの監視。一般的なネットワークレベル攻撃のリアルタイム軽減。Microsoftオンラインサービスと同等の防御。|特にAzure Virtual Networkリソースに特化してチューニングされた追加の軽減機能を提供。帯域幅消費型攻撃の軽減。プロトコル攻撃の軽減。リソースレイヤーの攻撃軽減。|

###仮想ネットワークのセキュリティ
ネットワークセキュリティグループを使ってAzureリソースが送受信するトラフィックのフィルター処理をおこなう。
※サービスエンドポイントへのアクセス制御を合せることで、サービスへのパブリックインターネットアクセスを完全に除去できる。

###ネットワーク統合
Azure仮想ネットワークとオンプレミスのVPNデバイス間の接続をおこなうには、Azure ExpressRouteを使用する。
接続プロバイダーが支援するプライベート接続を介して、オンプレミスのネットワークをMicrosoftクラウドに拡張できる。
Azure、Office365、Dynamics365への接続を確立できる。
プライベート回線でトラフィックを送信することで、オンプレミスの通信セキュリティが向上する。


###Microsoft Azure Information Protection（AIP）
組織がドキュメントと電子メールにラベルを適用して分類することで、必要に応じて保護することができるソリューション。

###Azure Advanced Threat Protection（ATP）
クラウドベースのセキュリティソリューション。
組織を対象とする高度な脅威や侵害されたID、悪意のあるインサイダーによるアクションを識別、検出、調査支援をおこなう。
独自のポータルでアクティビティを監視する。
ドメインコントローラにインストールされているATPセンサーにより、専用サーバーを必要とせずにドメインコントローラのトラフィックを監視できる。

###Microsoftセキュリティ開発ライフサイクル（SDL）
開発プロセスのすべてのフェーズに渡ってセキュリティとプライバシーの考慮事項を導入できる。
そうすることにより、開発者は製品やサービスの脆弱性の可能性を軽減し、同じセキュリティの誤りを回避することができる。

- セキュリティ要件を定義する
- メトリックとコンプライアンスレポートを定義する
- 脅威モデリングを実行する
- 設計要件を確立する
- 暗号化標準を定義して使用する
- サードパーティのコンポーネントの使用によるセキュリティリスクを管理する
- 承認済みのツールを使用する
- スタティック分析セキュリティテストを実行する
- 動的分析セキュリティテストを実行する
- 侵入テストを実行する
- 標準インシデント対応プロセスを確立する


##Azureポリシーでインフラ標準化と監視
###Azure Policy
一貫性のあるインフラの計画はポリシー設定からスタートするが、Azure Policyはポリシーの作成、割り当て、管理に使用するサービス。
これにより、リソースに様々なルールと効果が適用される。
RBACと似ているが、RBACは様々なスコープでのユーザー操作に焦点が当てられている。
Policyはデプロイ中のプロパティに焦点が当てられており、既定では許可になっており、明示的に拒否していく。

####ポリシー定義
評価対象と対処方法を表す。
ポリシー定義はJSONファイルとして表される。
適用するにはAzure PortalやMicrosof.PolicyInsights拡張子を追加してAzure PowerShellなどのコマンドラインツールを使用して適用する。

たとえば、、、

- すべてのパブリックWebサイトをHTTPSで確実に保護する
- 特定の種類のストレージが作成されないようにする
- 特定のバージョンのSQL Serverの使用を強制する

準拠していないリソースは、Azure Portal内のポリシー割り当ての「リソースコンプライアンス」から確認できる。
また、コマンドラインツールからでも確認可能。

####イニシアチブを使用してポリシーを整理できる
イニシアチブはAzure Policyとともに動作する。
ポリシー数が増えると予想される場合は、イニシアチブの使用が推奨されている。

###企業のガバナンス管理
アクセス管理はサブスクリプションレベルで行われるため、組織はそれぞれの責任と要件に基づいて特定の方法で会社の各部門を構成できる。

###Azure管理グループ
複数のAzureサブスクリプション全体のアクセス、ポリシー、コンプライアンスを管理するためのコンテナー。
これを使用すると、サブスクリプションレベルよりもさらに高度な分類が可能になる。
管理グループの全てのサブスクリプションは、管理グループに適用された条件を自動的に継承する。

###Azure Blueprints
一貫性とコンプライアンスを確保する再利用可能なAzureクラウドサービス、セキュリティ、デザインの実装に関連した、焦点を定めた一定の標準、パターン、要件を作成するためのパッケージまたはコンテナー。
監査やトレーサビリティ、およびデプロイの準拠を容易にする。（要は環境の設定を容易にする）
様々なリソーステンプレートやそのほかのアーティファクトのデプロイを宣言によって調整する方法。

###構築の基盤となるリソースの管理
Microsoftは4つのソースを使用して完全な透明性を実現する。

- Microsoftプライバシーに関する声明
個人データやMicrosoftがそれを処理する方法や目的を説明。

- Microsoftセキュリティセンター
クラウド製品とサービスのセキュリティ、プライバシー、コンプライアンスおよび透明性の実装方法やサポートに関する詳細を含むWebサイト。

- Service Trust Portal
Compliance Managerサービスをホスト。
クラウドサービスに関するその他のコンプライアンス関連情報を公開するためのMicrosoft公開サイト。

- コンプライアンスマネージャ
Service Trust Portal 内のワークフローベースのリスク評価ダッシュボード。

###サービス正常性の監視
下記の主要サービスあり。

- Azure Monitor
クラウドおよびオンプレミス環境の利用統計情報の収集や分析やそれに対応する包括的なソリューションを提供し、アプリの可用性とパフォーマンスを最大化する。

- Azure Service Health
Azureサービスに関する問題による影響を受けた場合にパーソナライズされたガイダンスとサポートを提供する。
Azureの状態を利用することで、サービス可用性に関する最新情報を取得できる。

##ResourceManagerでのリソース管理
###リソースロック
変更または削除を阻止する。
削除（削除を阻止）、または、読み取り専用（読み取るのみ）を設定できる。
下位に継承される。

###リソースグループ
- リソースは１うのリソースグループのみ存在できる
- リソースグループ間でリソースを移動できる
- ロールベースのアクセス制御を適用できる
- リソースグループを入れ子にできない

###タグ
- タグを使用してコストセンターとリソースを関連づけができる
- Azure Automationとの連動でタグを使用してメンテナンス期間をスケジューリングできる
- 環境と部署の関連付けを保存できる
- 一部のリソースではタグは使用できない
- タグは継承されない。

##コスト予測と支出最適化
リソースをプロビジョニングすると、そのリソースに対して１つまたは複数の測定のインスタンスが作成される。
この測定で、リソースの使用状況を追跡して請求書の計算に使用される。

測定と料金は製品毎の異なる。
多くの場合、リソースのサイズまたは容量に応じて料金レベルが異なる。
リソースは常に使用状況に基づいて課金される。
ex) 仮想マシンの場合
仮想マシンの割り当てを解除（コンピューティングリソースがない状態）した場合、仮想マシンは実行されないため、コンピューティング時間、I/O読み取り、書き込み、プライベートIPアドレスに対しての課金は発生しないが、ディスクストレージコストは発生する。

###Azureの課金ゾーン
ほとんどの場合、着信データ転送（Azureデータセンター内に入ってくるデータ）は無料。
送信データ転送の場合、データ転送料金は課金ゾーンに基づく。

|ゾーン|区分|
|---|---|
|ゾーン１|米国、米国政府、ヨーロッパ、カナダ、英国、フランス、スイス|
|ゾーン２|東アジア、東南アジア、日本、オーストラリア、インド、韓国|
|ゾーン３|ブラジル、南アフリカ、アラブ首長国連邦|
|ドイツゾーン１|ドイツ|

※ほとんどのゾーンで、送信5GB/月は無料。


###Azure料金計算ツール
Azure利用料金は完全に透過的であるため、見積もるにはAzure料金計算ツール（Webベースで無料）を利用する。
作成した見積もりはエクスポートやURL経由で共有できる。

###Azure Advisor
高可用性、セキュリティ、パフォーマンス、オペレーショナルエクセレンス、コストについての推奨事項を提供。
Azureに組み込まれている無料のサービス。

###Azure Cost Management
これまでに支払われた料金の明細を分析して、設定されている予算との差異を追跡する。
利用中のクラウドのコストが発生する場所についてより詳しい分析情報が得られる。
予算を設定して、レポートをスケジュール、コスト領域を分析できる。
Azureに組み込まれている無料のサービス。

###総保有コスト(TCO)計算ツール
ワークロード定義（オンプレミスのインフラ詳細）や前提条件を調整して、コスト削減を予測する。

###インフラコスト削減
静的で予測可能なVMワークロードがある場合は、予約インスタンスを使用すると、従量課金制のコスト最大70%~80％の節約が見込める。

Azure製品やサービス、リソースコストは場所やリージョンによって異なる。

業務時間外に仮想マシンの割り当てを解除する。

PaaSまたはSaaSに移行する。（コスト：IaaS > PaaS,SaaS）

###ライセンスコスト
####SQL Server Developer Edition
非運用環境用の無料の製品（Enterprise Editionと同じ機能）でライセンスコストを大幅に削減できる。