From 25ef464a419669d12addff8bc6d9898a741b6a59 Mon Sep 17 00:00:00 2001 From: Kyohei MORIYAMA Date: Tue, 29 Mar 2022 17:01:55 +0900 Subject: [PATCH 1/6] Add AppGW and Let's Encript article (#22) * add AppGW and Let's Encript material * Rename AppServiceAndLetsEncript.md to AppGWAndLetsEncript.md --- FAQ/App/AppDevGeneral/AppGWAndLetsEncript.md | 100 ++++++++++++++++++ .../Pasted image 20220329101625.png | 3 + .../Pasted image 20220329101712.png | 3 + .../Pasted image 20220329101757.png | 3 + .../Pasted image 20220329101854.png | 3 + .../Pasted image 20220329102633.png | 3 + .../Pasted image 20220329102705.png | 3 + .../Pasted image 20220329102955.png | 3 + .../Pasted image 20220329103019.png | 3 + .../Pasted image 20220329103223.png | 3 + .../Pasted image 20220329103309.png | 3 + .../Pasted image 20220329103427.png | 3 + .../Pasted image 20220329103752.png | 3 + .../Pasted image 20220329104043.png | 3 + .../Pasted image 20220329104346.png | 3 + .../Pasted image 20220329104708.png | 3 + .../Pasted image 20220329104821.png | 3 + .../Pasted image 20220329105025.png | 3 + .../Pasted image 20220329105537.png | 3 + .../Pasted image 20220329105558.png | 3 + .../Pasted image 20220329105730.png | 3 + 21 files changed, 160 insertions(+) create mode 100644 FAQ/App/AppDevGeneral/AppGWAndLetsEncript.md create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329101625.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329101712.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329101757.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329101854.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329102633.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329102705.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329102955.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103019.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103223.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103309.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103427.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103752.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329104043.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329104346.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329104708.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329104821.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329105025.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329105537.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329105558.png create mode 100644 FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329105730.png diff --git a/FAQ/App/AppDevGeneral/AppGWAndLetsEncript.md b/FAQ/App/AppDevGeneral/AppGWAndLetsEncript.md new file mode 100644 index 0000000..ced64dc --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAndLetsEncript.md @@ -0,0 +1,100 @@ +# はじめに + +HTTP/2 のメリットやセキュリティの観点から、常時 SSL/TLS にすることが推奨されています。2018年7月リリースの Google Chrome 68 より SSL/TLS ないサイトについて、接続が保護されていないと警告が出るようになっています。また、2017年1月より iOS アプリから接続される Web ページの SSL/TLS の利用が必須となっています。 + +また、Azure では、App Service や Front door では、Microsoft が発行する証明書を利用することができますが、Application Gateway では、認証局による証明書の発行が必要です。自己認証局+自己署名証明書でも良いのですが、こちらも上記クライアントの警告対象となるので、やはり信頼のある認証局を利用するのが一般的です。 + +- App Service の例 +[TLS/SSL 証明書を追加および管理する - Azure App Service | Microsoft Docs](https://docs.microsoft.com/ja-jp/azure/app-service/configure-ssl-certificate?tabs=apex%2Cportal#create-a-free-managed-certificate) + +- Front door の例 +[チュートリアル - Azure Front Door 用のカスタム ドメインで HTTPS を構成する | Microsoft Docs](https://docs.microsoft.com/ja-jp/azure/frontdoor/front-door-custom-domain-https) + +上記の理由により、証明書を使いたいけれど、テスト目的なので証明書を発行するためにコスト負担したくないというお悩みがあると思います。それを解決するのが、米国の非営利団体 Internet Security Research Group が管理する Let's encript です。 + +[Let's Encrypt - フリーな SSL/TLS 証明書 (letsencrypt.org)](https://letsencrypt.org/ja/) + +Let's Encript では、ACME(アクミー)プロトコルを使ってドメイン所有者を確認します。 + +[RFC 8555 - Automatic Certificate Management Environment (ACME) (ietf.org)](https://datatracker.ietf.org/doc/html/rfc8555) + +## 手順 + +### Windows の場合 + +- 前提条件 + - [GitHub - win-acme/win-acme: A simple ACME client for Windows (for use with Let's Encrypt et al.)](https://github.com/win-acme/win-acme) がインストールされていること + +#### 証明書の発行 + +1. 管理者権限を持つ Powershell もしくは Windows Terminal を起動 + +2. wacs.exe を実行 +![image001](./AppGWAsset/Pasted%20image%2020220329101625.png) + +3. "N"を選択 +![image002](./AppGWAsset/Pasted%20image%2020220329101712.png) + +4. "2"を選択 +![image003](./AppGWAsset/Pasted%20image%2020220329101757.png) + +5. ドメイン名を入力 +![image004](./AppGWAsset/Pasted%20image%2020220329101854.png) + +6. "6" を選択 +![image005](./AppGWAsset/Pasted%20image%2020220329102633.png) + +7. "2" を選択 +![image006](./AppGWAsset/Pasted%20image%2020220329102705.png) + +8. "3" を選択 +![image007](./AppGWAsset/Pasted%20image%2020220329102955.png) + +9. "." を入力 +![image008](./AppGWAsset/Pasted%20image%2020220329103019.png) + +10. "2" を入力し、パスワードを入力、"n"を入力 +※パスワードは後ほど証明書を AppGW に追加するときに使います。 +![image009](./AppGWAsset/Pasted%20image%2020220329103223.png) + +11. "5" を入力 +![image010](./AppGWAsset/Pasted%20image%2020220329103309.png) + +12. "3" を入力 +![image011](./AppGWAsset/Pasted%20image%2020220329103427.png) + +13. "n" を入力、"y" を入力、問い合わせ先メールアドレスを入力 +![image012](./AppGWAsset/Pasted%20image%2020220329103752.png) + +14. 当該ドメインを管理しているDNSサーバーに対して、上記のレコードを登録する。※Azure DNSの例 ダブルクオートは入れない +![image013](./AppGWAsset/Pasted%20image%2020220329104043.png) + +15. Enter を入力 +![image014](./AppGWAsset/Pasted%20image%2020220329104346.png) + +16. レコードを削除し、Enterを入力 +![image015](./AppGWAsset/Pasted%20image%2020220329104708.png) + +17. "n" を入力 +![image016](./AppGWAsset/Pasted%20image%2020220329104821.png) + +18. 最後に "q" を入力 +19. 証明書の存在を確認 +![image017](./AppGWAsset/Pasted%20image%2020220329105025.png) + +##### Application Gateway への登録 + +1. Listeners を選択 +![image018](./AppGWAsset/Pasted%20image%2020220329105537.png) + +1. Add listener を選択 +![image019](./AppGWAsset/Pasted%20image%2020220329105558.png) + +1. 設定を入れる、Addを押下 +![image020](./AppGWAsset/Pasted%20image%2020220329105730.png) + +#### WSL/Linux/Mac の場合 + +※こちらの項目は編集中です。 +certbot を使う + diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329101625.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329101625.png new file mode 100644 index 0000000..10e0fa5 --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329101625.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ddc59730eda65e0a8cf4e2931e6f3b3e326b2d0ccbe804d184f1bb0ba135b45 +size 45743 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329101712.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329101712.png new file mode 100644 index 0000000..f09faec --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329101712.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e1c82cc668af8e1a7c9d5835a5b6ba900a7ff21fe67581eb831063d08bd88e2 +size 31049 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329101757.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329101757.png new file mode 100644 index 0000000..6490899 --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329101757.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f2eef66f6080ec961e8a13eafa1c8ffbccea1e39a2d7975a3d3b9d1a949c51f +size 10073 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329101854.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329101854.png new file mode 100644 index 0000000..47023e6 --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329101854.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff4ccc04c180f82c01b8bd00f342e76c05e0bdb7c184ba0cb28c47e9f1f2d7b3 +size 68729 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329102633.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329102633.png new file mode 100644 index 0000000..7c1ac5e --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329102633.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5a50db132b8cc6ca36b64d2b3fe3c804881e4664865f9d6b45b4491560851bd +size 22012 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329102705.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329102705.png new file mode 100644 index 0000000..9278c8b --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329102705.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b28a5aad71d91d6f17f6c75e78e2cdaf7377e7ce1afa7a5192200e9124fefee6 +size 31430 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329102955.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329102955.png new file mode 100644 index 0000000..25ecf41 --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329102955.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0edf4add1039bec67423b41ddd958ba3ddaf59eb751d0ae62ec635b5a0c62379 +size 7771 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103019.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103019.png new file mode 100644 index 0000000..231f4be --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103019.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da52be8a37f795a1c0e3efab2e4c8dc5db8ff5aa7cea26b0307e6baf57deee7b +size 9829 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103223.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103223.png new file mode 100644 index 0000000..440e3b9 --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103223.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fe6cdd4654759ac05a5d6c76070a7c068da922e8da6b7ceb88b61af65e7afd8 +size 21127 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103309.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103309.png new file mode 100644 index 0000000..0073751 --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103309.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3922afc2ba4948f017f737bee16e3c996acebce47782b1a784b6b511fe985560 +size 25657 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103427.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103427.png new file mode 100644 index 0000000..fec5819 --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103427.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d49df05f8f140f930160acbb17f424bd6cd465513210ef3f250d8c098178a652 +size 12343 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103752.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103752.png new file mode 100644 index 0000000..d409b53 --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329103752.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9218319940b9eb053020b7b61818411f78ef0cc04d8c75d3545ff8325ca974c5 +size 33669 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329104043.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329104043.png new file mode 100644 index 0000000..02be775 --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329104043.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9d312aa77744e1f0b60deb865fdc33c55e6c21a932f5474c3dc4c4b6cb9dc69 +size 15684 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329104346.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329104346.png new file mode 100644 index 0000000..dd9a24f --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329104346.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e752cbdeba6bf69cdfb0f53015f90b0fc09127b083fb3fe4965427d299dfe2d9 +size 30197 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329104708.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329104708.png new file mode 100644 index 0000000..cf7b721 --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329104708.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f5d745b40627f9ca8b9098be85aee05f4ac235bd6e3ddf554244b4e19a3955e +size 35604 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329104821.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329104821.png new file mode 100644 index 0000000..b8f5ea2 --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329104821.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e3357aa98eb13ded9577a09d74d5a10e5f51e7d394e124ccfce6d539ea8f3e6 +size 24792 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329105025.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329105025.png new file mode 100644 index 0000000..b8fc1d4 --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329105025.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5de547b920ea09d912295f2f93b84d3a10cc55d72472754ed2306dd2a629e252 +size 17508 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329105537.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329105537.png new file mode 100644 index 0000000..759098b --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329105537.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4559bdf510321eef0fc0abf781a7bd9325794b346d3bd68a16eef765bf3fd5b7 +size 64442 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329105558.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329105558.png new file mode 100644 index 0000000..9145347 --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329105558.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d969980976183ab2950a7f288e86b9b63cdfdeb93375d28c9b1f4e57e4ccad01 +size 37704 diff --git a/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329105730.png b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329105730.png new file mode 100644 index 0000000..6418243 --- /dev/null +++ b/FAQ/App/AppDevGeneral/AppGWAsset/Pasted image 20220329105730.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8f34ce20589668515d71ec7965f5d6ba151d087a0d8b17926db849280770b62 +size 38982 From 74e54a00d0b695575f5bad648dce08883e4e840e Mon Sep 17 00:00:00 2001 From: kotetz Date: Wed, 30 Mar 2022 21:16:12 +0900 Subject: [PATCH 2/6] update security automation --- FAQ/Infra/SecurityAutomation_FAQ.md | 125 ++++++++++++++++++ FAQ/Infra/images/soar-function-appid.png | 3 + FAQ/Infra/images/soar-function-authn.png | 3 + FAQ/Infra/images/soar-function-idp.png | 3 + FAQ/Infra/images/soar-logicapps-action.png | 3 + FAQ/Infra/images/soar-logicapps-authn.png | 3 + .../images/soar-logicapps-identity-app.png | 3 + FAQ/Infra/images/soar-logicapps-identity.png | 3 + FAQ/Infra/images/soar-logicapps-result.png | 3 + FAQ/Infra/images/soar-sentinel-automation.png | 3 + 10 files changed, 152 insertions(+) create mode 100644 FAQ/Infra/SecurityAutomation_FAQ.md create mode 100644 FAQ/Infra/images/soar-function-appid.png create mode 100644 FAQ/Infra/images/soar-function-authn.png create mode 100644 FAQ/Infra/images/soar-function-idp.png create mode 100644 FAQ/Infra/images/soar-logicapps-action.png create mode 100644 FAQ/Infra/images/soar-logicapps-authn.png create mode 100644 FAQ/Infra/images/soar-logicapps-identity-app.png create mode 100644 FAQ/Infra/images/soar-logicapps-identity.png create mode 100644 FAQ/Infra/images/soar-logicapps-result.png create mode 100644 FAQ/Infra/images/soar-sentinel-automation.png diff --git a/FAQ/Infra/SecurityAutomation_FAQ.md b/FAQ/Infra/SecurityAutomation_FAQ.md new file mode 100644 index 0000000..b07bc18 --- /dev/null +++ b/FAQ/Infra/SecurityAutomation_FAQ.md @@ -0,0 +1,125 @@ +# Microsoft Sentinel のオートメーション + + +## Microsoft Sentinel 用のプレイブックを作成する + +機能や UI に変更があり、Web 上の記事と最新の設定項目が異なっていることで質問を受ける機会が多いため、新しい UI を使用した設定の例を示すためにこの記事を作成しています。 + +Sentinel のプレイブックで使用する Logic App の基本的な作り方や注意点は以下のドキュメントを参照してください。 + +[チュートリアル: Microsoft Sentinel でオートメーション ルールとプレイブックを使用する](https://docs.microsoft.com/ja-jp/azure/sentinel/tutorial-respond-threats-playbook) + +例ではアラート トリガーのオートメーションを作成します。Seentinel の `オートメーション` から `アラート トリガーを使用したプレイブック` を選択すると簡単です。 + +![Sentinel Automation](./images/soar-sentinel-automation.png) + + +## プレイブックで Function を使用する + +従量課金プランで作成されたサーバレスの Function を Logic Apps から呼び出します。 +ここでは以下の構成で作成した Function を呼び出し、Managed ID によるアクセス制限を行います。 +> ※ Managed ID による認証が全てのセキュリティ要件を満たすことを意味するものではありません。ネットワーク機能や他のワークロードを組み合わせることで多層的な制御を追加することができますが、幅広いトピックに触れる必要があるためここでは扱いません。 + +Function App の設定 +- 基本 + - サブスクリプション:任意 + - リソース グループ:任意 + - 関数アプリ名:任意 + - 公開:コード + - ランタイム スタック:.NET + - バージョン:6 + - 地域:任意 +- ホスティング + - ストレージアカウント:任意 + - オペレーティング システム:Windows + - プランの種類:消費量(サーバーレス) +- ネットワーク + - ネットワーク インジェクションを有効にする:オフ(変更不可) +- 監視 + - Application Insights を有効にする:任意 +- タグ + - 既定 + +- Function の設定 + - 開発環境:ポータルでの開発 + - テンプレート:HTTP trigger + - 新しい関数:任意 + - Authorization level: Anonymous + +作成した直後の Function は認証を必要としないためインターネット上からアクセスすることができます。PowerShell で以下のコマンドを実行するとステータス コードは 200 でアクセスに成功します。 + +``` +PS> Invoke-RestMethod -Method Get -Uri https://<関数アプリ名>.azurewebsites.net/api/<新しい関数> +``` + + + + +### Logic Apps の Managed ID の作成 + +Function に対して Managed ID で認証を行うために、Logic Apps で Managed ID を有効化します。プレイブック用に作成した Logic Apps の `ID` を `オン` に設定し、保存します。 + +![Managed Identity](./images/soar-logicapps-identity.png) + +Managed ID を設定すると Azure AD のエンタープライズ アプリケーションに Logic Apps の名前に対応する Managed ID が作成されます。`フィルタで マネージド ID` を選択すると Managed ID が表示されます。 + +![Enterprise Application](./images/soar-logicapps-identity-app.png) + +### Function によるアクセス制限 + +作成した関数アプリに認証を追加します。Function App のメニューから `認証` - `ID プロバイダーを追加` を選択します。 + +![Function Auth](./images/soar-function-authn.png) + + +`ID プロバイダーの追加` は以下の設定を行います。 + +- 基本 + - ID プロバイダー:Microsoft + - アプリ登録の種類:アプリの登録を新規作成する + - 名前:既定 + - サポートされているアカウントの種類:現在のテナント - 単一テナント + - アクセスを制限する:認証が必要 + - 認証されていない要求:任意 + - トークンストア:既定 +- アクセス許可 + - 既定 + +![Function ID Provider](./images/soar-function-idp.png) + + +作成された ID プロバイダー - `Microsoft(Function App名)` のハイパーリンクからから登録されたアプリケーションを開き、アプリケーション(クライアント) ID をコピーします。 + +![Function ID Provider](./images/soar-function-appid.png) + + +### Logic Apps からの Function の呼び出し + +Logic Apps から Function を呼び出すためには Logic Apps デザイナーで `Azure Functions` アクションを追加します。続く画面で `Function App` - `Function` の順に作成した Function を選択します。 +![Action Functions](./images/soar-logicapps-action.png) + +`要求本文` には Function で処理したいデータを指定します。`本文` を指定するとアラートのデータ全体が Function に渡されます。 + +`認証` にチェックを追加し、以下の設定を行います。 +- 認証 + - 認証の種類:マネージドID + - マネージドID:システム割り当てマネージドID + - 対象ユーザー:コピーした Function App のアプリケーション(クライアント) ID + +![Action Functions](./images/soar-logicapps-authn.png) + +Logic Apps を保存し、任意の分析ルールから起動すると、Function で Sentinel のアラートの情報をうけとることができます。アクセスには Managed ID による認証が使われています。 +![Action Functions](./images/soar-logicapps-result.png) + + +認証を持たないアクセスは拒否されるため、インターネット上から匿名でアクセスすることはできません。先の PowerShell のコマンドは Function の結果を返すことがなくなります。結果は Function App の認証の設定によって変わり、既定では別の Microsoft サイトにリダイレクトされます。 + +``` +PS > Invoke-RestMethod -Method Get -Uri https://<関数アプリ名>.azurewebsites.net/api/<新しい関数> +``` + +## 参考リンク +[Azure Functions を使用してコードを作成し、Azure Logic Apps のワークフローから呼び出す](https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-azure-functions?tabs=consumption) + +[チュートリアル: Microsoft Sentinel でオートメーション ルールとプレイブックを使用する](https://docs.microsoft.com/ja-jp/azure/sentinel/tutorial-respond-threats-playbook) + diff --git a/FAQ/Infra/images/soar-function-appid.png b/FAQ/Infra/images/soar-function-appid.png new file mode 100644 index 0000000..9a42e92 --- /dev/null +++ b/FAQ/Infra/images/soar-function-appid.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5984ce03aaed547b0c7faff596e1a38e342cb0bf9e1a5b841e80a77b04ab4ad5 +size 45022 diff --git a/FAQ/Infra/images/soar-function-authn.png b/FAQ/Infra/images/soar-function-authn.png new file mode 100644 index 0000000..b5d7836 --- /dev/null +++ b/FAQ/Infra/images/soar-function-authn.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:356279e4b4c09c34d94e38e43013945ee510d596a002529b48104302b0556698 +size 51553 diff --git a/FAQ/Infra/images/soar-function-idp.png b/FAQ/Infra/images/soar-function-idp.png new file mode 100644 index 0000000..ce0e775 --- /dev/null +++ b/FAQ/Infra/images/soar-function-idp.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:588fdf7f737e30c64b5f2a0c73e224bdda1a24696721e759fd83fae4c1392776 +size 112927 diff --git a/FAQ/Infra/images/soar-logicapps-action.png b/FAQ/Infra/images/soar-logicapps-action.png new file mode 100644 index 0000000..f8d8d82 --- /dev/null +++ b/FAQ/Infra/images/soar-logicapps-action.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0846fcd98a08b9150279b25df6376838119731d647c1afa9fca7b0eac2b45c9b +size 583659 diff --git a/FAQ/Infra/images/soar-logicapps-authn.png b/FAQ/Infra/images/soar-logicapps-authn.png new file mode 100644 index 0000000..fd8956d --- /dev/null +++ b/FAQ/Infra/images/soar-logicapps-authn.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e38b796e325402c50f1fa89004b4b6b0054f43b4499625c264ef32adb89a2bc1 +size 47979 diff --git a/FAQ/Infra/images/soar-logicapps-identity-app.png b/FAQ/Infra/images/soar-logicapps-identity-app.png new file mode 100644 index 0000000..e6b9597 --- /dev/null +++ b/FAQ/Infra/images/soar-logicapps-identity-app.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a61ac1e2ed23ae9eac56d45a92b8f9b9f28a1cbb1f865b464c68df006190a628 +size 1151087 diff --git a/FAQ/Infra/images/soar-logicapps-identity.png b/FAQ/Infra/images/soar-logicapps-identity.png new file mode 100644 index 0000000..41b7b85 --- /dev/null +++ b/FAQ/Infra/images/soar-logicapps-identity.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f7ab2ae7062d0c96586a7a984e4f63047903b3490b69c776e243687c6f49c54 +size 473913 diff --git a/FAQ/Infra/images/soar-logicapps-result.png b/FAQ/Infra/images/soar-logicapps-result.png new file mode 100644 index 0000000..6b5d458 --- /dev/null +++ b/FAQ/Infra/images/soar-logicapps-result.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21bef9dd88e21f3875e7178bc9b4507de10564a54d290f4e5f52e07bbacc80f8 +size 43694 diff --git a/FAQ/Infra/images/soar-sentinel-automation.png b/FAQ/Infra/images/soar-sentinel-automation.png new file mode 100644 index 0000000..21cf47b --- /dev/null +++ b/FAQ/Infra/images/soar-sentinel-automation.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68513b148439bcabb1fecb15e9b178d81c376e7cb93d3cd7f5f6ab90de0ed909 +size 43025 From b682f4b315158f324084c39f0a0916bee05cbd78 Mon Sep 17 00:00:00 2001 From: kotetz Date: Wed, 30 Mar 2022 21:20:04 +0900 Subject: [PATCH 3/6] update security automation --- FAQ/Infra/images/soar-function-appid.png | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FAQ/Infra/images/soar-function-appid.png b/FAQ/Infra/images/soar-function-appid.png index 9a42e92..4222eaf 100644 --- a/FAQ/Infra/images/soar-function-appid.png +++ b/FAQ/Infra/images/soar-function-appid.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5984ce03aaed547b0c7faff596e1a38e342cb0bf9e1a5b841e80a77b04ab4ad5 -size 45022 +oid sha256:1c2737837a736c34426d2286b8fab70cbb3d24045a5017572f6136c90eeda604 +size 62522 From c668891571a57aedec4ca02f3d2fcb3ba0c18326 Mon Sep 17 00:00:00 2001 From: kotetz Date: Wed, 30 Mar 2022 21:29:58 +0900 Subject: [PATCH 4/6] update security automation --- FAQ/Infra/SecurityAutomation_FAQ.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ/Infra/SecurityAutomation_FAQ.md b/FAQ/Infra/SecurityAutomation_FAQ.md index b07bc18..767d426 100644 --- a/FAQ/Infra/SecurityAutomation_FAQ.md +++ b/FAQ/Infra/SecurityAutomation_FAQ.md @@ -112,7 +112,7 @@ Logic Apps を保存し、任意の分析ルールから起動すると、Functi ![Action Functions](./images/soar-logicapps-result.png) -認証を持たないアクセスは拒否されるため、インターネット上から匿名でアクセスすることはできません。先の PowerShell のコマンドは Function の結果を返すことがなくなります。結果は Function App の認証の設定によって変わり、既定では別の Microsoft サイトにリダイレクトされます。 +認証を持たないアクセスは拒否されるため、インターネット上から匿名でアクセスすることはできません。Function の URL は処理結果を返すことがなくなります。応答は Function App の `認証` の設定によって異なり、既定では別の HTTP 302 で Microsoft サイトにリダイレクトされます。HTTP 401 や HTTP 403 のエラーコードを設定することもできます。 ``` PS > Invoke-RestMethod -Method Get -Uri https://<関数アプリ名>.azurewebsites.net/api/<新しい関数> From 9b1c867319d52082a984ba0f6c15fccb0cf81c27 Mon Sep 17 00:00:00 2001 From: kotetz Date: Wed, 30 Mar 2022 22:13:17 +0900 Subject: [PATCH 5/6] update --- FAQ/Infra/SecurityAutomation_FAQ.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/FAQ/Infra/SecurityAutomation_FAQ.md b/FAQ/Infra/SecurityAutomation_FAQ.md index 767d426..1703758 100644 --- a/FAQ/Infra/SecurityAutomation_FAQ.md +++ b/FAQ/Infra/SecurityAutomation_FAQ.md @@ -16,7 +16,7 @@ Sentinel のプレイブックで使用する Logic App の基本的な作り方 ## プレイブックで Function を使用する -従量課金プランで作成されたサーバレスの Function を Logic Apps から呼び出します。 +従量課金プランで作成したサーバーレスの Function を Logic Apps から呼び出します。 ここでは以下の構成で作成した Function を呼び出し、Managed ID によるアクセス制限を行います。 > ※ Managed ID による認証が全てのセキュリティ要件を満たすことを意味するものではありません。ネットワーク機能や他のワークロードを組み合わせることで多層的な制御を追加することができますが、幅広いトピックに触れる必要があるためここでは扱いません。 @@ -38,7 +38,7 @@ Function App の設定 - 監視 - Application Insights を有効にする:任意 - タグ - - 既定 + - 任意 - Function の設定 - 開発環境:ポータルでの開発 @@ -46,7 +46,7 @@ Function App の設定 - 新しい関数:任意 - Authorization level: Anonymous -作成した直後の Function は認証を必要としないためインターネット上からアクセスすることができます。PowerShell で以下のコマンドを実行するとステータス コードは 200 でアクセスに成功します。 +この設定で作成した Function は認証を必要としないためインターネットからアクセスすることができます。PowerShell で以下のコマンドを実行するとステータス コードは 200 でアクセスに成功します。 ``` PS> Invoke-RestMethod -Method Get -Uri https://<関数アプリ名>.azurewebsites.net/api/<新しい関数> @@ -61,7 +61,7 @@ Function に対して Managed ID で認証を行うために、Logic Apps で Ma ![Managed Identity](./images/soar-logicapps-identity.png) -Managed ID を設定すると Azure AD のエンタープライズ アプリケーションに Logic Apps の名前に対応する Managed ID が作成されます。`フィルタで マネージド ID` を選択すると Managed ID が表示されます。 +Managed ID を設定すると Azure AD のエンタープライズ アプリケーションに Logic Apps の名前に対応する Managed ID が作成されます。`フィルタ` で `マネージド ID` を選択すると Managed ID が表示されます。 ![Enterprise Application](./images/soar-logicapps-identity-app.png) From 055984b6b5744e1f19394890722bfb6401549770 Mon Sep 17 00:00:00 2001 From: kotetz Date: Wed, 30 Mar 2022 22:15:32 +0900 Subject: [PATCH 6/6] update --- FAQ/Infra/SecurityAutomation_FAQ.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/FAQ/Infra/SecurityAutomation_FAQ.md b/FAQ/Infra/SecurityAutomation_FAQ.md index 1703758..b5686ee 100644 --- a/FAQ/Infra/SecurityAutomation_FAQ.md +++ b/FAQ/Infra/SecurityAutomation_FAQ.md @@ -1,9 +1,10 @@ # Microsoft Sentinel のオートメーション +機能や UI の変更により、Web 上の記事と最新の設定項目が異なっていることで質問を受ける機会が多いため、新しい UI を使用した設定の例を示すためにこの記事を作成しています。 ## Microsoft Sentinel 用のプレイブックを作成する -機能や UI に変更があり、Web 上の記事と最新の設定項目が異なっていることで質問を受ける機会が多いため、新しい UI を使用した設定の例を示すためにこの記事を作成しています。 + Sentinel のプレイブックで使用する Logic App の基本的な作り方や注意点は以下のドキュメントを参照してください。