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 Policyから始めるガバナンス
Search
Jun Kudo
January 13, 2024
Technology
0
490
Azure Policyから始めるガバナンス
Azure Traveralers 勉強会 札幌の旅 #1
Jun Kudo
January 13, 2024
Tweet
Share
More Decks by Jun Kudo
See All by Jun Kudo
Azure OpenAIのコンテンツフィルターを学ぶ
jkudo
0
1.3k
5分で解るかもしれないMicrosoft Ignite 2023でのServerless関連アップデート
jkudo
0
430
第42回 Tokyo Jazug Night - ネットワークを伸ばせどこまでも
jkudo
0
510
Dynatrace デモ (Azure)
jkudo
0
450
「/」がウザい / Take measures on the trailing slash in WebApps
jkudo
0
300
Other Decks in Technology
See All in Technology
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
730
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
640
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
型チェック 速度改善 奮闘記⌛
tocomi
1
180
SAP Community and Developer Update
sygyzmundovych
0
350
AI前提のサービス運用ってなんだろう?
ryuichi1208
8
1.4k
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
140
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
200
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.8k
OCI Vault 概要
oracle4engineer
PRO
0
9.8k
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
480
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
140
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
120
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
KATA
mclloyd
29
14k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
What's new in Ruby 2.0
geeforr
343
31k
Testing 201, or: Great Expectations
jmmastey
38
7.1k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Transcript
2024.1.13 第1回 Azure Travelers 勉強会 札幌の旅 Azure Policyから始めるガバナンス
自己紹介&会社説明 2
自己紹介 • 工藤淳(Jun Kudo) • 北海道古平町出身 • iret, inc. •
エンタープライズクラウド事業部 • グローバルソリューションズ事業部 (Rackspace) • ソリューションアーキテクト • Microsoft MVP for Azure • Alibaba Cloud MVP • iretテクニカルアンバサダー • 唎酒師 • Serverless Meetup • ChatGPT勉強会 • Security JAWS • OSC北海道実行委員 • レトロゲーム勉強会 • 一般社団法人LOCAL • その他 3
豊富な知見と高い技術力で、あらゆる領域に対応。 アイレットはこれまで長年に渡り、クラウドの導入・運用におけるフルマネージドサービス 「cloudpack」を中心に、数多くの実績を積み重ねてまいりました。その過程において蓄積 されたIT全般における知見やノウハウにより、現在ではクラウドの導入・運用のみならず、 システム開発・デザイン制作からクラウド周辺のあらゆるサービスまで、幅広い領域をカ バーしています。 iret, inc. 4 基本事業
• クラウドインテグレーション事業 • 開発事業 • デザイン事業 提携事業 • rackspace technology • cloudpack with KDDI
企画・設計・インフラ構築から、システム開発・UI/UXデザインまで 本物のワンストップで、お客様のあらゆる課題を解決に導きます。 アイレットには、インフラ構築・システム開発・デザイン制作など、あらゆる分野における精 鋭のプロフェッショナルと専門チームが揃っております。それらが事業の枠組みを越え、 シームレスに連携することで、組織力とシナジーが最大限に発揮された総合的なサービ スを提供します。だからこそ、お客様の負担を最小限に抑えながら、本物のワンストップ が実現するのです。 特長 5
国際標準化機構(ISO)認証 ISO/IEC 27001(情報セキュリティマネジメントシステム) ISO/IEC 27017(クラウドサービスの情報セキュリティ管理策) ISO/IEC 27701(プライバシー情報マネジメントシステム) ISO/IEC 27018(パブリッククラウドにおける個人識別情報保護) ISO/IEC
20000-1(IT サービスマネジメントシステム) ISO 9001(品質マネジメントシステム) PCI DSS SOC 2 アイレットが準拠・取得している規格・認証 6
Fanatical Experience Rackspaceは、お客様のそばに寄り添い、いつでもご相談可能です。 コンサルティングから運用まで、業務に必要なことをすべて行います。24時間対応のサービス と専門知識による テクノロジーを、最高のツールと自動化と組み合わせ、お客様が必要とする時に必要な方法で提供します Rackspace technology, inc. 7
Azure Policy https://learn.microsoft.com/ja-jp/azure/governance/policy/ 8
なぜAzure Policy が必要なのか Azure Policy で何が出来るのか Azure Policy で設計と実装 Azure
Policy デモ Azure Policy は万能ではない まとめ Q&A アジェンダ 9
2024/01/12 までの情報に基づいき資料が作成されています。 公開されている情報をもとに作成されています。 一部 ChatGPT を利用しています。 一部 撮影、Xへのポストを禁止します。 注意 10
なぜAzure Policy が必要なのか 11
コンプライアンスの確保 Azure Policyは、組織のリソースが特定のコンプライアンス基準や企業ポリシーに準拠していることを保証し ます。これにより、規制要件を満たし、監査プロセスを簡素化することができます。 ガバナンスの強化 • ポリシーを通じて、クラウド環境全体にわたって一貫したガバナンスを実施できます。例えば、特定のリージョン 内でのみリソースの作成を許可したり、特定のタイプのリソースの使用を制限することが可能です。 コスト管理 •
不要または過剰なリソースの使用を防ぐことで、コストを効率的に管理することができます。たとえば、一定のサ イズを超える仮想マシンの作成を禁止することで、予期しない高額な請求を避けることができます。 セキュリティの向上 • セキュリティ関連のポリシーを定義し、適用することで、クラウド環境のセキュリティを強化できます。たとえば、 特定のセキュリティ基準に準拠していないリソースの作成を自動的に防止することができます。 自動化と効率の向上 • Azure Policyは自動化されたポリシー評価と適用を提供します。これにより、手動プロセスを削減し、運用効率を 向上させることができます。 なぜAzure Policyを導入するのか 12
大手企業の個人情報流出と原因 Azure Policyで防げたかもしれない 13 ト〇タ自動車株式会社 ト〇タの車載情報サービス利用者215万人分の情報が漏洩(管理はト〇タコネク〇ィッド株式会社に 委託している) クラウド環境の誤設定 株式会社SO〇A 同社が運営するスニーカーマーケットプレイス「SNKR〇UNK」において約275万件の個人情報が漏洩
SQLインジェクション 株式会社〇野経済研究所 従業員のMicrosoftアカウントがフィッシングによる乗っ取り被害に遭い、社内外関係者の個人情報が 漏洩 フィッシング J〇東日本 同社が運営する、チケット予約サイト「え〇ねっと」において、3,729人のアカウントに不正ログイン リスト型攻撃 井〇商事株式会社 同社が運営する「スイーツ〇ラダイス オンラインショップ」において7,645件のクレジットカード情報が漏洩 Webスキミング 株式会社〇nd Do ホールディング 同社子会社の従業員が退職に際して、顧客情報を不正に持ち出し、64件の個人情報が漏洩 手土産転職 株式会社J〇B クラウドサービスにて閲覧権限の設定ミスにより、最大1万1438人分の個人情報が漏洩 権限の設定ミス 出典: 【2024年最新】個人情報漏洩事件・被害事例まとめ https://frauddetection.cacco.co.jp/media/news/3522/
サブスクリプション管理の困難 多数のサブスクリプションの存在により、管理が行き届かない。 各サブスクリプションごとに異なるセキュリティ要件が設定されており、一貫した管理が難しい。 ガイドラインの周知と存在の課題 効果的なガイドラインがないことがある。 関係者が多いため、ガイドラインの周知が困難。 構築・開発チームの規模と構成の問題 構築や開発には多くのメンバーが関わり、さまざまな会社から参加している。 チームの大きな規模が、管理やコミュニケーションの複雑さを増加させる。 チーム間での連携の難しさ。
大手企業でありがちなとこ 14 これらは大手企業に限った話ではない大小に限らず起こりうる Azure Policyを導入して軽減する。
Azure Policy で何が出来るのか 15
ポリシーで可視化を行い、環境が健全なのか確認できます ダッシュボード 16
170以上のBuildInポリシー ポリシー数 17 https://learn.microsoft.com/ja-jp/azure/governance/policy/samples/built-in-policies
ログを特定の場所に出力する パブリックアクセスを許可しない タグをつける 暗号化の種類、強制 認証認可の種類、強制 証明書の強制 よくあるポリシー 18
効果を理解する AddToNetworkGroup 特定のリソースをネットワークグループに自動的に追加するために使用されます。 Append 既存のリソース定義に追加のパラメーターや設定を加えるために使用されます。 • Audit(監査) ポリシー違反が発生した場合にログに記録するが、リソースの作成や更新をブロックしない。 AuditIfNotExists 特定の条件が存在しない場合に監査ログを記録するために使用されます。
• Deny(拒否) ポリシー違反が発生した場合にリソースの作成や更新をブロックする。 DenyAction 特定のアクションを実行することを禁止するために使用されます。 • DeployIfNotExists 特定の条件が満たされていない場合に、自動的にリソースや設定をデプロイするために使用されます。 Disabled ポリシーが無効化されており、現在は適用されない状態である。 Manual ポリシーの適用が手動で行われ、自動的には実行されない。 • Modify(修正) 既存のリソースを特定の方法で修正するために使用されます。 Mutate リソースの変更を行う際に、特定の条件下でのみ許可される変更を定義するために使用されます。 Azure Policyで出来ること 19
{ "mode": "Indexed", "policyRule": { "if": { "allOf": [ {
"field": "type", "equals": "Microsoft.Storage/storageAccounts" }, { "not": { "allOf": [ { "field": "id", "contains": "/resourceGroups/aro-" }, { "anyOf": [ { "field": "name", "like": "cluster*" }, { "field": "name", "like": "imageregistry*" } ] } ] } }, { "not": { "field": "Microsoft.Storage/storageAccounts/allowBlobPublicAccess", "equals": "false" } } ] }, "then": { "effect": "[parameters('effect')]" } }, "parameters": { "effect": { "type": "String", "metadata": { "displayName": "効果", "description": "その効果によって、ポリシー規則が一致すると評価されたときの動作が決まります" }, "allowedValues": [ "audit", "Audit", "deny", "Deny", "disabled", "Disabled" ], "defaultValue": "Audit" } } } Azure Policyの構造 20 [プレビュー]: ストレージ アカウントのパブリック アクセスを禁止する必要がある ([Preview]: Storage account public access should be disallowed)
ポリシー違反を検知してログに記録することで問題点を洗い出す場合に使われる Audit (監査) 21 例:[プレビュー]: ストレージ アカウントのパブリック アクセスを禁止する必要がある ([Preview]: Storage
account public access should be disallowed) 作成はブロックされないがポリシー違反を記録する
違反を検知することで既存環境の監査が行える Audit (監査) 22
アクティビティログに記録される Audit (監査) 23
Azure Policyの効果では一番使われる(と思わる) Deny (拒否) 24 例:[プレビュー]: ストレージ アカウントのパブリック アクセスを禁止する必要がある ([Preview]:
Storage account public access should be disallowed) 作成、変更がブロックされる
アクティビティログに出力される JSONで詳細が確認できる Deny (拒否) 25
新規作成でポリシー違反を修正される 既存環境でポリシー違反を修正する Modify (変更) 26 例:パブリック ネットワーク アクセスを無効にするようにストレージ アカウントを構成する (Configure
storage accounts to disable public network access)
アクティビティログで確認ができる Modify (変更) 27
既存環境でポリシー違反を修正する Modify (変更) 28 例:パブリック ネットワーク アクセスを無効にするようにストレージ アカウントを構成する (Configure storage
accounts to disable public network access)
違反が検知される Modify (変更) 29
既存の環境を修復タスクで修復する Modify (変更) 30
評価に対してARMテンプレートの実行が行える 例:SQL Serverデータベースを評価してtransparentDataEncryptionが有効になっているか 判定して、有効になっていない場合には有効にするためのデプロイが実行されるサンプル。 DeployIfNotExists 31 "if": { "field": "type",
"equals": "Microsoft.Sql/servers/databases" }, "then": { "effect": "deployIfNotExists", "details": { "type": "Microsoft.Sql/servers/databases/transparentDataEncryption", "name": "current", "evaluationDelay": "AfterProvisioning", "roleDefinitionIds": [ "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleGUID}", "/providers/Microsoft.Authorization/roleDefinitions/{builtinroleGUID}" ], "existenceCondition": { "field": "Microsoft.Sql/transparentDataEncryption.status", "equals": "Enabled" }, "deployment": { "properties": { "mode": "incremental", "template": { "$schema": "<https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#>", "contentVersion": "1.0.0.0", "parameters": { "fullDbName": { "type": "string" } }, "resources": [{ "name": "[concat(parameters('fullDbName'), '/current')]", "type": "Microsoft.Sql/servers/databases/transparentDataEncryption", "apiVersion": "2014-04-01", "properties": { "status": "Enabled" } }] }, "parameters": { "fullDbName": { "value": "[field('fullName')]" } } } } }
Azure Policy で設計と実装 32
割り当て範囲を決める 管理グループ サブスクリプション リソースグループ 除外する範囲を決める 管理グループ サブスクリプション リソースグループ リソース 適用除外を決める(免除、軽減済み)
サブスクリプション リソースグループ リソース スコープを決める 33 管理グループ
サブスクリプションを管理しやすいようにグループ化します 上位から下位へ権限(ロール)、ポリシーは継承されます コンプライアンスの追跡、請求の整理(グループ化)できる 6レベルまで作成可能、3レベルぐらいが良い 管理グループ 34 最上位で企業または組織全体 会社や組織 異なる目的やリソースタイプ 機能やサービス
サブスクリプション
イニシアチブはポリシー定義をグループ化します。 イニシアティブ定義する 35
ポリシーまたはイニシアティブに、どのリソースを割り当て定義するか 割り当てを行う 36
カスタムポリシーはの独自のルールを定義できる • リソースのプロパティを判別する 実際に作成して挙動の確認が必要 検証、テストを入念に行う必要がある 特に大規模な環境に適用する場合には注意が必要 カスタムポリシー 37
無料 価格 38
Azure Policy デモ 今すぐできる効果大のポリシー 39
ストレージへのパブリックアクセスを止めろ • Azure、AWS、Google Cloudを含む主要なクラウドサービスは、ここから情報漏洩のリスクがあると考えられる。 情報漏洩対策 40 ポリシー1 [プレビュー]: ストレージ アカウントのパブリック
アクセスを禁止する必要がある [Preview]: Storage account public access should be disallowed Azure Storage 内のコンテナーと BLOB に対する匿名のパブリック読み取りアクセスは、データを共有するのに便利な方法ですが、セキュリ ティ上のリスクになるおそれがあります。好ましくない匿名アクセスによってデータが侵害されるのを防ぐために、Microsoft では、お客様のシナ リオで特に必要でない限り、ストレージ アカウントへのパブリック アクセスを使用しないことをお勧めします。 ポリシー2 ストレージ アカウントでパブリック ネットワーク アクセスを無効にする必要がある Storage accounts should disable public network access ストレージ アカウントのセキュリティを強化するには、それがパブリック インターネットに公開されておらず、プライベート エンドポイントからのみア クセスできることを確認します。https://aka.ms/storageaccountpublicnetworkaccess の説明に従ってパブリック ネットワーク アクセス プロパ ティを無効にします。このオプションは、Azure IP 範囲外のパブリック アドレス空間からのアクセスを無効にし、IP または仮想ネットワークベース のファイアウォール規則に一致するすべてのログインを拒否します。これにより、データ漏洩のリスクが軽減されます。
管理グループの作成からポリシーの適用まで デモ内容 41
まとめ 42
コンプライアンス、ガバナンス、セキュリティの強化、コスト削減 ポリシーの効果(よく使う) Audit(監査):ポリシーに準拠しないリソースをログに記録、可視化 Deny(拒否):ポリシーに準拠しないリソースは作成、更新させない DeployIfNotExits:ポリシーに準拠しないリソースに対してARMテンプレートをデプロイして設定 Modify(修正):ポリシーに準拠しないリソースに対して修正を行う 多くのポリシーが用意されている カスタムポリシーも作成できる ポリシーは万能ではない スクリプトで対応が必要なこともある
ポリシーを適用して損はない 周知は重要 ヒューマンエラーの回避 無料です!!!!!! まとめ 43
Q&A 44