AzureConf 2014 Keynote 他

そんなわけでAzureConfの季節がやってまいりました。

Scott Guthrieはじめ著名な人たちがAzureの最新事情についていろいろ教えてくれるConferenceです。公式サイトを追ってもいいですし、Twitterでの質問も受け付けたりしてるので #azureconf ハッシュタグを追いかけるのもいいかともいます。

で、今年は4年前のPDC10みたいな感じでパブリックビューイングしよう!というノリと勢いのイベントも一緒にやってみました。

event

ただの居酒屋トークになった感はひしひしと感じてしまいますが、なんとなくわいわい見れるといいなーという感じでUSTREAMで配信してみました。(ユニーク視聴者数で170名ぐらい見て頂いたようです。夜中にお疲れ様でした)

続きを読む

Azure WebサイトのUpdate

少し前から既にPreviewとれていましたが、WebJobsがGAしました。

WebJobs SDKは1.0が今RCですね。結構勢いがある機能じゃないでしょうか。

リソースはこちらにまとまっているので参考に。

しばやん先生も記事にしていました。

ちなみにしばらく見ない間にジョブの詳細みたりログみたりもかなりよくなってますね。

imageimageimage

※ログビューアーはSite Extensionsですね

続きを読む

Azure WebサイトのSSL 3.0問題

いろいろありましたがDavid Ebbo先生がAzure WebサイトでSSL 3.0をオフにする方法を用意してくれました。(正確にはオフではなく拒否ですが)

やりかたは2パターンあります。とりあえずSSL 3.0が有効な状態を見ときましょう。(curlでやるとクールだけどIEでとりあえず。)

image

image

TLSがOnだとそっち使っちゃうので一時的に。で、Azure Webサイトにつないで見ます。

image

こんな感じでSSL 3.0です。サイトは普通に見えます

image

 

1. Disable SSLv3 Extensionを使う

KuduにアクセスしてSite ExtensionsでDisable SSLv3をインストールします。

image

プレビューポータルだともう少し簡単です。(わざわざKuduにつながなくても良い)

image

簡単です。プレビューポータルだと再起動もされるので簡単ですね。ではブラウザでつないで見ましょう。

imageimage

403になりました。TLS有効にするとちゃんと見えます。

※ちなみにこのExtension有効にすると、Extension消しても403になっちゃう気がします。。

 

2. URLRewriteを使う

もう1つの方法として提示されたのがURLRewriteを使う方法です。Azure Webサイトのフロントエンドのロードバランサーが、クライアントがSSL 3.0を要求してきたときに X-Forwarded-SSLv30 という特別なリクエストヘッダを付与してくれるので、こちらを見て判断する方法です。

image

(TLSで接続している場合などはこのリクエストヘッダが付与されません)

以下のようなルールをWeb.configに追記します。

<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Block SSL3.0" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_X_FORWARDED_SSL30}" pattern="1" />
</conditions>
<action type="CustomResponse" statusCode="403" subStatusCode="900" statusReason="Forbidden" statusDescription="SSLv3 connections are forbidden by this site" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

こんな感じになります。

image

Web.configだけで設定のOn/Offできるので、こちらのほうが使い勝手がいいかもです。(但しステータスコードが例だと403になるだけなので注意 ※CustomErrorsとか設定してないとという話)

クラウドサービスや仮想マシンについては以前書いた通りです。

SSL 3.0が完全に使われてない技術であればWebサイトもホスト側ですぱっとオフにできるのでしょうけど、そうじゃないクライアントがあるのでサービス側としてはこのような形でエラーにさせる方向なのでしょうね。
完全にクライアントの問題とも言えませんがクライアント側で少なくともSSL3.0使わなければ良いはずですので、サーバー側でどうするかは状況によりけりということでしょうか。(少なくとも現状は)

あ、ちなみにモバイルサービスもKudu使えるはずなので、同じ手段で対策できるかと思います。

追記

URLRewriteでSSL3.0接続のときに403を返しつつカスタムエラーでユーザーにSSL3.0の無効化を促すようにする場合はこんな感じにすると良さそうです。

カスタムエラー用のCSHTML

@{
  Response.StatusCode = 403;
}
<!DOCTYPE html>
<html>
<body>
 <h1>SSL 3.0を無効にしてTLSを有効にしてください</h1>
</body>
</html>

Web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="webpages:Enabled" value="true" />
  </appSettings>
    <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <httpErrors errorMode="Custom">
      <remove statusCode="403" />
      <error statusCode="403" path="/403.cshtml" responseMode="ExecuteURL" />
    </httpErrors>
    <rewrite>
      <rules>
        <rule name="TestBlock" patternSyntax="Wildcard" stopProcessing="true">
    <match url="*" />
    <conditions>
   <add input="{HTTP_X_FORWARDED_SSL30}" pattern="1" />
    </conditions>
          <action type="CustomResponse" statusCode="403" subStatusCode="900" statusReason="Forbidden" statusDescription="SSLv3 connections are forbidden by this site" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

結果

image

静的ファイルだとステータスコードが200に上書きされるようなので、CSHTMLで強制的に403を返すようにするようです。

たけぱらさんありがとうございます。

これでSSL3.0の時はエラー扱いにして且つユーザーに注意を促すことができますね。

※ ただ結局SSL3.0で繋いじゃってるので脆弱な状態といえば脆弱です。注意しましょう。まぁ注意を促したりするための対応なのでクライアント側で気を付けましょうね。ということです。

Azure Preview Portalの小ネタ

Previe PortalでちょっとF12ツールとかで見てみようと思ったところ、コンソールに面白い出力が。

Azureのアスキーアートロゴの横にメッセージが。

“Want to build awesome web applications like this one? Join us.”

意訳:Preview Portalみたいな素晴らしいWebアプリケーションを作ってみませんか? ご参加ください。

という感じです。ほほーと思ってURLを開くと

ということで、MicrosoftさんのJob検索ページへw

ご興味ある方は是非。

SSL 3.0のPOODLE問題

はーめんどうくさい。

概要はしばやん雑記とか見てください。

クライアント側はIEであれば詳細オプションでSSL 2.0/3.0のチェック外せばいいでしょう。

サーバーサイドでSSL 3.0を使わないようにするにはレジストリ弄ります。(Windows/IISの場合)そのへんはしばやん先生のBlogへどうぞ。

Azure WebサイトはSSL 2.0は無効にされててSSL 3.0無効化はもうちょっと待つ必要がありそうですね。自分で管理する必要がないマネージドなサービスの良し悪しというところです。

半分PaaSなクラウドサービスはそのうち対策済みのGuest OSがリリースされますが、待てない場合はStartup TaskでSSL 3.0を無効にするようにして再デプロイか、現在のインスタンスにログインして手動でレジストリ弄った後再起動しましょう。(←この場合、何かあった時に戻る可能性があるので注意)

IaaSな仮想マシンの場合はOSより上は自己責任なので、自分できちんとケアしましょう。PowerShell DSC使うならこんな感じですかね

Registry Disable-SSL2
{
    Ensure = 'Present'
    Key = 'HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server'
    ValueName = 'Enabled'
    ValueData = '0'
    ValueType = 'Dword'
}

Registry Disable-SSL3
{
    Ensure = 'Present'
    Key = 'HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server'
    ValueName = 'Enabled'
    ValueData = '0'
    ValueType = 'Dword'
}

Linux系も基本同じように対策が必要かと思います。AWS環境のPOODLE脆弱性対応 (CVE-2014-3566)を参考にどうぞ。

Azure Update補足

なんかScottGuのBlog見てたら補足できてなかったのがちらほらと。

適当に羅列しておきます。

  • Redis CacheのモニタリングとかAlertもプレビューポータルでどうぞ
  • DocumentDBもプレビューポータルでJSONドキュメントをみれるDocument Explorerやコレクション管理、パフォーマンスみたりできます
  • 通知ハブでBaidu Cloud Pushがサポート
    image
  • Azure AutomationでこまごまUpdate
    • PowerShellスクリプトの変換サポート
    • 単一のスクリプトがインポートされた場合、Runbookに変換してくれるようです
      image
    • ※元スクリプト、UTF-8じゃなかったから文字化けしてるけどworkflowでラップされた感じになりました。これで簡単にAutomationできますね
    • Runbookのサンプルをギャラリーから選べるようになりました
      imageimage
    • たとえばVMを止めるとかだと
      image
      Stop Azure Virtual Machine using Azure Automation Runbookを選択して
      image
      中身を確認して
      image
      発行先のオートメーションアカウントやRunbook名を指定するだけです。簡単!
      Runbook実行時に必要なインスタンス名とかサブスクリプション等はアセットで登録しておけばOKですね。(決め打ちなら発行時に入力できますけど)
    • Script Center も参考に(英語にしないと表示されないかも)
    • スケジューリングも1時間間隔で実行できるようになったので、だいぶ融通がきくようになりました
      image

そんな感じで今日もAzureは表に出ないところもUpdateされてました。

AzureのAntimalware対応

ちょっと前にAzure用Microsoft AntimalwareがGAしました。ので今日はその辺さらっと見ておきます。

Microsoft Antimalwareはそのまんま名前の通りOSをウィルスだったり不正なアプリから保護してくれるアプリです。Azure対応ということで、クラウドサービスと仮想マシンで使うことができます。

詳細はこちらのホワイトペーパーをどうぞ(直リン) → Microsoft Antimalware white paper

GA当初(10月3日)、ホワイトペーパーをざっとみてクラウドサービスの場合はSDK使うのかなー(と図を見て)と思ったのですがそんなことはなかったです。結局、クラウドサービスも仮想マシンもAzure PowerShellを使って構成する感じでした。

続きを読む

SQL Server収穫祭

10月4日(土)にSQL Server収穫祭がありました。

公開されてる資料などはこちら。


オンプレでもクラウドでも。データベースサーバーの運用 / @elanlilac (Microsoft MVP for SQL Server)


SQL Database でも使える ○×※△(ほにゃらら) / @shinsukeoda (Microsoft MVP for SQL Server)


Azure SQL Database入門 – 丸っとお見通し / @t_yamatoya (Microsoft MVP for Windows Azure)

SQL Database の DTU を研究してみる / @Masayuki_Ozawa (Microsoft MVP for SQL Server)

※SQL Databaseの鬼のセッションは非公開です

なおUSTREAMや録画などは無いので詳細は参加者だけの特典ということで。(生々しい数字とかいろいろありましたので)

圧力団体と言われる人たちの質問が酷かったですね。。。あと人の名前バラらすのはよくないと思います!( ^ω^)

de:code スペシャルエディション

昨日はde:code スペシャルエディションということで、ちょっとしたイベントがありました。

そう、MicrosoftのCEOのサティア・ナデラ(Satya Nadella)氏のスペシャルトークです。(その後MSのエバンジェリスト5名によるVSやらの話もありました)

ちなみに10月1日にもOfficeの新発表イベントで登壇していましたがそちらはノーコメントで。

サティア氏、テンション高めで熱量もって話されててよかったです。デベロッパー向けにモバイルファースト+クラウドファーストな話などされてました。すみません何となくでしか理解してないので書き出せません。他の記事とか見てください。。

Windows Phoneは言うほど期待しませんでしたがちょっと言及してたのでまだよかったかな? サティア氏も言ってたけど、ニュアンス的にはNECや富士通といったOEMメーカーがタブレットもだしてるしWindows Phoneでも期待してる、的な感じだったのですけども、、(Lumiaはともかく、パートナー戦略してるMS的にも無難な回答かな)

※どういう阻害要因があるかとかちゃんとサティア氏に伝わってるかどうかも謎です。まぁ伝わったからどうだってのもありますけど、Topに対して直談判というのは悪くないと思います。(今までちゃんと伝わってたのか別の要因があるのかは知りませんが)ほら稟議おちたら裏から手を回したりトップダウンでやったりしますよね?

まぁ数年の状況を見て+昨日の状況みて絶望したりあーって思うぐらいには悲観的ですけど、サティア氏が初めて明確に日本市場についてしゃべった!ちょっと前進!って思うぐらいには楽観的です。日本をどうみるかって言うのはまぁ。。デベロッパーとしては母国日本でちゃんと流行って、売り上げもあがると嬉しいのは確かです。

Windows PhoneもそうですがXBox OneのUniversal Appsとかオープン化はもっと言及してもいいんじゃないですかね。。そっちのほうもナカナカ厳しい感じのようですが。

まぁそれは兎も角、せっかくCEOになってから初来日なので、わざわざ太平洋はさんで来日してくれたサティア氏にありがとうぐらいは言うのはどうでしょう。あとついでに言いたいことがあるならそちらも。せっかく名刺交換しなくてもTwitterとかで意見を言えるぐらいは言えるんだし。(見てもらえるかはわからないし、レスはないだろうけど)

あ、XBox One買ってなかったけど、買ってみようかなって思いました。Universal Apps作りたいですね。

おまけ

image

このハッシュタグ使ってね!的なアナウンスが何もないからだよ! w

Azure Update (2014/10/03)

いろいろきました。例によって適当にピックアップしておきます。

  • インスタンスレベルのパブリック(グローバル)IPアドレス付与がGA
    • General Availability: Instance-Level Public IPs
    • インスタンス直通するグローバルIPアドレスを付与できる機能がGAしました。
    • FTPとかAlwaysOnとか、インスタンスと直接通信しないといけない機能やサービスにはぴったりのあれです
    • 対象はクラウドサービスと仮想マシン。
    • ちなみにGAしたから12月1日以降、GA価格が適用されます。
    • 仮想マシンでの価格はこちら → Virtual Machine Pricing
  • サービスバス価格改定
  • Microsoft AntimalwareがGA
  • Azureのリソースでタグが使えるように
    • Organize your Azure resources with tags
    • プレビューポータルのほうではリソースマネージメントが行えますが、リソースに対してタグを付けて管理できるようになりました。
    • プレビューポータル内およびREST APIかAzure PowerShellで管理できます(プレビューポータル内では今のところ見るだけっぽいけど)
    • image
    • image
    • ロールベースの管理とあわせて、だいぶ論理的に管理できる土台ができてきましたね。やっと感。
  • Azure Site RecoveryがいろいろGAしたりUpdate
  • Azure SQL Databaseのクォータポリシーの変更
    • Azure SQL Database modified server quota policy
    • DTUに対するクォータのポリシーが変わったのかな。(サーバーあたりの)
    • 難しいので詳細はムッシュとかぺんぺんししょーに聞きましょう。あと明日のSQL Server収穫祭とかに参加するといいのかもしれません
  • Azure SQL Database Elastic Scale(Preview)

というわけで今日のアップデートでした。