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
24
情シスの味方、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
1k
自動化で、マネージド ID と Connect-AzAccount と azcopy login を使用する際に気をつけること
tetsuyaooooo
0
400
キャリア教育ミニ講演会 - システムエンジニア編
tetsuyaooooo
0
43
私のMCP試験の挑み方
tetsuyaooooo
0
34
ETロボコン2020 競技会場システムのおはなし
tetsuyaooooo
0
16
Microsoft MVP を受賞するために取り組んだこと
tetsuyaooooo
0
33
毎年恒例イベントを Azure Media Services を使ってオンラインで
tetsuyaooooo
0
51
Azure Internet Analyzer (Preview) を試してみる
tetsuyaooooo
0
35
Microsoft MVP が語る Azure 移行の勘所
tetsuyaooooo
0
25
Other Decks in Technology
See All in Technology
OPENLOGI Company Profile
hr01
0
53k
【shownet.conf_】コンピューティング資源を統合した分散コンテナ基盤の進化
shownet
PRO
0
270
仮想化って何だろう
shkoga
0
130
k6を活用した再現性・拡張性の高い負荷試験基盤の構築
biwashi
11
2.7k
DenoでもViteしたい!インポートパスのエイリアスを指定してラクラクアプリ開発
bengo4com
0
1.6k
SQLによるオブザーバビリティの進化とClickHouseの実力
mikimatsumoto
0
150
サーバレス基盤で Gemini の性能を引きだすアーキテクトを構築した話
antonnion
0
110
BLEA v3.0.0の新しいベストプラクティスを取り入れた効率的なAWS CDK開発/jawsug_cdk16
mhrtech
3
330
リスクから学ぶKubernetesコンテナセキュリティ/k8s-risk-and-security
mochizuki875
1
250
分析者起点の企画を成功させた連携面の工夫
lycorptech_jp
PRO
0
210
Dual level of task scheduling for VM workloads
ennael
PRO
0
160
【ログ分析勉強会#5】Elasticsearch/Kibana のパイプ型クエリー言語ES|QLの紹介 ~ Pandasと一緒にログ分析してみた
nobuhikosekiya
0
160
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
129
8.8k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
43
2k
Build The Right Thing And Hit Your Dates
maggiecrowley
30
2.3k
Designing Experiences People Love
moore
138
23k
Pencils Down: Stop Designing & Start Developing
hursman
119
11k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
28
1.7k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
363
22k
Optimizing for Happiness
mojombo
375
69k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
327
21k
Speed Design
sergeychernyshev
22
460
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
109
6.9k
Fireside Chat
paigeccino
31
2.9k
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