Azure Web Appsでの改ざん検知をWeb ジョブとSchedulerを組み合わせで実施する

Azure App Service の Web App でPowershellを使って簡易的に改ざん検知を実施する方法をサンプルスクリプトも含めて紹介します。 概要 Powershell で、改ざんされていないファイル群のハッシュを作成し保存し、定期的に、そのデータと、現在のハッシュデータを比較し、相違があればメールを送信するというスクリプトサンプルです。 事前準備 このスクリプトを実行するにあたって、別途SMTPサーバーが必要です。自前のSMTPサーバーを利用しても、Azureのマーケットプレイスで取得できる、Sendgrid (無料プランでOKです)を使っても構いません(以下の例では、Sendgridを利用しています)。 手順1スクリプトの作成 作成するPowershell スクリプトは、以下の2つです。 ハッシュ情報DBの作成Powershellスクリプト(例:CreateHashDb.ps1) $loc = "D:\home\site\wwwroot" $ignore = @("bin",”temp2”); $ignoreExt =@("*.exe"); $dbPath = "D:\home\site\integritychecker.xml"; $files = Get-ChildItem -Path $loc -Recurse -Exclude $ignoreExt | ? { !$_.PSIsContainer } | % { $relative = $_.FullName.Replace($loc,""); $nomatch = $true; foreach ($folder in $ignore) {…


Azure RemoteApp というサービスを知っていますか?

こんにちは & はじめまして。マイクロソフトでインフラ系技術を担当している前島です。   Azure RemoteApp というサービスをご存知でしょうか? 一言でいうと、マイクロソフトが 提供する DaaS (Desktop-as-a-Service) です。”デスクトップ環境(≒アプリケーションやデータを動かす環境)”を、パブリッククラウドである Azure 上で提供するものであり、たとえばこんな使い方ができます。 外出先や自宅から、安全に社内システムにアクセスする タブレット端末(iOS や Android)から、 Windows ネイティブアプリを改修することなく利用する 社内 Web アプリの IE11 化を進行中のお客様が、IE11 先行提供環境として利用する 手元の端末を汚すことなく、さまざまなアプリケーションを利用したりインターネットを閲覧する環境を提供する   そんな Azure RemoteApp ですが、つい先日1才になりました!! (2014年12月12日より正式サービス開始) 1周年を無事に迎え、国内外多くの利用実績も出てきていますので、これから 改めて Azure RemoteApp に関するいろいろな情報を発信していきます。   第1回となる今回は、すでに公開されているお役立ち記事を、リンク集としてご紹介します。   ■ Azure RemoteApp の概要を知りたい そもそも Azure RemoteApp って聞いたことないよ!という方向けに、サービスの概要や特徴を気軽に理解できる情報はこちら。   <【ウェブセミナー】いつでもどこからでも安全にモバイル ワークしよう! 仮想デスクトップをクラウドで管理する「Azure RemoteApp」のはじめかた> https://info.microsoft.com/JA-Azure-WBNR-FY16-11Nov-26-Azure-RemoteApp.html?ls=Website&lsd=AzureWebsite…


どれくらいリソースを使用したのかを手っ取り早く調査

利用時間やデータ転送量に応じて料金が課金されるクラウドサービスを使っていると「現在の処理フローでどれくらいのリソースを使用しているのか?」「もし、処理フローを変えたら、リソースの使用量はどれくらい変化するのか?」が気になる場面が少なからずありますよね。特に、定常的に1日に何回も繰り返されるような操作であれば、なおさらです。 ここでは、Azure CLI を使って、Azure の使用量を取得する方法の一つをご紹介します。今回は、ARM (Azure Resource Manager) を対象にしています。 ■下準備 まずは、 https://azure.microsoft.com/ja-jp/documentation/articles/xplat-cli-install/ を参考に、Azure CLI をインストールしましょう。Azure CLI は、Windows に限らず、Max OS X でも Linux でも実行できます。各プラットフォーム用にインストーラが用意されています。 インストールが終わったら、 https://azure.microsoft.com/ja-jp/documentation/articles/xplat-cli-connect/ を参考に、Azure サブスクリプションにログインします。 基本的なパターンは、コマンドラインから、 >azure login ログインができたら、モードを ARM に切り替えます。 >azure config mode arm エラーが出なければ、ここまでは成功です。 ■使用量データの取得方法の基本形 たとえば、2015年12月06日から2015年12月08日の使用量データを取得する場合は、 >azure usage list –reportedStartTime 2015-12-06 –reportedEndTime 2015-12-08 –json 取得されるデータはJSON形式で、時刻は UTC です。デフォルトでは、粒度は1日単位になります。 下記は、取得できるデータのサンプルの、ごく一部分です。 このサンプルからは、samplestorage と言う名前の Storage…


Operational Insights の Linux エージェントが Public Preview に、Zabbix や Nagios との連携も

みなさん、こんにちは。 いよいよ、Operational Insights の Linux エージェントが Public Preview になりました。   Syslogを利用したログ収集に加え、プロセッサ、メモリ、ディスクといったパフォーマンスデータの可視化ができるようになっています。まずは、Operational Insights のポータルサイトから Download Linux Agent のリンクを辿ると、GitHub を参照することでできます。 エージェントのセットアップ方法や利用シナリオなどもこちらの GitHub から確認することができます。  対象となる Linux サーバーに Apache や MySQL がインストールされている場合、Apache や MySQL 関連のパフォーマンスも監視対象に含めることができます。また、Zabbix, Nagios がインストールされている環境であれば、Zabbix や Nagios のアラートメッセージを Operational Insights に転送することができます。   ということで、Zabbix がインストールされている CentOS 7 の環境に Operational Insights のエージェントを入れてみました。 インストール自体は、Linux 上で 以下のコマンドを実行するだけです。   $> wget https://github.com/MSFTOSSMgmt/OMS-Agent-for-Linux/releases/download/1.0.0-47/omsagent-1.0.0-47.universal.x64.sh…


高速ストレージ、Azure Premium Storage

IOPS やスループットなど、ストレージの性能が気になる利用シーンでは、Azure Premium Storage のご利用をお勧めします。 Azure Premium Storageは、Azure (Standard) Storage よりも格段に優れた性能を発揮します。 Azure 東日本リージョン、Azure 西日本リージョンともに、既にご利用いただけます。 さて、どれくらいの性能が期待できるのでしょうか? 作る Disk の容量に応じて下記の3段階で Disk Type が決まります。 Disk Type が決まると性能も決まります。 https://azure.microsoft.com/en-us/documentation/articles/storage-premium-storage-preview-portal/ より高い性能を発揮させるために、これらを束ねることもできます。 たとえば、P30 を 4 個束ねることで、20,000 IOPS、800 MB/秒 になります。 ※ IO 単位は 256 KB です。ゆえに、たとえば 1,200 KB の IO を試みた場合は、5 IOPS になります。 束ねたものは、たとえば Windows Server OS では F: ドライブとして利用することができます。 さて、ストレージ性能は、仮想マシンのサイズにも依存しています。 そして、Azure Premium…


ServerCore のログオンシェルを変える

WindowsServer 2008 より導入された ServerCore ではサービスの実行に直接関係のないコンポーネントをあえてインストールしないことでディスク容量の削減と余計なパッチ適用の回避を実現しています。ServerCore でインストールされた Windows にコンソールから、あるいは RDP 経由でログオンするといつものエクスプローラではなく簡素なコマンドプロンプトウィンドウだけが表示され、各種コマンドや sconfig によるメニューによるキャラクタベースでの管理となります。  このとき、コマンドプロンプトウィンドウで動作するシェルはいつもながらの CMD.EXE です。 PowerShell を使いたい場合、C>のプロンプトに powershell.exe を入力、PowerShellを起動してからようやく使用可能になります。このような迂遠な操作を避け、ちょくせつ PowerShell が動いていてほしいものです。デスクトップエクスペリエンスの入った Windows ならこれは簡単です。チェックボックス一つで PowerShell をデフォルトのシェルにすることができます。 では、ServerCore ではどうすればいいでしょう。それを探ってみました。 ● Windows Server 2008 R2 の場合(全ユーザ) Windows Server 2008 R2 では、以下のレジストリでログオン時に起動するシェルが決定されます。 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon ここの「Shell」という値に、シェルとなるプログラムの実行ファイル名が記入されています。デスクトップエクスペリエンスの入った普通の Windows では、ここには explorer.exe と記載されております。 では、WindowsServer 2008 R2 での ServerCore ではどうでしょう? このように、Shell には以下の値が記載されています。 cmd.exe /c…


Operational Insights でパフォーマンスの状況を可視化する

みなさん、こんにちは。 Operations Management Suite のコンポーネントの一つである Operational Insights 上で、ログファイルに加えて、Windows Serverの任意のパフォーマンスカウンタの値が取れるようになりました。  現在、この方法が利用できるのは「Microsoft Monitoring Agentを直接インストールしている場合」と「System Center Operations Manager経由で接続している場合」の2つになります。 パフォーマンスカウンタ取得の方法は非常に簡単です。すでにOMSがセットアップされている環境であれば、以下の設定を行うだけです。 Settings の LOGS タブを開くと、PERFORMANCE COUNTERS というメニューが増えているのが分かります。一番下にある "Add the selected performance counters" というボタンを押してください。 以下のような画面になりますので、サンプリングの間隔を秒単位で指定します。 もし、追加で取得したいカウンタがある場合には、任意のカウンタ名を入れて+ボタンを押します。 入力が終了したら 画面下の Save ボタンを押せば準備は完了です。   1時間ほどするとデータが取得可能になります。収集したパフォーマンスデータは Log Search より確認することが可能です。 この記事が掲載された9月8日現在では、パフォーマンス出力に特化したダッシュボードのパーツはSolutions Galleryには用意されておりません。(Capacity Planningはあくまでもオンプレミスの仮想化環境に特化したものであり、System Center Operations Manager と System Center Virtual Machine Manager の2つが必要になります)  すべてのカウンタの情報を出力するのであれば、クエリとして Type=Perf と入力します。…


Azure Automation から SSH を使う

こちらのブログにあるように、Azure Automation には  Orchestrator.SshClient.Cmdlets というモジュールが用意されており、ワークフローから SSH を使ってリモートでのコマンド実行をおこなうことができます。 ここではこのワークフローからの SSH 接続を試してみました。 ● 環境について まず環境としては Azure 上に Linux マシンを一つ用意しました。これは UbuntuServer 14.0.4 LTS を使用した標準的なものです。 SSHでの接続テスト用アカウントとして「autouser」というユーザアカウントを作成しております。 ただし、SSHのポートは標準の 22/tcp ではなく 11022/tcp に変更しております。22/tcp はあちこちからポートスキャンされていて、開けていると頻繁に攻撃を受けます。そこで、ポート番号をかえておくことでそうした攻撃をある程度避けております。ポートを変更しているため、ネットワークセキュリティグループの受信規則に、その分の設定を追加しております。 ● Azure Automation の準備 Azure Automation を使うためにはまず Automation アカウントを用意する必要があります。 プレビューポータルから左上の「+」ボタンを押し、「管理」にある「Automation Account」を選択、適当な名前を入力し、リソースグループ、サブスクリプション、リージョンを選択、「作成」を押し Automation アカウントを作成します   この Automation アカウントには実際に実行される PowerShell のスクリプトを格納する「Runbook」だけではなく、その PowerShell が使用するモジュールや資格情報、大域に参照される変数などの「アセット」や、今後は DSC の構成やノードもまとめて格納されます。同じ Automation アカウントの PowerShell のワークフローは、同じ資格情報や大域の変数を共有します。Automation…


複数のサブスクリプションから、利用するサブスクリプションを選択

### ほとんどの方はひとつのアカウントで、ひとつのサブスクリプションを利用なさっています。その場合は、本稿を気にする必要はありません。### ひとつのアカウント(組織アカウントもしくはMicrosoftアカウント)で、複数のサブスクリプションを利用する場合、どのサブスクリプションで作業するのかを事前に設定する癖をつけておくことをお勧めします。 こうすることで、想定したとおりのサブスクリプションでAzure上のリソースを生成する事を確実にします。 この設定を PowerShell、Azure CLI でそれぞれ実施する場合の手順概要を紹介します。 ■複数のサブスクリプションから、利用するサブスクリプションを選択 PowerShell編 http://taleofazure.blogspot.jp/2015/07/blog-post_28.html ■複数のサブスクリプションから、利用するサブスクリプションを選択 Azure CLI編 http://taleofazure.blogspot.jp/2015/08/azure-cli.html


計画メンテナンスの影響などをおさえるための仕組み。仮想マシンの「可用性セット」

Azureでは、パフォーマンス、信頼性、およびセキュリティを確保するための継続的な取り組みの一環として、Azure の提供地域およびデータセンターでメンテナンス作業を実施する場合があります。 たとえば仮想マシンをご利用いただいているお客様向けには、メンテナンスなどの影響を抑えていただくための仕組みとして「可用性セット」を用意しております。 ActiveDirectory Domain Controllerのように、それ自体が、Active-Activeで動作するようなアプリケーションをご利用の場合は、単純に可用性セットを組んでいただくことで対応させることもできます。 そうでない場合は、たとえば、負荷分散と「可用性セット」を組み合わせていただくことで対応することもできます。 「可用性セット」は、対メンテナンス時のみならず、対Azure設備内の電源装置障害などにも適応できるようになっています。