Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Azure Policyから始めるガバナンス

Jun Kudo
January 13, 2024

Azure Policyから始めるガバナンス

Azure Traveralers 勉強会 札幌の旅 #1

Jun Kudo

January 13, 2024
Tweet

More Decks by Jun Kudo

Other Decks in Technology

Transcript

  1. 自己紹介 • 工藤淳(Jun Kudo) • 北海道古平町出身 • iret, inc. •

    エンタープライズクラウド事業部 • グローバルソリューションズ事業部 (Rackspace) • ソリューションアーキテクト • Microsoft MVP for Azure • Alibaba Cloud MVP • iretテクニカルアンバサダー • 唎酒師 • Serverless Meetup • ChatGPT勉強会 • Security JAWS • OSC北海道実行委員 • レトロゲーム勉強会 • 一般社団法人LOCAL • その他 3
  2. なぜAzure Policy が必要なのか Azure Policy で何が出来るのか Azure Policy で設計と実装 Azure

    Policy デモ Azure Policy は万能ではない まとめ Q&A アジェンダ 9
  3. コンプライアンスの確保 Azure Policyは、組織のリソースが特定のコンプライアンス基準や企業ポリシーに準拠していることを保証し ます。これにより、規制要件を満たし、監査プロセスを簡素化することができます。 ガバナンスの強化 • ポリシーを通じて、クラウド環境全体にわたって一貫したガバナンスを実施できます。例えば、特定のリージョン 内でのみリソースの作成を許可したり、特定のタイプのリソースの使用を制限することが可能です。 コスト管理 •

    不要または過剰なリソースの使用を防ぐことで、コストを効率的に管理することができます。たとえば、一定のサ イズを超える仮想マシンの作成を禁止することで、予期しない高額な請求を避けることができます。 セキュリティの向上 • セキュリティ関連のポリシーを定義し、適用することで、クラウド環境のセキュリティを強化できます。たとえば、 特定のセキュリティ基準に準拠していないリソースの作成を自動的に防止することができます。 自動化と効率の向上 • Azure Policyは自動化されたポリシー評価と適用を提供します。これにより、手動プロセスを削減し、運用効率を 向上させることができます。 なぜAzure Policyを導入するのか 12
  4. 大手企業の個人情報流出と原因 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/
  5. 効果を理解する AddToNetworkGroup 特定のリソースをネットワークグループに自動的に追加するために使用されます。 Append 既存のリソース定義に追加のパラメーターや設定を加えるために使用されます。 • Audit(監査) ポリシー違反が発生した場合にログに記録するが、リソースの作成や更新をブロックしない。 AuditIfNotExists 特定の条件が存在しない場合に監査ログを記録するために使用されます。

    • Deny(拒否) ポリシー違反が発生した場合にリソースの作成や更新をブロックする。 DenyAction 特定のアクションを実行することを禁止するために使用されます。 • DeployIfNotExists 特定の条件が満たされていない場合に、自動的にリソースや設定をデプロイするために使用されます。 Disabled ポリシーが無効化されており、現在は適用されない状態である。 Manual ポリシーの適用が手動で行われ、自動的には実行されない。 • Modify(修正) 既存のリソースを特定の方法で修正するために使用されます。 Mutate リソースの変更を行う際に、特定の条件下でのみ許可される変更を定義するために使用されます。 Azure Policyで出来ること 19
  6. { "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)
  7. 評価に対して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')]" } } } } }
  8. ストレージへのパブリックアクセスを止めろ • 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 または仮想ネットワークベース のファイアウォール規則に一致するすべてのログインを拒否します。これにより、データ漏洩のリスクが軽減されます。