personal notes

メモメモ

Azure IaaS 応用

Azure IaaS 応用のeLearningのメモ

Infrastructure as a Code

  • Azure Resource Manager(ARM)テンプレート
    • リソースのデプロイと変更を定義するJSONファイル
    • ARMテンプレートはポータル、CLIVisual Studioから渡すことが可能
    • 作成方法は以下の3つから
    • パラメータの種類
      • secureString: 実行時に見れなくなる。パスワードをパラメータに使う場合に使う
      • secureObject: 同上
      • parameters セクション
        • ARMを実行するときにユーザーが入力できるパラメータを設定できる
        • "[parameters('parameter名')]" という書き方で参照可能
      • variable セクション
      • resources セクション
        • デプロイまたは変更するリソースの情報を定義する
        • 関数を使用できる(数値演算、文字列連結)
      • outputs セクション
        • 出力を定義できる。メモなど。
    • デプロイはMarketplaceから実行
      • Marketplace にはデフォルトでいろいろなテンプレートが登録されている
      • VM作成時に渡すパラメータで指定した仮想ネットワークやサブネットが存在しない場合は自動で作成される

Configuration as a Code

セキュリティ

アクセス制御

  • Azureポリシー
    • リソースの利用に制限を加える
      • 例としてリソースをデプロイできるリージョンなど
  • ロールベースアクセス制御
    • 職務に必要な範囲のアクセス権限を付与
  • JITアクセス制御
    • RD向けの機能
  • 仮想ディスクの暗号化
    • VHDは悪意のある管理者によってローカルにコピーされると起動できてしまう
    • Azure Storage Service Encryption
      • ストレージアカウント上の暗号化。あくまでデータセンター側の暗号化なので、管理権限を持つ人がダウンロードすると暗号化されない
    • Azure Disk Encryption
      • VHDの暗号化
      • 暗号化のキーはAzure Key Vaultで管理
      • Key Vaultを使うためにAzure AD App IDが必要。ダミーでよい。
      • 一度ディスクを暗号化すると、ディスクを追加しても暗号化される
      • 暗号化によるオーバーヘッドは10%程度
  • 仮想マシンの更新
    • Windows Update
      • 22時間毎のチェック。適用時間を制御できない。
    • WSUS
      • 22時間毎のチェック。適用時間を制御できない。
      • サーバーを立てて運用
    • System Center Configuration Manager
      • サーバーを立てて運用
    • Update Management
  • マルウェア対策
  • セキュリティセンター

仮想マシンの監視

  • Azureサービス正常性
    • Azure サービスそのものの正常性を確認する
  • Activity ログと診断ログ
    • Activity ログはインフラのイベントを記録(操作ログ)
    • 診断ログ
      • サービスそのものが出力するログ
        • ロードバランサ、Cognitive サービス、など
      • 有効化する必要あり
      • Azureストレージと連携して、ログを溜めることができる
      • Windows以外の仮想マシンにも使える??
      • metric
        • メモリ使用量といったリソース利用量をグラフで見れる
      • 診断ログはグラフ化できないので、ストレージアカウントから取得する
  • アラートルール
    • 監視データをしきい値の条件にしてアラートを生成
      • アクティビティアラート
      • メトリクスアラート
  • Azure Log Analytics
    • データの収集、保管、分析と可視化が可能
    • エージェントによる収集なので、環境によらずログの収集が可能
    • 分析には独自クエリを使う
      • ソリューションパックという監視に便利なクエリが用意されている

ネットワークウォッチャー

  • ネットワーク帯域は仮想マシンのサイズと種類によって異なる
    • すべてのNICの合計で見積もる
    • 送信トラフィックのみ
    • 高速ネットワークは仮想NICを経由せずに物理NICに直接アクセスして使うことで通信を高速化する機能
  • ワークロードの最適化
    • Trafic Manager
      • DNSレベルの負荷分散
        • Azure、オンプレ、AWSなどどのサーバにも負荷分散が可能
        • リージョン毎の負荷分散
    • Application Gateway
      • レイヤ7での負荷分散(URL)
    • Azure ロードバランサ
      • レイヤ4での負荷分散(TCP、ポート番号レベル)
      • 仮想マシン間で着信トラフィックを分散。可用性セットが同じものである必要がある。
      • パブリックLBと内部LBがある
        • パブリックLB: パブリックIP → プライベートIP
        • 内部LB: プライベートIP → プライベートIP
      • ロードバランサの構成
        • フロントエンドIPはリクエストを受け付けるIPアドレス。複数持てる。
        • バックエンドプール: 分散先の仮想マシンIPアドレス
        • 正常性プローブ: ヘルスチェックのようなもの。分散先の稼働状況を把握し、問題があるIPアドレスをバックエンドプールから除外する
        • 負荷分散規則: 分散ルール
        • 受信NAT規則: ポート変換。リモートデスクトップのポート3389をそのまま公開するのは危険なので隠蔽する
      • ロードバランサのみIPv6対応している
        • IoTデバイスはIPv6でしか通信できないため
  • VPNの最適化
    • VPNゲートウェイはポリシーベースとルートベースがあるが、ルートベースの方が機能が多いためそれを選ぶべき
    • VPNはバックエンドでは2台構成
      • アクティブ・アクティブ構成にすると切替による待機時間がなくなる(通常、15〜20秒)
      • アクティブ・スタンバイ構成の場合、切替時間は60秒程度
  • ExpressRoute
    • ExpressRouteの接続ポイントは東京と大阪にある
    • 接続ポイントまでは、通信事業者と契約して接続をしてもらう必要がある
    • 10Gpbsまで対応可能で超高速
    • L2とL3で接続できる。L2は非常に高額
    • 使用量は、WAN回線料 + ER接続サービス料 + ER回線利用料 + ERゲートウェイ使用料
    • ExpressRouteはパブリックIP、プライベートIP、Microsoftのサービスでの接続が可能。10仮想ネットワークまで。
  • 仮想ネットワーク間接続
    • VPNとピアリングがあるが、最近はピアリングの方が便利
    • チェイニング
      • ハブアンドスポーク型ネットワークを前提
      • アプライアンスを一箇所にまとめるための機能

Azure仮想ネットワークのセキュリティ

  • 優先順位はユーザー定義ルート → BGPルート → システムルート
  • NSG(Network Security Group)は2次的なものとして使用する
    • パーソナルファイアウォールのようなもの
    • 割当は仮想ネットワークとNICの2つにできる
      • サブネットかNICかのどっちでドロップされているのかを意識すること
    • NSGは通信元の大元と接続先で設定する
      • 例えばクライアントPC → LB → 仮想マシン という場合は、クライアントPC と 仮想マシン間での通信として設定を考える。
  • 強制トンネル

ネットワークの監視

  • ネットワークウォッチャー
    • 仮想マシンと仮想ネットワークのパフォーマンスを監視する
    • パケットキャプチャ
    • 疎通確認