Azureで業務以外(検証とか)で弄繰り回してるとだいたいひどいことになります。
この状態でデモとかすると非常に面倒くさいことになります。なのでそういう時は組織アカウントのユーザーを作ってデモ予定のリソースグループにだけRBACで所有者などの権限を追加してあげましょう。
他のリソース見えないので余計なごみが映らないですね。デモもしやすいかと思います。アカウントもデモ終了後消せばバレても問題ないですね!
なおクラシックポータルを使わないといけない場合はちょっと無理なのであきらめましょう。
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
これで削除不可になりました。実際に削除してみるとエラーが発生して削除することができません。(サブスクリプションの所有者でも!)
ロックを解除(削除)するには Remove-AzureRmResourceLock を使用します。
> Remove-AzureRmResourceLock -LockName samplelock -ResourceName test -ResourceType Microsoft.Network/publicIPAddresses -ResourceGroupName testgroup
ロックはARMテンプレート内でも利用できます。
うまく活用して不慮の事故を未然に防ぎましょう。
See Also:
AzureのRecource Manager (ARM)ではリソースに細かな権限をつけて制御することが可能です。主にRBAC(Role Base Access Control)と言われてるやつですね。
それと連動して、実はポリシーを定義してより細かな制御ができるようになっています。(ただしポリシーは現状プレビュー機能)
Azure SDK 2.8.2 for .NETとかいろいろ。
Azure SDK 2.8.2 for .NETがリリースされました。
App Service連携部分とかARM Template絡みの操作がよくなってます。接続文字列のセットアップだったり、ARM TemplateをExportできるようになったりとか。
いろいろ縁がありまして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を追加することぐらいですかね。
当日の資料もこちらに置いておきますので参考まで。
前回書いたそばからUpdateありました。
あけてました。おめでとうございます。そろそろ新年のUpdateがちらほら出てきたので簡単に。
※いくつかは昨年末に流れてたやつですけど。
そんな感じで2016年もまったりと宜しくお願い致します。
もう大晦日ですね。2015年もおわりです。雑に振り返ってみたいと思います。
そういえばCh.9に動画あげたんですよ。![]()
よかったら見てやってください。実はCh.9に名前出るの初めてじゃないんですが、アレのアレが大人の事情により面倒くさいとかそういう理由で動画がないので実質初めてのようなものです。(結局プロファイル紐づかない様子)
さて適当にAzure絡みのUpdateを中心に振り返りますかね。
さぼってました。すみません。
GAしたよ(前も書いたかな)