Azure のデモですっきりさせる

Azureで業務以外(検証とか)で弄繰り回してるとだいたいひどいことになります。

例:乱立するリソースグループ
image

この状態でデモとかすると非常に面倒くさいことになります。なのでそういう時は組織アカウントのユーザーを作ってデモ予定のリソースグループにだけRBACで所有者などの権限を追加してあげましょう。

そしたらすっきり。
image

他のリソース見えないので余計なごみが映らないですね。デモもしやすいかと思います。アカウントもデモ終了後消せばバレても問題ないですね!

なおクラシックポータルを使わないといけない場合はちょっと無理なのであきらめましょう。

Azure Resource Manager のロック機能

Azrue Resource Manager(ARM)にはリソースロック機能があります。

何をするものですが

ロールベースのアクセス制御(RBAC)は特定ユーザーの操作を制限するものですが、リソースロック機能は管理側ですべてのユーザーにCanNotDelete(削除不可)またはReadOnly(読み取り専用)のどちらかの状態にリソースをロックする機能です。

※ただし現状Azure PowerShellで指定できるのはCanNotDeleteのみっぽいです

削除不可はリソースに対して変更などは可能ですが削除をできなくします。読み取り専用はそのままですね。

ロックを制御できるのは所有者かユーザーアクセス管理者だけになります。

またロックは継承されます。その際、最も厳しいロックの状態が優先されます。(親リソースにReadOnlyが付与されている場合、子リソースにCanNotDeleteを付与してもReadOnlyのほうが強いのでReadOnlyが優先されます)

ロックを制御するには

REST APIかAzure PowerShellを利用します。Azure PowerShellの場合、 New-AzureRmResourceLock を使用します。

> New-AzureRmResourceLock -LockLevel CanNotDelete -LockName samplelock -ResourceName test -ResourceType Microsoft.Network/publicIPAddresses -ResourceGroupName testgroup

確認
Are you sure you want to create the following lock:
/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/testgroup/providers/Microsoft.Network/publicIPAddresses/test/providers/Microsoft.Authorization/locks/samplelock
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): y


Name                  : samplelock
ResourceId            : /subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/testgroup/providers/Micros
                        oft.Network/publicIPAddresses/test/providers/Microsoft.Authorization/locks/samplelock
ResourceName          : test
ResourceType          : Microsoft.Network/publicIPAddresses
ExtensionResourceName : samplelock
ExtensionResourceType : Microsoft.Authorization/locks
ResourceGroupName     : testgroup
SubscriptionId        : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Properties            : @{Level=CanNotDelete}
LockId                : /subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/testgroup/providers/Micros
                        oft.Network/publicIPAddresses/test/providers/Microsoft.Authorization/locks/samplelock

これで削除不可になりました。実際に削除してみるとエラーが発生して削除することができません。(サブスクリプションの所有者でも!)

image

ロックを解除(削除)するには Remove-AzureRmResourceLock を使用します。

> Remove-AzureRmResourceLock -LockName samplelock -ResourceName test -ResourceType Microsoft.Network/publicIPAddresses -ResourceGroupName testgroup

その他

ロックはARMテンプレート内でも利用できます。

まとめ

うまく活用して不慮の事故を未然に防ぎましょう。

See Also:

Azure Update (2016.01.23)

Azure SDK 2.8.2 for .NETとかいろいろ。

Azure SDK

Azure SDK 2.8.2 for .NETがリリースされました。

App Service連携部分とかARM Template絡みの操作がよくなってます。接続文字列のセットアップだったり、ARM TemplateをExportできるようになったりとか。

Azure App Service

Azure Batch

Azure Media Services

Azure Search

Application Insights

  • Application Insights Proactive Detection
    • Application Insightsで予防的検出ができるようになりました。特に追加の設定とか不要なようです。
    • ポータル上で是非どうぞ。

Azure Automation

  • Public preview: Automation Graphical Authoring SDK
    • グラフィカルなRunbookを操作するためのSDKです。Azureのポータルからエクスポートしたのを編集したり、作ったものをインポートしたりできます。
    • 使いどころが悩ましい
      image

その他

Azure x Laravel

いろいろ縁がありましてLaravel勉強会でLTしてきました。

ネタ的にはAzure App Service Web Appsの概要と、Azure上でPHP/Laravelを動かすところまでをざっくりまとめてます。
Gitデプロイした後のデプロイスクリプトでちょっとはまったけど問題なく動いてヨカッタヨカッタ。もともとPHP動くしデプロイだけ気を付けたら(仮想アプリケーションのサイトルートをsite\wwwroot\publicにすれば)普通に動きますです。(FTPデプロイだと何も問題ない)

LaravelはComposer使うのですが、Corey Fowler氏が作ったSite Extensionのおかげで超楽ちんでした。ありがたや。

それからはまったポイントですがWeb Appsのプランにもよると思いますがGitデプロイ後、デプロイスクリプト走るんですけどオプティマイズ辺りの処理でタイムアウトしちゃいます。ディスク遅いからなぁ。。こちらに回避方法あるので参考に。

具体的にはcomposer.jsonのpost-install-cmdをからっぽにしてCompiledCommonClasses.phpを追加することぐらいですかね。

当日の資料もこちらに置いておきますので参考まで。

Azure Update (2016.01.18)

前回書いたそばからUpdateありました。

Azure Automation DSC

Azure RemoteApp

OMS

SQL Database

Virtual Machine

  • Helping customers achieve more at the best prices
    • Dv2 (D-Seriesのv2)インスタンスを10%~17%値下げするよという話。詳細は価格表みましょう
    • 2月からかな?
    • まぁAWS EC2の値下げ発表もありましたし。

Azure Storage

Azure AD

Azure Multi-Factor Authentication

  • More ways to purchase Azure Multi-Factor Authentication
    • Azure MFAをボリュームライセンスなどでも買えるようになりました
    • Azure ADの購入方法に合わせた購入オプションという感じですかね。
    • Azure MFAそのものはAzure AD PremiumやEMS、ECS(Enterprise Cloud Suite)の一部として今後も提供です

Subscription

  • Self-service subscription transfer globally available
    • Azureサブスクリプション(従量課金やMSDN特典など)を別のアカウントや別組織に自分で付け直しできる機能がグローバルで利用できるようになりました。(これまではサポートへ連絡して作業してもらう必要があった)

その他

Azure Update (2016.01.14)

あけてました。おめでとうございます。そろそろ新年のUpdateがちらほら出てきたので簡単に。
※いくつかは昨年末に流れてたやつですけど。

Azure Automation

Virtual Machines

  • Static public IP addresses available for Azure virtual machines
    • ARM使った仮想マシンにStaticなパブリックIPアドレスを割り当てられるようになりました。
    • 以前はDynamicなパブリックIPアドレスをNICに割り当ててた感じです
    • ASMなCloud ServicesだとリザーブドIPアドレスとかいうやつの代わりですかね

Azure Site Recovery

DevTest Labs

  • Azure DevTest Labs: January 2016 update
    • 既存のDevTest LabsのVMにアーティファクト(各アプリとかのパッケージみたいなもの)を追加できるようになりました(参考
    • またアーティファクト用のリポジトリも管理できるようになったので独自のや企業内用のクローズドなのも対応できそうですね
    • あとはARMテンプレート対応、Premium Storage対応などです。

Azure Search

Azure Data Lake

API Management

App Service

  • Zend Z-Ray for Azure App Service general availability
    • PHPアプリケーションのプロファイラ等の機能を持ってるZend Z-RayがApp Serviceで使えるようになりました(今まではPreview)
    • App Service Web Appsなどのブレードの設定から簡単に有効化できます

Network

その他

 

そんな感じで2016年もまったりと宜しくお願い致します。

2015年ふりかえり

もう大晦日ですね。2015年もおわりです。雑に振り返ってみたいと思います。

そういえばCh.9に動画あげたんですよ。
image
よかったら見てやってください。実はCh.9に名前出るの初めてじゃないんですが、アレのアレが大人の事情により面倒くさいとかそういう理由で動画がないので実質初めてのようなものです。(結局プロファイル紐づかない様子)

さて適当にAzure絡みのUpdateを中心に振り返りますかね。

続きを読む

Azure Update (2015.12.23)

さぼってました。すみません。

DocumentDB

Mobile Engagement

Azure Data Lake

Service Fabric

StorSimple

Azure App Service Mobile Apps

GAしたよ(前も書いたかな)

Azure Resource Managerまわり

Azure Machine Learning

HDInsight

Virtual Machine

API Management

Web Apps と App Service Environment

Azure Stack

  • Microsoft Azure Stack: Hardware requirements
    • PoCで使う用の推奨/最小ハードウェア構成の話。最低限SLATサポートなHyper-Vが動くデュアルソケット物理12コアCPU、96GBメモリに1OSディスク+4データディスクといった感じ。
    • 細かな制限(現状MPIOやマルチパスはサポートされてないとかいろいろ)あります

Cloud Services

そのほか