SlideShare a Scribd company logo
情シスの味方、
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

More Related Content

PPTX
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
PDF
ヤフー社内でやってるMySQLチューニングセミナー大公開
PDF
インフラエンジニアの綺麗で優しい手順書の書き方
PDF
JVMのGCアルゴリズムとチューニング
PDF
君はyarn.lockをコミットしているか?
PDF
もうひとつのアンチパターン OTLT、あるいは如何にして私はオレオレフレームワークを忌み嫌うようになったか
PDF
リッチなドメインモデル 名前探し
Amazon SageMakerでscikit-learnで作ったモデルのEndpoint作成
ヤフー社内でやってるMySQLチューニングセミナー大公開
インフラエンジニアの綺麗で優しい手順書の書き方
JVMのGCアルゴリズムとチューニング
君はyarn.lockをコミットしているか?
もうひとつのアンチパターン OTLT、あるいは如何にして私はオレオレフレームワークを忌み嫌うようになったか
リッチなドメインモデル 名前探し

What's hot (20)

PDF
AWSではじめるMLOps
PPTX
分散トレーシングAWS:X-Rayとの上手い付き合い方
PDF
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
PDF
シリコンバレーの「何が」凄いのか
PDF
Google Cloud で実践する SRE
PDF
目grep入門 +解説
PDF
分散トレーシング技術について(Open tracingやjaeger)
PDF
マイクロサービス 4つの分割アプローチ
PPTX
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PDF
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
PDF
Pythonによる黒魔術入門
PDF
AWSのログ管理ベストプラクティス
PDF
開発速度が速い #とは(LayerX社内資料)
PDF
Python 3.9からの新定番zoneinfoを使いこなそう
PDF
現場からみた Azure リファレンスアーキテクチャ答え合わせ
PPTX
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
AWSではじめるMLOps
分散トレーシングAWS:X-Rayとの上手い付き合い方
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
シリコンバレーの「何が」凄いのか
Google Cloud で実践する SRE
目grep入門 +解説
分散トレーシング技術について(Open tracingやjaeger)
マイクロサービス 4つの分割アプローチ
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
Pythonによる黒魔術入門
AWSのログ管理ベストプラクティス
開発速度が速い #とは(LayerX社内資料)
Python 3.9からの新定番zoneinfoを使いこなそう
現場からみた Azure リファレンスアーキテクチャ答え合わせ
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
Ad

Similar to 情シスの味方、Azure のカスタムロール (20)

PDF
Tech Summit 2017 CLD007 現場目線で Azure IaaS を解説
PDF
[Japan Tech summit 2017] CLD 007
PDF
VM ロールで仮想デスクトップ環を作ってみよう
PPTX
Azure id and rbac v0.7.19.0815
PDF
Windows Server 2012 R2 Hyper-V と Windows Azure 勘所
PPTX
エンジニアのための Azure 基礎知識
PDF
17-D-1 Azure開発の極意 ~2011年版~
PPTX
Windows azureって何
PDF
Microsoft MVP が語る Azure 移行の勘所
PDF
INF-001_詳説 Azure IaaS ~私はインフラが好きだ~
PDF
あなたもハマるかもしれない "Azure あるある" ~アーキテクトがクラウド導入の現場で見た課題の傾向と対策~
PDF
ARC-005_あなたもハマるかもしれない "Azure あるある" ~アーキテクトがクラウド導入の現場で見た課題の傾向と対策~
PDF
はじめての Azure 開発
PDF
Azure Stack 受け入れ準備_20180630
PDF
Hyper-V 仮想マシンをAzure ARMへV2C移行...のメモ
PDF
Azureの契約直前・直後に意識しておくこと10箇条
PDF
もっとわかる Microsoft Azure 最新技術アップデート編 - 20150123
PPTX
JDMC Azureアプリ開発入門
PPTX
2020 11/25 第29回 Tokyo Jazug Night 発表資料
PDF
Vsug day 2010 summer windows azure でやってみよう
Tech Summit 2017 CLD007 現場目線で Azure IaaS を解説
[Japan Tech summit 2017] CLD 007
VM ロールで仮想デスクトップ環を作ってみよう
Azure id and rbac v0.7.19.0815
Windows Server 2012 R2 Hyper-V と Windows Azure 勘所
エンジニアのための Azure 基礎知識
17-D-1 Azure開発の極意 ~2011年版~
Windows azureって何
Microsoft MVP が語る Azure 移行の勘所
INF-001_詳説 Azure IaaS ~私はインフラが好きだ~
あなたもハマるかもしれない "Azure あるある" ~アーキテクトがクラウド導入の現場で見た課題の傾向と対策~
ARC-005_あなたもハマるかもしれない "Azure あるある" ~アーキテクトがクラウド導入の現場で見た課題の傾向と対策~
はじめての Azure 開発
Azure Stack 受け入れ準備_20180630
Hyper-V 仮想マシンをAzure ARMへV2C移行...のメモ
Azureの契約直前・直後に意識しておくこと10箇条
もっとわかる Microsoft Azure 最新技術アップデート編 - 20150123
JDMC Azureアプリ開発入門
2020 11/25 第29回 Tokyo Jazug Night 発表資料
Vsug day 2010 summer windows azure でやってみよう
Ad

情シスの味方、Azure のカスタムロール

  • 1. 情シスの味方、 Azure のカスタムロール Japan Azure User Group 8 周年 LT 2018/09/22 パーソル プロセス&テクノロジー株式会社 Microsoft MVP for Microsoft Azure 小田島 哲也
  • 2. 自己紹介 • 小田島 哲也 (おだしま てつや) • パーソルプロセス&テクノロジー – 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
  • 3. お世話になってます、Azure サポート様のブログ ユーザーへ Azure VM の起動および停止のみを許可する方法 - Japan Azure IaaS Support Blog https://blogs.technet.microsoft.com/jpaztech/2018/08/15/vm_start_stop_user/ 3
  • 5. 仮想マシンの起動と停止の操作のみ許可 • 以下の操作が 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
  • 7. 1.カスタムロール定義 (json) を作成 { “Name”: “カスタムロールの名前", "IsCustom": true, “Description”: “カスタムロールの説明", "Actions": [ このロールで実行できる操作を指定 ], "NotActions": [ 実行できる操作の中 (Actions) から除外する操作を指定 ], "DataActions": [ 対象のオブジェクト内のデータに対して、このロールで実行できるデータ操作を指定 ※プレビュー ], "NotDataActions": [ 実行できるデータ操作の中 (DataActions) から除外するデータ操作を指定 ※プレビュー ], "AssignableScopes": [ このロールを割り当て可能なスコープ (サブスクリプション, リソースグループ, リソース) を指定 ] } 7
  • 8. リソースに対する操作を探し出す Azure Resource Manager のリソース プロバイダー操作 https://docs.microsoft.com/ja-jp/azure/role-based-access-control/resource-provider-operations 巨大なページなので、 ページ内検索を駆使して やりたいことを探し出す ピンとこない説明に苦戦、 負けそう...(@_@) 8
  • 9. (例) 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の操作状態の読み込み ※あくまで一例です
  • 10. 2.サブスクリプションに登録 PowerShell で行う # ログイン PS C:¥> Login-AzureRmAccount # サブスクリプションを選択 PS C:¥> Select-AzureRmSubscription -Subscription <サブスクリプション ID> # カスタムロールを登録 PS C:¥> New-AzureRmRoleDefinition -InputFile <カスタムロール定義ファイルパス> 10
  • 12. ここで学んだこと カスタムロールを書き換えたい!! • このようにやってはダメ – カスタムロールを Remove → New – ユーザーにロールを再割り当て • こんなふうにやろう – Get-AzureRmRoleDefinition →プロパティを編集 →Set-AzureRmRoleDefinition – Actions や NotActions などの データ型は List<string> – New-Object でオブジェクトを 作って、中身入れて、 該当プロパティに上書き 12 反映がとても遅い!! ※経験談
  • 13. まとめ • Azure 使いたいという社内からの要望はいっぱいある • だけど、自由に使わせるわけにはいかない • 「カスタムロール」と「Azure ポリシー」は、情シスには強力な武器 • ちょっと面倒くさいけど、カスタムロールの取り扱いは 思ってたよりカンタンだった 13
  • 14. 参考文献 • ユーザーへ 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