Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
情シスの味方、Azure のカスタムロール
Search
Tetsuya Odashima
September 22, 2018
Technology
0
22
情シスの味方、Azure のカスタムロール
Japan Azure User Group 8 周年 LT - 2018/09/22
Tetsuya Odashima
September 22, 2018
Tweet
Share
More Decks by Tetsuya Odashima
See All by Tetsuya Odashima
どうするコスト最適化のトレードオフ
tetsuyaooooo
1
760
自動化で、マネージド ID と Connect-AzAccount と azcopy login を使用する際に気をつけること
tetsuyaooooo
0
250
キャリア教育ミニ講演会 - システムエンジニア編
tetsuyaooooo
0
40
私のMCP試験の挑み方
tetsuyaooooo
0
28
ETロボコン2020 競技会場システムのおはなし
tetsuyaooooo
0
9
Microsoft MVP を受賞するために取り組んだこと
tetsuyaooooo
0
28
毎年恒例イベントを Azure Media Services を使ってオンラインで
tetsuyaooooo
0
44
Azure Internet Analyzer (Preview) を試してみる
tetsuyaooooo
0
31
Microsoft MVP が語る Azure 移行の勘所
tetsuyaooooo
0
15
Other Decks in Technology
See All in Technology
日本が誇るイタリアのダンスミュージック!? ユーロビートって何??
minorun365
PRO
2
180
動画配信サービスのフロントエンド実装に学ぶ設計原則
yud0uhu
1
130
Dungeons and Dragons and Rails
joelq
0
230
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
9
37k
生成AIがもたらす変革 / GitHubGalaxy_CyberAgent
cyberagentdevelopers
PRO
2
110
5分で分かる(かもしれない) Vector engine for OpenSearch Serverless
tsukuboshi
1
400
QAエンジニアが伝えたい品質保証の羅針盤 / Compass for Quality Assurance
mii3king
1
330
グイグイ系QAエンジニアでやっていくよ!
____rina____
0
760
cgroup v2 で何が変わったのか / TechFeed Experts Night #28
tenforward
2
160
Deno で作る快適な “as Code” プラットフォーム – TSKaigi 2024
pizzacat83
4
310
エムスリーマルチデバイスチーム紹介資料 / Introduction of M3 Multi Device Team
m3_engineering
1
150
RubyKaigi 2024 - Make Your Own Regex Engine!
makenowjust
0
140
Featured
See All Featured
BBQ
matthewcrist
80
8.8k
YesSQL, Process and Tooling at Scale
rocio
165
13k
10 Git Anti Patterns You Should be Aware of
lemiorhan
649
58k
How STYLIGHT went responsive
nonsquared
92
4.8k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
The Cost Of JavaScript in 2023
addyosmani
21
4k
Atom: Resistance is Futile
akmur
260
25k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
26
2.3k
A better future with KSS
kneath
231
16k
Stop Working from a Prison Cell
hatefulcrawdad
266
19k
The Invisible Customer
myddelton
114
12k
Transcript
情シスの味方、 Azure のカスタムロール Japan Azure User Group 8 周年 LT
2018/09/22 パーソル プロセス&テクノロジー株式会社 Microsoft MVP for Microsoft Azure 小田島 哲也
自己紹介 • 小田島 哲也 (おだしま てつや) • パーソルプロセス&テクノロジー – Azure
導入コンサル、技術支援、最近は開発も – Office 365 もやるよ – そもそも .NET (主に C#) デベロッパー • Microsoft MVP for Microsoft Azure (2018~) • Qiita:https://qiita.com/tetsuya-ooooo • ET ソフトウェア デザイン ロボット コンテスト 実行委員会 (2011~) http://www.etrobo.jp/ – 本部技術委員 兼 東京地区技術委員長 (組み込めないけど) • 地区:競技全般の統括 • 本部:IT インフラ (Azure Platform を積極的に採用) の開発・運用保守 – むかしむかし「あずまひろしはじめました」というチームで参加していた (2007~2008) 2
お世話になってます、Azure サポート様のブログ ユーザーへ Azure VM の起動および停止のみを許可する方法 - Japan Azure IaaS
Support Blog https://blogs.technet.microsoft.com/jpaztech/2018/08/15/vm_start_stop_user/ 3
記事で書かれていること 4 アクセスできるリソース を限定 リソースへの操作を限定 ロールベースのアクセス 制御 (RBAC) この仮想マシンの 起動と停止の操作のみ
仮想マシンの起動と停止の操作のみ許可 • 以下の操作が Action プロパティに含むロールを割り当てる – Microsoft.Compute/virtualMachines/read 仮想マシンのプロパティの読み取り – Microsoft.Compute/virtualMachines/deallocate/action
仮想マシンの割り当て解除の操作 – Microsoft.Compute/virtualMachines/start/action 仮想マシンの開始の操作 • これらのプロパティが含む組み込みロールは – 所有者 (Owner) – 共同作成者 (Contributor) – 仮想マシン共同作成者 (Virtual Machine Contributor) – DevTest Labs ユーザー (DevTest Labs User) • ユーザーに組み込みロールを割り当てるなら 限定的な「DevTest Labs ユーザー」が最適♡ – しかし、他の操作 (LB や NIC にして等) もできてしまう • 許可する操作のみを明示的に限定したいなら、 「カスタムロール」を作成 → ユーザーにそれを割り当てる 5
私がやりたかったこと 6 カスタムロール定義 を作成 サブスクリプション に登録 あるリソースのアク セス制御 (IAM) にて
ユーザーにカスタム ロールを割り当てて 登録 この仮想マシンの 起動と停止と接続の操作のみ ※ARM VM だけでなく、 Classic VM も制御
1.カスタムロール定義 (json) を作成 { “Name”: “カスタムロールの名前", "IsCustom": true, “Description”: “カスタムロールの説明",
"Actions": [ このロールで実行できる操作を指定 ], "NotActions": [ 実行できる操作の中 (Actions) から除外する操作を指定 ], "DataActions": [ 対象のオブジェクト内のデータに対して、このロールで実行できるデータ操作を指定 ※プレビュー ], "NotDataActions": [ 実行できるデータ操作の中 (DataActions) から除外するデータ操作を指定 ※プレビュー ], "AssignableScopes": [ このロールを割り当て可能なスコープ (サブスクリプション, リソースグループ, リソース) を指定 ] } 7
リソースに対する操作を探し出す Azure Resource Manager のリソース プロバイダー操作 https://docs.microsoft.com/ja-jp/azure/role-based-access-control/resource-provider-operations 巨大なページなので、 ページ内検索を駆使して やりたいことを探し出す
ピンとこない説明に苦戦、 負けそう...(@_@) 8
(例) Azure VM の起動/停止/接続のみを許可したロール { "Name": "Azure VM Start/Stop/Connect", "IsCustom":
true, "Description": "Azure 仮想マシンの起動、停止、接続のみを許可するロール", "Actions": [ "Microsoft.Compute/virtualMachines/read" ,"Microsoft.Compute/virtualMachines/deallocate/action" ,"Microsoft.Compute/virtualMachines/restart/action" ,"Microsoft.Compute/virtualMachines/start/action" ,"Microsoft.Network/networkInterfaces/*/read" ,"Microsoft.Network/networkInterfaces/read" ,"Microsoft.Resources/subscriptions/resourceGroups/read" ,"Microsoft.Resources/subscriptions/resourceGroups/resources/read" ,"Microsoft.ClassicCompute/virtualMachines/read" ,"Microsoft.ClassicCompute/VirtualMachines/start/action" ,"Microsoft.ClassicCompute/virtualMachines/shutdown/action" ,"Microsoft.ClassicCompute/virtualMachines/restart/action" ,"Microsoft.ClassicCompute/virtualMachines/downloadRemoteDesktopConnectionFile/action" ,"Microsoft.ClassicCompute/virtualMachines/operationStatuses/read" ], "AssignableScopes": [ “/subscriptions/<サブスクリプション ID>" ] } 9 ARM VM のプロパティの読み取り ARM VM の開始/再起動/割り当て解除 NIC のプロパティの読み取り RG や RG 内のリソースの読み取り Classic VM のプロパティの読み取り Classic VM の開始/再起動/割り当て解除 Classic VM の RDP ファイルのダウンロード Classic VMの操作状態の読み込み ※あくまで一例です
2.サブスクリプションに登録 PowerShell で行う # ログイン PS C:¥> Login-AzureRmAccount # サブスクリプションを選択
PS C:¥> Select-AzureRmSubscription -Subscription <サブスクリプション ID> # カスタムロールを登録 PS C:¥> New-AzureRmRoleDefinition -InputFile <カスタムロール定義ファイルパス> 10
3~4.リソースの IAM でユーザーにロールを割り当てる 11
ここで学んだこと カスタムロールを書き換えたい!! • このようにやってはダメ – カスタムロールを Remove → New –
ユーザーにロールを再割り当て • こんなふうにやろう – Get-AzureRmRoleDefinition →プロパティを編集 →Set-AzureRmRoleDefinition – Actions や NotActions などの データ型は List<string> – New-Object でオブジェクトを 作って、中身入れて、 該当プロパティに上書き 12 反映がとても遅い!! ※経験談
まとめ • Azure 使いたいという社内からの要望はいっぱいある • だけど、自由に使わせるわけにはいかない • 「カスタムロール」と「Azure ポリシー」は、情シスには強力な武器 •
ちょっと面倒くさいけど、カスタムロールの取り扱いは 思ってたよりカンタンだった 13
参考文献 • ユーザーへ Azure VM の起動および停止のみを許可する方法 - Japan Azure IaaS
Support Blog https://blogs.technet.microsoft.com/jpaztech/2018/08/15/vm_start_stop_user/ • ロールベースのアクセス制御 (RBAC) の設定 – カスタムロールの使用 - Japan Azure IaaS Support Blog https://blogs.technet.microsoft.com/jpaztech/2016/10/12/rbac-custom-role/ • Azure の組み込みロール https://docs.microsoft.com/ja-jp/azure/role-based-access-control/built-in-roles • Azure のカスタム ロール https://docs.microsoft.com/ja-jp/azure/role-based-access-control/custom-roles • ロール定義について https://docs.microsoft.com/ja-jp/azure/role-based-access-control/role-definitions • Azure Resource Manager のリソース プロバイダー操作 https://docs.microsoft.com/ja-jp/azure/role-based-access-control/resource-provider-operations 14