狠狠撸
Submit Search
MS Interact 2019 - Azureサービスで実現するセキュリティ全体像
?
0 likes
?
1,836 views
Ai Hayakawa
Follow
2019/06/29 に開催された MS Interact 2019 の登壇資料です。
Read less
Read more
1 of 61
Download now
Downloaded 17 times
More Related Content
MS Interact 2019 - Azureサービスで実現するセキュリティ全体像
1.
Azureサービスで実現する セキュリティ全体像 #MSInteract19 2019/06/29 Ai Hayakawa
2.
ご注意 ? 本セッションの内容は、あくまで個人の意見/見解であり、 所属する会社やマイクロソフトの見解ではないのでご注意ください。 ? 最新の情報はAzure公式ドキュメントをご確認ください。 ?
本セッションから得られた情報で生じた不利益について 発表者は一切の責任を負うことはできませんのでご了承ください。
3.
自己紹介 ? 名前:早川 愛(はやかわ
あい) ? 所属:某大手SIer ? 業務:インフラエンジニア、金融系のAzure導入や設計支援を担当 ? クラウドは適材適所で選んで使おう
4.
登壇のお誘いがきたとき ? Azure歴3年程度、Interact 初参加 ?
60分の登壇ってけっこう長くね???? ? 昨年の登壇情報を確認すると中の人やMVPがたくさん??? ((((;?Д?))))????????????
5.
登壇決意のきっかけ ? 興味はあるが決めかねていたときに背中を押してくれたのは あるWeb記事でした 「澤円が解説!TechキャリアNew Wave」 https://type.jp/et/feature/category/career/newwave 学びはインプットよりアウトプットを意識せよ イベントをただ受講するより、 めちゃくちゃ学びが多い。 最初はそれほど大きな貢献は出来ないかもしれない。 それは徐々に大きくしていけばいいだけ。
6.
Agenda ? Azure のセキュリティとは? ?
ID?権限管理 ? ネットワーク管理 ? データ保護 ? 監査ログ ? モニタリング?ガバナンス
7.
Agenda ? Azure のセキュリティとは? ?
ID?権限管理 ? ネットワーク管理 ? データ保護 ? 監査ログ ? モニタリング?ガバナンス
8.
共同責任モデル クラウドの責任範囲と利用者の責任範囲 出典)https://docs.microsoft.com/ja-jp/azure/security/azure-security-infrastructure
9.
クラウドの責任範囲 第三者認証?レポートを使って評価 出展)Ignite BRK3059 より
https://aka.ms/AzureCompliance
10.
利用者の責任範囲 ID?権限管理 ネットワーク管理 データ保護 監査ログ
モニタリング? ガバナンス
11.
Agenda ? Azure の共同責任モデル ?
ID?権限管理 ? ネットワーク管理 ? データ保護 ? 監査ログ ? モニタリング?ガバナンス
12.
ID?権限管理 Azure の ID
管理は Azure AD が担う ? 人がポータルにログインするためのID ? 対話的ログイン ? アプリケーションがAzureに アクセスするためのID ? 非対話ログイン ? サービスプリンシパル ? アプリケーションID ? シークレットキー/認証鍵 ? マネージドID ユーザー アプリケーション
13.
ID?権限管理 マネージドID ? 仮想マシンなどのAzureのサービスに対して権限を付与する仕組み ? シークレットキーをアプリケーションに保存する必要がないので認証 情報の漏えいリスクを軽減できる ?
シークレットキーが書かれたアプリをGithub公開してしまって高額請求が …なんてことがよくあります。 1. マネージドIDを有効化 3. SQL DB で Azure AD 認証を有効化 4. マネージドIDに対応するDBユーザー作成 2. AzureによってID自動生成5. トークンリクエスト?認証 7. DBアクセス 6. 一時トークン取得
14.
ID?権限管理 マネージドIDに対応しているサービス ? マネージドIDが使えるサービスは拡大中 アクセス元 アクセス先(Azure
AD 認証) サービス Azure VM Azure VMSS Azure App Service Azure Blueprint* Azure Functions Azure Logic Apps* Azure Data Factory v2 Azure API Management Azure Container Instances* Azure Key Vault Azure Data Lake Azure SQL Azure Event Hubs* Azure Service Bus* Azure BLOB/キュー Azure Analysis Services 出典)https://docs.microsoft.com/ja-jp/azure/active-directory/managed-identities-azure- resources/services-support-managed-identities *プレビュー
15.
ID?権限管理 ID管理のベストプラクティスに従う ? 特権ユーザーに多要素認証を適用する* ? Multi-Factor
Authentication を有効化 ? 特定のIPアドレスからの接続のみ許可する条件付きアクセスの有効化 ? パスワードリセットのセルフサービス有効化(SSPR)* ? ID管理を一元化する ? オンプレミスのADと同期、SSO https://docs.microsoft.com/ja-jp/azure/security/azure-security-identity-management-best-practices *ライセンスが必要
16.
Azure AD 管理者ロール ディレクトリ内の
Azure AD リソースの管理 ユーザーの作成や編集、ディレクトリ管理ロールの割り当て パスワードのリセット、etc… Azure RBAC (Role-based Access Control) Azureリソースマネージャー上の権限管理の仕組み Azure リソースに対するアクセス管理を提供する ID?権限管理 Azure リソースに関する権限は RBAC を使う ? Azure AD と Azure サブスクリプションの権限は別物
17.
ID?権限管理 職務を分離し、必要なアクセス許可のみを付与 ? ユーザーはグループに所属させてグループ単位で権限を管理する ? ロール定義(権限の定義) ?
まずはAzureで用意されている組み込みロールを利用 ? スコープ ? サブスクリプションかリソースグループで指定する (単独のリソースを指定するのはなるべく避ける) スコープ ロール定義 Owner Reader ???
18.
ID?権限管理 アクセス権限の記述 ? NotActions を指定しても、他に付与されているロール定義内で 許可されていると操作できてしまうので注意 { "Name":
“<Role name>", "IsCustom": true, "Description": “<Role Description>", "Actions": [ "*" ], "NotActions": [ "Microsoft.Storage/storageAccounts/write" ], "AssignableScopes": [ "/subscriptions/<Subscription ID>" ] } 除外するアクション 許可するアクション 割り当て可能なスコープ
19.
ID?権限管理 拒否割り当て ? Actions による許可定義より優先される ?
今は Azure Blueprints でのみ使用可能 ? Blueprints の割り当て時に「読み取り専用」「削除しない」から選択 ? Blueprintsについては後述
20.
Agenda ? Azure の共同責任モデル ?
ID?権限管理 ? ネットワーク管理 ? データ保護 ? 監査ログ ? モニタリング?ガバナンス
21.
ネットワーク管理 ネットワークを保護するポイント On-premises VPN,ExpressRoute Application Gateway (WAF) DDoS Protection VNET,
NSG Azure Firewall Service Endpoints
22.
On-premises ネットワーク管理 Azure 上の仮想ネットワーク VPN,ExpressRoute Application Gateway (WAF) DDoS
Protection VNET, NSG Azure Firewall Service Endpoints
23.
On-premises ネットワーク管理 オンプレミス環境との接続 VPN,ExpressRoute Application Gateway (WAF) DDoS Protection VNET,
NSG Azure Firewall Service Endpoints
24.
On-premises ネットワーク管理 PaaS 環境との接続 VPN,ExpressRoute Application Gateway (WAF) DDoS
Protection VNET, NSG Azure Firewall Service Endpoints
25.
ネットワーク管理 インターネットとの接続 On-premises VPN,ExpressRoute Application Gateway (WAF) DDoS Protection VNET,
NSG Azure Firewall Service Endpoints
26.
ネットワーク管理 Azure 上の仮想ネットワーク ? VNETは論理的に分離された利用者専用の仮想ネットワーク ?
アドレス空間は広めに確保する(16ビットくらい) ? 後からアドレスの再割当てが発生しないようにする ? 用途に応じてサブネットに分割 ? 分割し過ぎないこと。シンプルな設計を心がける。 ? サブネット間は自動でルーティングされる ? NSG (Network Security Group) ? サブネットに関連付けて、許可する通信を定義する ? 仮想マシン単位で制御するなら Application Security Group(ASG) を使う
27.
ネットワーク管理 仮想マシン単位でのアクセス制御 ? Application Security
Group(ASG) Subnet Network Security Gruop Protocol Src Dst Action HTTP WebServers AppServers Allow NICに対して ASGを設定する App ServersWeb Servers
28.
ネットワーク管理 オンプレミス環境との接続 ? Azureとオンプレミスの間の通信はインターネットへの露出を避ける ? Express
Route ? プライベート接続によりオンプレミスのネットワークをAzureに拡張 ? 専用WANなので安定した帯域幅とスループットを得られる ? Site to Site VPN ? インターネットVPNによりオンプレミス環境とVNETを接続する ? 帯域幅は最大約 1.25 Gbps に制限される
29.
ネットワーク管理 PaaS 環境との接続 ? PaaS
へのアクセス制限には以下の3つの手段がある ? サービスエンドポイントで特定のVNETに制限する:おすすめ! ? VNET内にリソースを作成する:ブルジョア向け ? IPファイアウォール:アクセス元でパブリックIPアドレスが必要 ? サービスによって対応している機能が異なるため確認すること https://docs.microsoft.com/ja-jp/azure/virtual-network/virtual-network-service-endpoints-overview https://docs.microsoft.com/ja-jp/azure/virtual-network/virtual-network-for-azure-services サービスエンドポイント VNET内にリソースを作成 IPファイアウォール 特徴 NSGで通信許可も必要なので注意 ブルジョア向け。PaaSごとに必須の Inbound/Outbound通信要件は開けておく アクセス元でパブリックIPが必要 対応 サービス Azure Storage Azure SQL Database Azure Database for xxx Azure Cosmos DB Azure Key Vault Azure Event Hubs etc. App Service Environment Azure Kubernetes Service(AKS) Azuer SQL Database(マネージドインスタンス) Azure Cache for Redis Azure HDInsight etc. Azure Storage Azure SQL Database Azure Database for xxx Azure Cosmos DB Azure Key Vault etc.
30.
ネットワーク管理 サービスエンドポイント PaaS サービスへのアクセスを自分のVNETに限定できる 1. VNETでサービスの許可 ?
アクセスさせたいエンドポイントを有効化 2. PaaSでファイアウォール設定 ? 特定のVNETサブネットからのアクセスのみ許可 ? ルートテーブルは自動更新 2. ファイアウォール 特定のVNETサブネットからの アクセスのみ許可 1. サービスの許可 アクセスさせたい エンドポイントを有効化
31.
ネットワーク管理 アクセス先のストレージを制限 ? サービスエンドポイントのポリシーで アクセス先のサービスを限定することもできる(プレビュー) ? 個人サブスクリプションのストレージへのデータ持ち出しを禁止できる 企業ストレージ 個人ストレージ
32.
ネットワーク管理 インターネットとの接続 ? Azure のネットワークは既定でインターネットと通信可能 ?
インターネットとの境界を保護するためのサービス DDoS Protection Application Gateway (WAF) Azure Firewall 説明 DDoS対策 一般的な脆弱性からWeb アプリケーションを保護 集中型ステートフルファ イアウォール 特徴 ? Layer 3/4 (SYN/UDPフラッド、反 射攻撃等) ? Layer 7 の保護はWAF と統合 ? Layer 7 ? Inbound通信の制御 (HTTP/S) ? Layer 3~7 ? Inbound通信の制御 (Non-HTTP/S) ? Outbound通信の制御 その他 機能 ? Standardプランでは利 用者ごとのトラフィック パターンを機械学習 ? L7 ロードバランサー ? FQDNフィルター ? FQDN Tag ? SNAT/DNAT
33.
Agenda ? Azure の共同責任モデル ?
ID?権限管理 ? ネットワーク管理 ? データ保護 ? 監査ログ ? モニタリング?ガバナンス
34.
データの保護 データの所在 「MicrosoftOnlineServicesTerms(Japanese)(June2019)」 https://www.microsoftvolumelicensing.com/Downloader.aspx?Docume ntId=15162 ? データ保護条件 ? 顧客データの開示 法令により求められる場合を除き、マイクロソフトが顧客データを法執行機関 に開示することはありません。 ?
顧客データの保存場所 Microsoft Azure コア サービス - お客様が地域内で展開されるように特定の サービスを構成する場合、当該サービスについては、マイクロソフトは顧客 データを指定された地域内に保存します。Microsoftトラスト センターに詳し く規定するとおり、一部のサービスでは、お客様は特定の地域内または米国以 外で展開を構成できない場合があります。
35.
データの保護 データの暗号化 ? データの重要度に応じて保存時のデータを暗号化して保護する ? 2つの暗号化モデル クライアントサイド暗号化
サーバーサイド暗号化 特徴 ユーザーのアプリケーション、また はサービスアプリケーションによっ て暗号化する Azureの機能によってサーバ側で暗 号化する メリット Azure がデータを受信するときに既 に暗号化されており、ユーザーの管 理下でデータが確実に保護される アプリケーションは暗号化を意識す る必要がない 鍵管理 ユーザ独自で管理しても良いし、 Key Vault を使用することも可能 サービスによって異なる
36.
データの保護 サービスごとのサーバーサイド暗号化 サービス 暗号化方法 Azure Storage
Azure BLOB/Azure Files は Azure Storage Service Encryption(SSE) により既定で暗号化される。無効化できない。 Azure VM ストレージ暗号化に加え、OSレイヤでもデータを保護するには Azure Disk Encryption を使う。 内部的には Windows BitLocker/Linux DM-Crypt Azure SQL Database Transparent Data Encryption (TDE) により既定で暗号化され る。 Azure Cosmos DB 既定で暗号化され、ユーザーによる制御はできない。 Azure Data Lake 既定で暗号化される。マスター暗号化キーは Key Vault で管理。
37.
データの保護 キーを適切に保護して管理 Azure dedicated HSM Azure Key
Vault サービスが管理 保管 Azure Azure Azure 管理 利用者がコントールす る(BYOK可) 利用者がコントールす る(BYOK可) ユーザーによるコント ロール不可 メリット FIPS準拠のHSM(専有) で稼働 FIPS準拠のHSMで稼働 他のAzureサービスと統 合されている ユーザーはキー管理を 意識する必要がない 対応 サービス Azure VMs SQL Server in Azure VM Azure Disk Encryption Azure App Service Azure Storage Azure SQL Database etc. Azure Storage Azure SQL Database Azure Database for xx Azure Cosmos DB etc. 利用者が管理 サービスが管理
38.
Agenda ? Azure の共同責任モデル ?
ID?権限管理 ? ネットワーク管理 ? データ保護 ? 監査ログ ? モニタリング?ガバナンス
39.
監査ログ 操作ログの取得 ? アクティビティログを保存する ? デフォルトで90日間Azureプラットフォーム上に保存される ?
Azure BLOB へアーカイブし、保存期間を設定する 【PowerShell】 【ポータル】 API呼び出し アーカイブ Azure BLOB アクティビティログ
40.
監査ログ サインインログの取得 ? Azure AD
サインインログを保存する ? デフォルトで30日間Azureプラットフォーム上に保存される ? Azure BLOB へアーカイブし、保存期間を設定する サインイン アーカイブ Azure BLOB サインインログ Azure AD
41.
監査ログ サービスごとの監査ログの取得 ? 必要に応じてサービスごとの監査ログも取得 ? Azure
AD 監査ログ ? Azure SQL Database 監査ログ ? NSG フローログ ? 用途に合わせてエクポート ? Azure BLOB:保管 ? Azure Event Hubs:イベント連携 ? Azure Log Analytics:ログ分析 Event Hubs Log Analytics BLOB
42.
Agenda ? Azure の共同責任モデル ?
ID?権限管理 ? ネットワーク管理 ? データ保護 ? 監査ログ ? モニタリング?ガバナンス
43.
モニタリング?ガバナンス よくあるガバナンス???つらみ 出展)TechSummit 2018 CI30より https://www.event-marketing.jp/events/mstechsummit/2018/download/freesess.aspx
44.
モニタリング?ガバナンス 理想的なガバナンス 出展)TechSummit 2018 CI30より https://www.event-marketing.jp/events/mstechsummit/2018/download/freesess.aspx
45.
モニタリング?ガバナンス Azureガバナンスサービス全体像 Azure Policy Azure
Blueprints Azure Sentinel Azure Advisor Azure Resource Graph Azure Active Directory Azure Management Group
46.
モニタリング?ガバナンス Azure Policy ? 準拠すべきルール(ポリシー)を事前に定義し、その内容に沿った構成 変更が行われているかを評価する ?
特定のタグの値が付与されているか? ? 許可されているリージョン(日本国内)か? ARM–ControlPlane Azure Policy Cloud Resource User Code
47.
モニタリング?ガバナンス Azure Policy ? ルールの種類 ?
拒否:ログに記録してリソースを作成させない ? 監査:ログ記録のみ ? 追加:ルールに従って定義を自動で付与 ? 評価のタイミング ? イベントベースの評価 (変更があったら) ? 定期的な評価 (24時間ごと) ? オンデマンド
48.
モニタリング?ガバナンス ポリシー定義例 ? 特定のタグの値が付与されていなかったら拒否する { "if": { "not"
: { "field" : "tags", "containsKey" : "costCenter" } }, "then" : { "effect" : "deny" } } 拒否 特定のタグ (costCenter)が付与さ れているなかったら
49.
モニタリング?ガバナンス よく利用するポリシー定義はGithubで公開されている ? https://github.com/Azure/azure-policy/
50.
モニタリング?ガバナンス Azure Blueprints ? RBAC、ARM
Template、Azure Policy を組み合わせて Azure 環境の”青写真”を定義 ? 一定のルールに従った環境を用意し、そこからの変更も制御できる ARM Template Azure PolicyRBAC Azure Blueprints 権限 環境 変更制御
51.
モニタリング?ガバナンス Azure Sentinel (プレビュー) ?
セキュリティ分析を提供するクラウドネイティブな SIEM (Security Information and Event Management) ? Azureによって収集されるログを人工知能を使って分析し、 脅威検出と自動応答を実現 Azure AD Virtual Machine Activity Alert Logic Apps Cases Log Analytics Azure Sentinel
52.
モニタリング?ガバナンス Azure Advisor ? Azureリソースの構成情報をチェックし、 「可用性」「セキュリティ」「パフォーマンス」「コスト」の観点で ベストプラクティスに基づいた推奨事項を提示してくれる
53.
モニタリング?ガバナンス Azure AD PIM
(Privileged Identity Management) ? 「権限コントロールのガバナンス」のためのサービス ? Just-in-Time 特権アクセスの提供 ? 権限有効化の承認ワークフロー ? アクセスレビュー ? 監査履歴 etc…
54.
モニタリング?ガバナンス PIM: Just-in-Time 特権アクセスの提供 ?
期间を限定した特権ロールの付与
55.
モニタリング?ガバナンス PIM:権限有効化の承認ワークフロー ? 割当て時に承認が必要なロールを設定 ? 承認依頼
→ 管理者の承認 → 有効化のワークフローをAzure内で完結
56.
モニタリング?ガバナンス PIM:アクセスレビュー ? 特定のロール(権限)が適切なユーザーに付与されているか 定期的にレビューするための機能 ? Azure
AD、Azure リソースそれぞれに対して設定する ? レビュー結果に基づき、不要な権限は削除する ? 自動反映?手動を選択可能 1. 定期的なレビュー レビュー担当者の設定 管理者 レビュー担当者 2. 権限の確認、承認 3. レビュー結果の反映
57.
モニタリング?ガバナンス 複数サブスクリプションの管理 ? Azure Management
Group により サブスクリプションをグループ化?階層化して管理する ? RBAC、Azure Policy、Azure Blueprints のスコープとして設定できる ? 上位階層での設定内容は子リソースに継承される 開発グループ本番グループ
58.
モニタリング?ガバナンス Resource Graph ? 簡単なクエリで複数のAzureリソースにまたがった さまざまなリソース情報を取得?集計?一覧表示できる ?
仮想マシンの数の取得 (OS の種類別)の例 ai@Azure:~$ az graph query -q "where type =~ 'Microsoft.Compute/virtualMachines' | summarize count() by tostring(properties.storageProfile.osDisk.osType)“ [ { "count_": 5, "properties_storageProfile_osDisk_osType": "Linux" }, { "count_": 8, "properties_storageProfile_osDisk_osType": "Windows" } ]
59.
モニタリング?ガバナンス 変更履歴 (プレビュー) ? 過去14日間に発生したリソースの変更内容を確認できる
60.
さいごに一言
61.
ベストプラクティスは外から学ぶ Azureを使い倒しているユーザーから学ぶ ? JAZUG (Japan
Azure User Group) ? ご存知 Azure ユーザーグループ ? Azure Global Bootcamp ? 世界中の Azure コミュニティが世界180ヶ所以上で一斉に開催 ? Microsoft主催イベント(有償) ? de:code ? TechSummit
Download