Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
コストと脅威を同時に削減! Azureリソースを
Azure AD で効率的に守るためのノウハウ集
安納 順一
日本マイクロソフト株式会社
Commercial Software Engineering
CI01
2
「安全」にしてください!
3
技術 運用
“安全”であることを維持し続けられることが重要
4
Security DevOps
Secure the
subscription
Enable
secure
developme-
nt
Integrate
security into
CICD
Continuous
Assurance
Al...
5
6
Azure AD Join
パスワード連携
OMA-DM
オンプレミス
SAML 2.0
WS-Federation
OpenID Connect
OAuth 2.0
ID
管理
認証
Active
Directory
U/P Sync
S...
7
Azure Resource Management API
Azure サブスクリプション
8
アプリケーション サービス プロバイダー
条件付きアクセス
Identity Protection
MFA
9
Azure サブスクリプション アプリケーション サービス プロバイ
ダー
https://docs.microsoft.com/ja-jp/azure/sql-database/sql-database-conditional-access
https://docs.microsoft.com/ja-jp/azure/sql-database/sql-database-dynamic-data-masking-get-started-portal
name division ema...
const string authString = "https://login.windows.net/hogehoge.com";
const string clientID = "07e33f8a-166f-4d79-a46d-f96dc...
サブスクリプション
Azure Resource Manager
Azure AD で保護されたリソース”に安全にアクセスするには、
import urllib
import json
from collections import OrderedDict
import pprint
import matplotlib.pyplot as plt
from PIL impor...
Config[“AppSecret"]
Config[“AppSecret"]
ハンドオフがある
んじゃない?
そもそも人が介在すること自体が不安
技術だけでなく
セキュリティ運用ルールにおける
ガバナンスとコンプライアンス
RBAC
信頼関係
http://169.254.169.254/
metadata/instance?api-
version=2018-02-01
metadata
• ARM 配下の仮想マシン インスタンスに関する情報を提供するインターフェース
• 実行中の...
http://169.254.169.254/metadata/Identity/OAuth/Token
'http://169.254.169.254/metadata/identity/oauth2/token
?api-version=2...
StatusCode : 200
StatusDescription : OK
Content : {"access_token":"eyJ0eXAiOiJKV1QiLxxxxxxxxxxSUzI1NiIsIng1dCI6IndVTG1ZZnN...
$token = ($response.content | ConvertFrom-Json).access_token
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IndVTG1ZZnNxZFF1V...
$KeyVault = "https://pharaojpkey.vault.azure.net/"
$KeyContainer = $KeyVault + "secrets/testSecret"
$KVuri = $KeyContainer...
const rp = require('request-promise');
const getToken = function(resource, apiver, cb) {
var options = {
uri: `${process.e...
• システム割り当てマネージド ID(system-assigned managed identity)
• Azure サービス インスタンス上で直接有効にされるID
• 各インスタンスで機能を有効にする
• インスタンスが削除された場合、A...
サービス システム割り当てID ユーザー割り当てID
Azure Virtual Machines 〇 Preview
Virtual Machine Scale Sets 〇 Preview
Azure App Service
Windows...
Service Resource ID Status
Azure Resource Manager https://management.azure.com/ 使用可能
Microsoft Graph https://graph.windows...
Resource
Group
{
"properties": {
"displayName": "NSG X on every nic",
"description": "This policy enforces a specific NSG on every virtua...
42
Blueprint
Policy Assignment
Role Assignment(RBAC)
Azure Resource Manager Template
Built-in
Custom
Management Group
and
43
43
Resource
Group
Azure Blueprints & Policy to get DevOps right | Best of Microsoft Ignite 2018
https://www.youtube.com/watch?v=OiOXlgFNgDo
NoOps
uncomfortable
No
Ops
Security DevOps
Secure the
subscriptio
n
Enable
secure
developme
-nt
Integrate
security
into CICD
Continuous
Assurance
Ale...
52
参考URL
https://docs.microsoft.com/ja-jp/azure/security/
• Advanced threat detection
• Azure logging and auditing
• Azure...
Information
「Ask The Speaker」
各ブレイクアウトセッション終了後の休憩時
間に、
登壇したスピーカーに直接ご質問いただける
コーナーを B2F 「Ask The Speaker」
Room に用意
しています。セッシ...
セッションアンケートにご協力ください。
公式イベントアプリで、「Microsoft Tech Summit 2018 参加者アンケート(必
須)」と
「各セッションアンケート( 5 つ以上)」、合わせて 6 つ以上のアンケートに
ご回答ください...
55
© 2018 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD
Prochain SlideShare
Chargement dans…5
×

Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD

414 vues

Publié le

this is the deck used in Tech Summit Japan 2018
* sorry in Japanese

Publié dans : Technologie
  • Soyez le premier à commenter

Azure AD によるリソースの保護 how to protect and govern resources under the Azure AD

  1. 1. コストと脅威を同時に削減! Azureリソースを Azure AD で効率的に守るためのノウハウ集 安納 順一 日本マイクロソフト株式会社 Commercial Software Engineering CI01
  2. 2. 2 「安全」にしてください!
  3. 3. 3 技術 運用 “安全”であることを維持し続けられることが重要
  4. 4. 4 Security DevOps Secure the subscription Enable secure developme- nt Integrate security into CICD Continuous Assurance Alerting & Monitoring Cloud Risk Governance 起点はサブスクリプションのセキュリティ設 計 • Azure AD による認証と認可 • 多要素認証 • Identity Protection • Managed Identity • ARM & Role-based Access Control • モニター • Azure セキュリティセンター • Log Analytics • ガバナンス • Azure Blueprints/Azure Policy • Just Enough Administration(JEA) • PowerShell JEA • Azure AD 特権管理
  5. 5. 5
  6. 6. 6 Azure AD Join パスワード連携 OMA-DM オンプレミス SAML 2.0 WS-Federation OpenID Connect OAuth 2.0 ID 管理 認証 Active Directory U/P Sync SSO 業界標準プロトコルの サポート 他社 SaaS との ID 連携 Microsoft Passport Windows Hello Windows 10 Browser セキュリティ ポリシー アプリ配布/利用制限 暗号化, 権限管理,追跡 BYOD/CYOD 社内業務 SAML 2.0 WS-Fed. Azure Machine Learning Intune Subscription RBAC … Proxy Connector KCD ID 同期 条件付きアクセス 特権 ID 管理 RBAC Managed ID 多要素認証必須 アクセスOK アクセス不可 ID 連携 Information Protection MDM/ MAM/ MCM B2B Azure IaaS Domain Services VPN Kerberos ldap NTLM Group Policy SPNego IWA アクセス パネルBusiness Store SCIM 2.0 監査 ログ解析 シャドウIT検出 リスクベース認証 MS Account
  7. 7. 7 Azure Resource Management API Azure サブスクリプション
  8. 8. 8 アプリケーション サービス プロバイダー 条件付きアクセス Identity Protection MFA
  9. 9. 9 Azure サブスクリプション アプリケーション サービス プロバイ ダー
  10. 10. https://docs.microsoft.com/ja-jp/azure/sql-database/sql-database-conditional-access
  11. 11. https://docs.microsoft.com/ja-jp/azure/sql-database/sql-database-dynamic-data-masking-get-started-portal name division email phone Junichia SEI jxxx@xxxx.com 000-0000-0000 Hirosho C+E hxxx@xxxx.com 000-0000-0000 Sahomma SET sxxx@xxxx.com 000-0000-0000 drobbins DevCrew dxxx@xxxx.com 000-0000-0000
  12. 12. const string authString = "https://login.windows.net/hogehoge.com"; const string clientID = "07e33f8a-166f-4d79-a46d-f96dccf08b76"; const string clientSecret = "s9e6moGcFsRPP0rENcniLxxxxxhgmpGxxxxxpSIenvY="; const string resAzureGraphAPI = "https://graph.windows.net"; const string serviceRootURL = "https://graph.windows.net/hogehoge.com”; こいつをなんとかしたい ※ SQL 接続文字列も同様
  13. 13. サブスクリプション Azure Resource Manager Azure AD で保護されたリソース”に安全にアクセスするには、
  14. 14. import urllib import json from collections import OrderedDict import pprint import matplotlib.pyplot as plt from PIL import Image,ImageOps import cv2 import numpy import string import glob #img = cv2.imread("./images/給振用紙サンプル_10_U6.jpg") imgfile_folder = 'images_labeled' allFiles = [] #allFiles = glob.glob(imgfile_folder + '/*.jpg') allFiles = glob.glob(imgfile_folder + '/7*.jpg') print(str(len(allFiles)) + 'このファイルを処理します') #print(allFiles) imgs = [] p = [] for f in allFiles: img = cv2.imread(f) imgs.append(img) #img = cv2.equalizeHist(img) img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) gamma = 2.0 imax = img.max() img = imax * (img / imax)**(1/gamma) #plt.imshow(img) im = Image.fromarray(numpy.uint8(img)) #im = im.convert('L') im = ImageOps.invert(im) #plt.imshow(im) width, height = im.size img = [] for y in range(height): for x in range(width): img.append(im.getpixel((x,y))) img.insert(0,"0") #ダミーのラベルデータを入れておく
  15. 15. Config[“AppSecret"]
  16. 16. Config[“AppSecret"] ハンドオフがある んじゃない? そもそも人が介在すること自体が不安
  17. 17. 技術だけでなく セキュリティ運用ルールにおける ガバナンスとコンプライアンス
  18. 18. RBAC 信頼関係
  19. 19. http://169.254.169.254/ metadata/instance?api- version=2018-02-01 metadata • ARM 配下の仮想マシン インスタンスに関する情報を提供するインターフェース • 実行中の仮想マシン インスタンスからのみアクセス可能 • ルーティング不可能なローカルホスト(169.254.169.254)から取得する http://169.254.169.254/metadata/instance/<category> { "compute": { "location": "westus", "name": "avset2", "offer": "UbuntuServer", "osType": "Linux", "placementGroupId": "", "platformFaultDomain": "1", "platformUpdateDomain": "1", "publisher": "Canonical", "resourceGroupName": "myrg", "sku": "16.04-LTS", "subscriptionId": "xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx", "tags": "", "version": "16.04.201708030", "vmId": "13f56399- bd52-4150-9748-7190aae1ff21", "vmScaleSetName": "", "vmSize": "Standard_D1", "zone": "1" }, "network": { "interface": [ { "ipv4": { "ipAddress": [ { "privateIpAddress": "10.1.2.5", "publicIpAddress": "X.X.X.X" } ], "subnet": [ { "address": "10.1.2.0", "prefix": "24" } ] }, "ipv6": { "ipAddress": [] }, "macAddress": "000D3A36DDED" } ] } } api-version=2017-08-01 Endpoint Parameter Header Metadata="true"
  20. 20. http://169.254.169.254/metadata/Identity/OAuth/Token 'http://169.254.169.254/metadata/identity/oauth2/token ?api-version=2018-02-01 &resource=https%3A%2F%2Fvault.azure.net' Endpoint Parameter api-version=2018-02-01 resource=https%3A%2F%2Fvault.azure.net Header Metadata="true"
  21. 21. StatusCode : 200 StatusDescription : OK Content : {"access_token":"eyJ0eXAiOiJKV1QiLxxxxxxxxxxSUzI1NiIsIng1dCI6IndVTG1ZZnNxZFF1V3RW Xy1oeFZ0REpKWkxxxxxxxxxxZCI6IndVTG1ZZnNxZFF1V3RWXy1oeFZ0REpKWk00USJ9.eyJhdWQiOiJo dHRwczovL3ZhdWx0LmF6dXJlxxxxxxxxxxlzcy... RawContent : HTTP/1.1 200 OK Content-Length: 1599 Content-Type: application/json; charset=utf-8 Date: Wed, 07 Nov 2018 04:12:01 GMT Server: Microsoft-IIS/10.0 {"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz... Forms : {} $resource = 'https%3A%2F%2Fvault.azure.net' $baseurl = 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01' $url = $baseurl + '&resource=' + $resource $response = Invoke-WebRequest ` -Uri $url ` -Method GET ` -Headers @{Metadata="true"}
  22. 22. $token = ($response.content | ConvertFrom-Json).access_token eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IndVTG1ZZnNxZFF1V3RWXy1oeFZ0REpKWk00USIsImtpZCI6IndVTG1ZZn NxZFF1V3RWXy1oeFZ0REpKWk00USJ9.eyJhdWQiOiJodHRwczovL3ZhdWx0LmF6dXJlLm5ldCIsImlzcyI6Imh0dHBzOi8vc3RzLnd pbmRvd3MubmV0L2M5Njg3MTQ1LTUyMWYtNDJlNi1hMDAyLWMyZGY0MDRhNzFlZS8iLCJpYXQiOjE1NDE1NjM2MjEsIm5iZiI6MTU0M TU2MzYyMSwiZXhwIjoxNTQxNTkyNzIxLCJhaW8iOiI0MlJnWUlnTys5WmZMcjV1cnl6djNUV3Jkd3ZjQXdBPSIsImFwcGlkIjoiZDR mMDAzMmMtODBiNy00NzMyLThiOTUtZjFlYjllZmQ1N2NjIiwiYXBwaWRhY3IiOiIyIiwiZV9leHAiOjI4ODAwMCwiaWRwIjoiaHR0c HM6Ly9zdHMud2luZG93cy5uZXQvYzk2ODcxNDUtNTIxZi00MmU2LWEwMDItYzJkZjQwNGE3MWVlLyIsIm9pZCI6ImNlNDY2OGM1LWF lOWQtNDZmYS1iMTYxLWYxOGFiYWI2ODRkOSIsInN1YiI6ImNlNDY2OGM1LWFlOWQtNDZmYS1iMTYxLWYxOGFiYWI2ODRkOSIsInRpZ CI6ImM5Njg3MTQ1LTUyMWYtNDJlNi1hMDAyLWMyZGY0MDRhNzFlZSIsInV0aSI6ImhNLWlCeXBXUGtLaE9UNWlvZmtEQUEiLCJ2ZXI iOiIxLjAiLCJ4bXNfbWlyaWQiOiIvc3Vic2NyaXB0aW9ucy8zMjZjMzU5Ni04YWRhLTQ0YmItYWY2OS1iZDk4YWVmMGFjYmUvcmVzb 3VyY2Vncm91cHMvdGVjaHN1bW1pdDIwMTgvcHJvdmlkZXJzL01pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lcy90czIwMTh 2bTAyIn0.jWbL_EZyr43BgQEN-CC5cM15XTFeSVmZpKrUW3-N5SJpNONpES6Q8YQQkKRhRrpmkBADy45fI8eMj28R7sCDo1lTl4hzz aEplNlgSKtDv1xO6GD9vaxlS9V1eMcjimLEHk9N5QyZSllv21_F32rsnC_dv67W5v0KQZVGgTpHallEDR1SL_p9-kagdy4KBJ00GnR ooW7laLmQUkxDlYBVAv0kB6ebnkPspWKoFQSxk0xd-HVKHDBvUVhCBW8dTVTX3XGDM8dcIH6c-EOde_uXdWO6q-nVJJZEYAzf4F3Vi IeMbM851Bc57Mp4MkhG38tEP4GF9eK7Jj8zXOTPLY10NA
  23. 23. $KeyVault = "https://pharaojpkey.vault.azure.net/" $KeyContainer = $KeyVault + "secrets/testSecret" $KVuri = $KeyContainer + "?api-version=2016-10-01" $KeyVaultResponse = Invoke-WebRequest ` -Uri $KVuri ` -Method GET ` -Headers @{Authorization="Bearer $KeyVaultToken"} ($KeyVaultResponse.Content | ConvertFrom-Json).Value
  24. 24. const rp = require('request-promise'); const getToken = function(resource, apiver, cb) { var options = { uri: `${process.env["MSI_ENDPOINT"]}/?resource=${resource}&api- version=${apiver}`, headers: { 'Secret': process.env["MSI_SECRET"] } }; rp(options) .then(cb); }
  25. 25. • システム割り当てマネージド ID(system-assigned managed identity) • Azure サービス インスタンス上で直接有効にされるID • 各インスタンスで機能を有効にする • インスタンスが削除された場合、Azure AD の資格情報および ID を自動的にクリーンアップされる • ユーザー割り当てマネージド ID(user-assigned managed identity) ※Preview • 複数のリソースに割り当て可能なマネージド ID • 現時点では VM と Container サービスでのみ使用可能 RBAC 信頼関係 信頼関係
  26. 26. サービス システム割り当てID ユーザー割り当てID Azure Virtual Machines 〇 Preview Virtual Machine Scale Sets 〇 Preview Azure App Service Windows:〇 Linux: Coming Soon ー Azure Functions 〇 ー Azure Logic Apps 〇 ー Azure Data Factory V2 〇 ー Azure API Management 〇 ー Azure Container Instances Windows: ー Linux: Preview Windows: - Linux: Preview 最新情報 https://docs.microsoft.com/ja-jp/azure/active-directory/managed-identities-azure-resources/services-support-msi 2018/10/23 現在
  27. 27. Service Resource ID Status Azure Resource Manager https://management.azure.com/ 使用可能 Microsoft Graph https://graph.windows.net 使用可能 Azure Key Vault https://vault.azure.net/ 使用可能 Azure Data Lake https://datalake.azure.net/ 使用可能 Azure SQL https://database.windows.net/ 使用可能 Azure Event Hubs https://eventhubs.azure.net/ プレビュー Azure Service Bus https://servicebus.azure.net/ プレビュー Azure Storage https://storage.azure.com/ プレビュー 最新情報 https://docs.microsoft.com/ja-jp/azure/active-directory/managed-identities-azure-resources/services-support-msi 2018/10/23 現在
  28. 28. Resource Group
  29. 29. { "properties": { "displayName": "NSG X on every nic", "description": "This policy enforces a specific NSG on every virtual network interface", "parameters": { "nsgId": { "type": "string", "metadata": { "description": "Resource Id of the Network Security Group", "displayName": "Network Security Group Id" } } }, "policyRule": { "if": { "allOf": [ { "field": "type", "equals": "Microsoft.Network/networkInterfaces" }, { "not": { "field": "Microsoft.Network/networkInterfaces/networkSecurityGroup.id", "equals": "[parameters('nsgId')]" } } ] }, "then": { "effect": "deny" } } } }
  30. 30. 42 Blueprint Policy Assignment Role Assignment(RBAC) Azure Resource Manager Template Built-in Custom Management Group and
  31. 31. 43 43
  32. 32. Resource Group
  33. 33. Azure Blueprints & Policy to get DevOps right | Best of Microsoft Ignite 2018 https://www.youtube.com/watch?v=OiOXlgFNgDo
  34. 34. NoOps
  35. 35. uncomfortable No Ops
  36. 36. Security DevOps Secure the subscriptio n Enable secure developme -nt Integrate security into CICD Continuous Assurance Alerting & Monitoring Cloud Risk Governance 起点はサブスクリプションのセキュリティ設計 • Azure AD による認証と認可 • 多要素認証 • Identity Protection • Managed Identity • ARM & Role-based Access Control • モニター • Azure セキュリティセンター • Log Analytics • ガバナンス • Azure Blueprints/Azure Policy • Just Enough Administration(JEA) • PowerShell JEA • Azure AD 特権管理
  37. 37. 52 参考URL https://docs.microsoft.com/ja-jp/azure/security/ • Advanced threat detection • Azure logging and auditing • Azure network security • Azure serverless platform security • Container security in Azure • Enabling operational security • Isolation in the Azure cloud • Secure hybrid network architecture • Security technical capabilities
  38. 38. Information 「Ask The Speaker」 各ブレイクアウトセッション終了後の休憩時 間に、 登壇したスピーカーに直接ご質問いただける コーナーを B2F 「Ask The Speaker」 Room に用意 しています。セッション内容のより深い理解 のため、 ぜひお役立てください。 (※ハンズオンラーニング、シアターセッション、ビジネス トラック 及び 一部のセッションを除きます) EXPO AREA 1 EXPO AREA 2 Room C
  39. 39. セッションアンケートにご協力ください。 公式イベントアプリで、「Microsoft Tech Summit 2018 参加者アンケート(必 須)」と 「各セッションアンケート( 5 つ以上)」、合わせて 6 つ以上のアンケートに ご回答ください。 もれなくオリジナルグッズを贈呈いたします。 Information Twitter のご案内 本セッションに関するご質問やご感想は、 #mstsjp18 と セッション ID の ハッシュタグで、ご投稿をお願いします。 #mstsjp18
  40. 40. 55 © 2018 Microsoft Corporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

×