Azure リソースの RBAC でカスタムロールを作成する

※ この投稿は PowerShell Advent Calendar 2016 に参加しています   Azure 上の全てのリソースは Azure AD に登録されたユーザーやグループを使用してアクセス制御が行えます。この時に使用するアクセス制御の方法を RBAC(Role Based Access Control)と言います。   Azure ポータル(https://portal.azure.com/)で何らかのリソース(いかの場合は仮想マシン)を選択すると、必ずメニューの中に「アクセス制御(IAM)」が表示され、ここを起点としてRBACを設定することができます。     RBAC の概念を簡単に図にすると、以下のようになります。リソースに直接アクセス権を設定するのではなく、ROLE を介してアクセス権を得ることになります。ROLE には「アクション」が定義されており、これが Azure のリソースに対して行える権限を表しています。   ここでは「仮想マシン作成協力者」というロールのアクションを見てみましょう。以下が仮想マシン作成協力者に定義されているアクション(アクセス許可)の一覧です。 見ていただくとわかりますが、リソースプロバイダーに対してアクセス権が設定されていることがわかります。リソースプロバイダーについてはここでは解説しませんが、リソースの種類だと思ってください。Microsoft Compute は仮想マシンに関連したリソースを意味しています。ここには仮想マシンや仮想マシンノスケールセットなどが含まれています。Microsoft Network はネットワークに関連したリソースを意味しており、仮想ネットワーク、ネットワークインターフェースなどのリソースが含まれています。   Microsoft Computeをクリックして表示した画面が以下です。Virtual Machine に対してフルコントロールが与えられているのがなんとなくわかりますか?Availability Sets には「読み取り」「書き込み」「削除」の権限が与えられています。   さて、ここからがいよいよ PowerShell の出番です。これらを PowerShell から確認してみましょう。   まずは、以下の PowerShell コマンドレットで Azure AD にログオンします。…

0

ARM 配下のマスターイメージをVMに展開するためのリソーステンプレートを作成する

前回までの投稿は以下の通りです。 インフラエンジニアのための ARM シリーズ Azure Resource Manager で作成した仮想マシンをキャプチャーするhttp://blogs.technet.com/b/junichia/archive/2015/11/25/3657462.aspx リソーステンプレートを作成する~超基礎編http://blogs.technet.com/b/junichia/archive/2015/11/25/3657470.aspx 今回は、キャプチャーしたマスターイメージをVMに展開するためのリソーステンプレートを作成します。 作成後のリソーステンプレートはこちらからダウンロードしてください。 以下のオペレーションは動画で実際に確認することができますので、実際に試すことができない方は是非ご覧ください。 まずは、作成しなければならないリソースを把握しておきます。 今回作成する仮想マシンをリソースに分解した図が以下の通りです。 既に、マスターイメージと仮想ネットワーク、サブネットは作成済みなので、作成しなければならないのは、以下の4つのリソースです。リソースを識別するには「リソースタイプ」を使用します。()内の文字列がそれぞれのリソースタイプです。 Public IP(Microsoft.Network/publicIPAddresses) NIC(Microsoft.Network/networkInterfaces) VM(Microsoft.Compute/virtualMachines) OS Disk(Microsoft.Storage/storageAccounts) もちろん、ただ作成するだけでなく、リソース間の関連付けや依存関係も定義しなければなりません。 OS Disk は本来ストレージアカウントから作成する必要があるのですが、今回は既存のストレージアカウントに展開します。そのため、今回は明に作成する必要はありません。仮想マシンを作成する際に OS のディスクパスがどこか?を指定すれば、そこに自動的にディスクを作成してOSを展開してくれます。 Local IP アドレスはリソースではなく、これは NIC のプロパティとして位置づけられています。 リソーステンプレートの大まかな構造については前回解説した通りです。Parameters、Variables、Resourcesの3つが重要だと書きました。上記のリソースを作成するには Resources 句を使用しますが、まずは Parameters 句から順に読み解きましょう。 ■ Parameter 句 仮想マシンを展開するには、以下のように多くの引数が必要です。このことは、実際に仮想マシンを作ったことがある方ならばお分かりかと思います。 マスターイメージの URI(要はディスクが格納されているパスのことです) 仮想マシンの名前 展開する OS のタイプ(Linux or Windows) 管理者のユーザーID 管理者のパスワード 仮想マシンのサイズ(A1とかDS1とかいうやつ) ストレージアカウント(仮想マシンのOSディスクを格納するためのストレージを指定する必要があります) 仮想マシンを展開する仮想ネットワーク 仮想マシンを展開する仮想ネットワーク内のサブネット…

0

リソーステンプレートを作成する~超基礎編

前回の投稿で、ARM 配下に仮想マシンを作成し、それをキャプチャーしてマスターイメージを作成しました。 Azure Resource Manager で作成した仮想マシンをキャプチャーするhttp://blogs.technet.com/b/junichia/archive/2015/11/25/3657462.aspx 今回はリソーステンプレートン作成方法について、基本的なことを学習しましょう。 なお、以下の手順は動画のデモンストレーションでも確認いただけます。感覚的に手っ取り早く理解したい方は動画のほうがお勧めです。 また、以下に関するPPT資料は こちら にあります。 作成したマスターイメージを展開するには、はじめにリソーステンプレートという JSON 形式の定義体を作成する必要があります。実は、クラシックタイプの仮想マシンには、Azure 新ポータルに「キャプチャー」や「VMイメージからのVM作成」機能が標準で提供されています。 が、残念ながら ARM 配下の仮想マシンにはマダなんです。なので、少々面倒ではありますが「リソーステンプレート」を作成して展開する必要があるのです。 既に書いたように、リソーステンプレートとは JSON 形式のファイルで、基本フォーマットは以下の通りです。他に Output があるのですが、ここでは省略します。 {"$schema": http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#,"contentVersion": "1.0.0.0", "parameters": { }, "variables": { } "resources": [ ] } それぞれのカテゴリには、以下のように引数、定数、リソースを記述します。 では、ここで簡単な「仮想ネットワークを作成する」リソーステンプレートを作成してみたいと思います。 まずは Parameters 句 から。Parameters には引数を定義します。ここで仮想ネットワークを作成する場合、「仮想ネットワークの名前」や「仮想ネットワークのIPプレフィックス」などが引数になることは、仮想ネットワークを作ったことがある方であれば容易に想像できると思います。 "parameters": { "VNETName": {"type": "string","metadata": {"description": "仮想ネットワークの名前"}}, "VNETPrefix": {"type": "string","metadata": {"description": "仮想ネットワークのIPレンジ(e.g….

1

Azure Resource Manager で作成した仮想マシンをキャプチャーする

Azure のリソース管理手法が充実してきて、すごくワクワクしております。 この投稿では、Azure リソースマネージャー(ARM)配下に仮想マシンを作成して、マスターイメージとしてキャプチャーする手順について解説します。 実際の操作方法は動画でも紹介していますので、以下をご覧ください。なお、この動画は Part 7 なのですが、全手順はこちらで参照可能です。 Azure 上にリソースを作成する場合、2つの方法が用意されています。 従来通りの方法(クラシック) リソースマネージャー(ARM)を使用する方法 ARM を有用性については別途きちんと解説したいと思いますが、1 つ利点を挙げるとすればリソース管理の容易さと視認性向上です。 SIer の SE であれば、お客様先に展開するサーバーの構成なんてのは大体決まっているもんで、通常はそれを展開するために手順書なんてものを作ったりします。まぁそれでも間違えたりなんだりで手戻りが発生するわけです。じゃ、スクリプトで自動化するか?なんて意見が出たとしても、意外にスクリプトって理解している人が少ないという。スクリプトは視認性が悪いって面もありますし、個人のクセが色濃くでてしまうので引継ぎしづらいって面もあります。 ARM を使用すると、Azure 内のリソースの属性や、リソース間の関係性を明確に宣言することができます。ARM で作成した仮想マシンや、仮想ネットワーク、仮想ディスク等をテンプレートとして保存しておくと、同じ環境がいつでも簡単に作成できるわけです。PowerShell に DSC(Desired State Configuration)という機能がありますが、DSCがサーバー内のリソース構成を宣言したテンプレートであるのに対し、ARM は Azure 内のリソース構成を宣言したものです。宣言という言い方はわかりずらいですかね。「定義」とでも読み替えてください。 ただ、現時点では難点(というか未実装な部分)がいくつかあります。例えば、仮想ネットワークにゲートウェイを作ることができないとか、仮想マシンをキャプチャしてイメージを作成できないとか。これらはPowerShell を使うと可能ではありますが、残念ながら Azure ポータルからは行えません。 で、本題ですが。 ちょっと ARM 配下の VM をキャプチャしなければならない状況になりまして、せっかくなのでここで手順を簡単にご紹介しておきたいと思います。まだ Preview の機能ですので、今後変更される可能性があることをご承知おきください。 VMをリソースマネージャー配下に作成する 日本語化等、必要な作業を行う Sysprep して一般化しシャットダウンする キャプチャする 1. VM をリソースマネージャー配下に作成する 仮想マシンをリソースマネージャーに作成するには、新ポータルか ARM Explorer、または PowerShell を使用する必要があります。従来のポータルでは作成できないので注意しましょう。今回は新ポータルで行います。まず新ポータルを開いてください。…

2

新ポータルで行う AD on IaaS と Azure AD ハイブリッドIdP を構成する紙上ハンズオン

なかなかハンズオンを開催する時間が無く、こうなったら記事にしてしまえということで、マイナビさんでハンズオンの連載をしてみることになりました。 あと、せっかくなので、新ポータルと Azure Resource Manager を使うことにしました。 【連載】 ハンズオンで身につく! 初めてのActive Directory on IaaS第1回 http://news.mynavi.jp/series/ad_iaas/001/ 最終的には以下のような構成を作成します。 いっしょに Azure を使って試していただきたいのですが、そうはいっても実際に試すのはなかなか難しいという方のために、構築手順を収録した動画も以下に公開します。 合わせてご覧ください。 #1 Introduction #2 Azure 仮想ネットワーク:解説編 #3 Azure 仮想ネットワーク:構築編 #4 仮想マシンのマスターイメージとは

0

VMWare / Amazon AWS から HyperV / Azure への移行について解説

test 圧倒的なシェアを誇るハイパーバイザーでありプライベートクラウドのプラットフォーム、VMWare。 圧倒的なシェアを誇るパブリッククラウド プラットフォーム、Amazon AWS。 VMWare も AWS も業界を盛り上げる同志であるとともに、プラットフォームの競合ベンダーでもあります。いうまでもなく。 そして、両社いずれもそれぞれの分野のリーダーです。マイクロソフトはここ数年それを追い続けてきました。 が、そろそろどうでしょうかね。魔導士か戦士か、はたまた旅芸人かの違いはあるにせよ、対等に戦えるステージに立てたなと感じています。 我々のチャーム(注:相手を魅了する呪文、レベルが低いと効きにくい)も、VMWare や AWS を利用中の皆様に効果を与えられるようになったはずです。 そこで、どうでしょう?ちょっとだけ我々のパーティーに加わってみませんか? といっても現在の環境から移行できることがわからないと、試したくもなりませんね。 ということで、以下のようなコンテンツをご用意しました。 ベースは英語なのですが、ビデオのほうにはきちんと日本語テロップが表示されます。 ダウンロードも可能ですので、是非通勤時間にでも見てください。   Amazon AWS から Microsoft Azure への VM の移行http://www.microsoftvirtualacademy.com/training-courses/migrating-vms-from-amazon-aws-to-microsoft-azure_jpn VMware から Hyper-V への移行http://www.microsoftvirtualacademy.com/training-courses/vmware-to-hyper-v-migration_jpn   ここをご理解いただけると、以下のような移行パスと、移行後の素敵な世界が可能になります。

0

【IaaS】 Active Directory on IaaS の構築手順書を公開しました

Active Directory の最新情報をキャッチアップ! クラウド時代の Active Directory 次の一手シリーズ 第1回~6回 公開中! 第 1 回 Active Directory の位置づけ 第 2 回 Active Directory ドメイン サービスの新しい役割 第 3 回 Active Directory フェデレーション サービスの役割 解説編 第 4 回 Active Directory フェデレーション サービスの役割 構築編 第 5 回 認証のためのプロキシ Web Application Proxy 第 6 回 Microsoft Azure Active Directory とは Active Directory…

5

【Azure】 No certificate was found in the certificate store with thumbprint に見舞われたら

Windows Azure を Windows PowerShell をはじめとするコマンドラインから管理するためのモジュールが以下からダウンロードしてインストールすることができます。 http://www.windowsazure.com/en-us/downloads/?fb=ja-jp これにより、Windows PowerShell のコマンドレットや、Azure.cmd コマンド等が使える用意なり、それはそれは大変便利な環境になります。 が、難点は、コマンドがどこを触っているのかさっぱりわからないこと。 特に、以前は証明書の作成も含めて自分でやらなければならなかった管理証明書(API証明書)のインストールやアップロードなんかは、以下のコマンドレットを使用して簡単に行えるようになりました。 Get-AzurePublishSettingFile このコマンドレットにより、AzureポータルからAzureサブスクリプション情報と管理証明書が格納された「 .publishsettings 」ファイルをダウンロードすることができます。ファイルのダウンロードと同時に、「管理証明書」に証明書が登録されます(超便利!) Import-AzurePublishSettingFile –PublishSettingFile <ダウンロードした .publishsettings ファイル> これにより、Get-AzurePublishSettingFile でダウンロードしたファイルを、ローカルの PowerShell 環境に取り込むことができます。もちろん、管理証明書もローカルにインストールされます(超便利!)。 Import-AzurePublishSettingFile コマンドレットを実行して .publishsettings ファイルを取り込むと何が行われるかというと、以下の通りです。 管理証明書(Azureサブスクリプションに登録されたものと同じもの)が現在のユーザーの[個人]-[証明書]にインストールされる %UserProfile%\AppData\Roaming\Windows Azure Powershell 配下に設定ファイルが作成される ここに保存したサブスクリプション情報が裏で使用されて管理プロセスが動きます。 これ、非常に便利なのですが、「環境をきれいにしよう」なんつってうっかりローカルの証明書を消してしまったりするとさぁ大変。 以下のようなエラーが出て、コマンドレットがことごとく使えなくなります PS C:\windows\system32> Select-AzureSubscription コマンド パイプライン位置 1 のコマンドレット Select-AzureSubscription 次のパラメーターに値を指定してください: (ヘルプを表示するには、「!?」と入力してください。) SubscriptionName: junichia Select-AzureSubscription : No certificate was…

0

【IDM】Windows Azure Active Directory と Office 365 と外部 IdP の関係(予想)

※この投稿は、あくまでも現在公開されているドキュメントやBLOG、および自身による動作検証をもとにしたものであり、マイクロソフトが正式にドキュメント化しているものではありません。あくまでも「ご参考」ということでよろしくお願いいたします。検証作業等の参考になれば幸いです。 Windows Azure Active Directory と Office 365 の関係を調べていると疑問がつきません。 特に、Access Control Service との関係など、なにがどうなっていて、どこまで認証部分をカスタマイズできて、何ができなくて。。。といったことで夜も眠れなくなります。 そこで、「こんなかんじなんじゃないか?」という予想をまとめたものが以下の図です。 なんとなく、Access Control Service(ACS) が使われているように思いがちなのですが、従来 MFG(Microsoft Federation Gateway)と呼ばれていた STS(Security Token Service)が使われているような気がします(MFGと呼んでいるかどうかは定かではありません)。ただ、MFG の Endpoint が以下のURLなので、全くACSを使っていないというわけでもなさそうで。。。 https://account.accesscontrol.windows.net/<テナントのURL> ちなみに、ACS の Endpoint は以下のような URL になります。 https://<Namespace名>.accesscontrol.windows.net/   ちなみに、以下の図で赤丸を付けた部分は、Set-MsolDomainAuthentication というコマンドレットを使用して関連付けることができます。選択できるプロトコルは WS-Federation と SAML 2.0 なので、いずれかに対応した独自 STS を開発すれば「理論上」は MFG の IdP として関連付けることができるはずです。 逆に、MFG の RP として ACS を登録する方法については…

0

【IDM】Office 365 と Windows Azure AD の電話による二要素認証

Office 365 と Windows Azure Active Directory の組み合わせで、二要素素認証が使用できるようになりました(2013年3月5日現在 プレビュー)。 Windows Azure, now with more enterprise access management! http://blogs.msdn.com/b/windowsazure/archive/2013/03/04/more-identity-and-access-management-improvements-in-windows-azure.aspx これはどのような仕組みかというと。。。。以下をご覧ください。 ユーザーがブラウザを使用して ID とパスワードを使用してサインインします。ここでIDとパスワードの検証が正しく行われると、事前に登録してある携帯電話やスマフォに電話がかかってきます。これに「#」を押して応答することで認証が成立するというものです。設定によっては、右側の図のように、ショートメッセージが送られてきて、そこに書かれているコードを入力して返信すれば認証することもできます。   この仕組みを使用するには、はじめに Office 365 を契約(評価版でもOK)します。この時にサインアップしたID(例 hogehoge@hogeorg.onmicrosoft.com)を使って Windows Azure の管理画面(例 https://manage.windowsazure.com/hogeorg.onmicrosoft.com/ )にアクセスしてログオンします。 Windows Azure Active Directory の管理画面を開くと、Office 365 で作成したドメインが表示されています。 ※この機能も新しく実装されたものです ドメインをクリックしてユーザー一覧を開いてください。Office 365 で登録したユーザー一覧が表示されます。 ※この機能も新しく実装されたものです 二要素認証を使用したいユーザーをクリックして、プロファイルを開くと、以下のように「多要素認証が必要です」をチェックできるようになっています。 このまま保存すれば、以降、IDとパスワードに加えて電話による応答が要求されるようになります。 実際の流れは以下の通りです。   1. サインイン画面で ID とパスワードを入力 2. 以下のような画面が表示される…

2