Azure Update まとめ情報 ( 2020 / 4 )
Azure の進化が早すぎて追いつけない!という方向けに、前回のブログに引き続き、2020/4にあったアップデートをまとめてお送りします。
再来週にマイクロソフトの大型イベントである Build を控えてますので、それまでの予習復習にぜひどうぞ!
その前に、大事なことですが、日々のアップデートはこちらにありますので、ぜひ定期的にご確認頂ければ。フィルタもできますので、知りたい情報には一番早くたどり着けるかと思います。
では早速。今回も Application & Infrastructure と Data & AI に分けてお届けします。
- Azure Application & Infrastructure 2020 年 4 月アップデート
- Azure Data & AI 2020 年 4 月アップデート
このような時期ですが、学びを止めず、新しい時代を創り出す皆様のお役に立てれば幸いです。
今回の Build は完全オンラインで、どなたでもどこからもでも無料でご参加できるようになりました。ぜひ、最新の情報をいち早く入手して、お手元でお試し頂ければと思います。
https://mybuild.microsoft.com/
登録はこちらから!
ちょうどこのブログタイトルのような 5 月の青い空が見えるような良い季節になりました。皆様も安全と健康に引き続きお気をつけて。
---
これまでのアップデートまとめ
Azure Update まとめ情報 ( 2020 / 1 ~ 3 )
Azure の日々の進化が早すぎて追いつけない!という声をよく頂きます。
基本的に、Azure の更新情報はこちらにあるのですが、量が多すぎてなかなか見切れないということもあると思います。
今回は、2020/1-3月分の、Azure の Update 情報を少し整理してスライドにまとめましたので、ご参考にしていただければと思います。
- Application 系サービスと Infra 系サービスに関して
- データベースやデータ分析、AI、ML、IoT などのサービスに関して
少しでもみなさまのご参考になれば幸いです。
大変な時ですので、これまで通りというわけにはいかないかもしれませんが、それでも学びを止めないよう皆様をご支援していければと思っています。
I hope everyone staying safe and healthy.
Azure Load Balancer で MQTT を通してみる
ほぼ備忘録。
Azure Load Balancer は、Azure へのトラフィックを分散することができます。
この中で、TCP の任意のポートを分散できる機能を持っています。
それでは、一つ試してみましょう。
MQTT の分散
通常、 Azure で IoT といえば IoT Hub を使うことが一般的ですが、非対応デバイスや、そもそも IoT Hub から繋げない独自実装などにつなげる際に、MQTT サーバと立てて LB で分散したいというケースもあると思います。今回は、そのケースを試してみましょう。
Azure 側に Mosquitto を立てる。
まず、 Azure Load Balancer と、そこに配置される VM を Azure 側にデプロイし、 Mosquitto をインストールします。
Azure Load Balancer と バックエンドプールとしての VM のつくり方はこちらを参考に。今回は Standard Load Balancer で立てます。
上記文書での注意点は一点、今回は HTTP を分散するわけではないので、正常性プローブは TCP で 1883 を( MQTT のデフォルトポート ) 通す設定を、負荷分散規則も 1883 を通すように設定しました。
正常性プローブ
負荷分散規則
また、サーバ上での Mosquitto のインストールや設定はこちらを参考に。
この際に、上述のリンクを参考に、Mosquitto を起動し、topic を立てておきます。この場合は、topicA というものを立てました。
今回、クライアント側に MQTT.fxというツールを入れて検証してみます。
Azure の Standard Load Balancer の フロントエンドのグローバル IP アドレスとポート番号を設定し、topicA にメッセージを送信。
MQTT.fx の設定
topicAへメッセージ送信
サブスクライブしているクライアントで取得
Azure 側の VM にて、topicA をサブスクライブしているクライアント側でメッセージが表示されました。無事届いていることが確認できます。
このように、Azure Load balancer で HTTP/HTTPS ではない TCP のポートを使うアプリケーション通信を通すことができます。いろいろ使えそうですね。
Azure のガバナンス機能を使ってクラウドネイティブガバナンスを実現 ~ 実践編その 1 ~
この記事は
こちらのブログの続きです。はじめての方はこちらを先にお読みいただけると理解が深まるかと思います。
年末のあわただしさ(言い訳)から概要レベルにとどまってしまいましたが、年も明けたので実践編をしたためていきたいと思います。
Azure Policy とは
Azure Policy では、Azure の各種リソースに対してポリシーを定義・適用することで、プロアクティブな統制を実現することができます。例えば、指定されたリージョンにのみデプロイを許可する、指定された SKU だけデプロイできる、、、なんてことができます。Azure Dev Ops と連携することで CI / CD パイプラインにポリシー準拠機能を組み込んだり、既存リソースに対してポリシーに適合するために変更をかけたりすることができます。2018/9 の Ignite で GA となりました。本ブログでは Azure Policy をもう少し深堀していきます。
イニシアティブとポリシーの関係
Azure Policy はイニシアティブとポリシーという 2 種類の定義を Azure リソースに対して割り当てることができます。イニシアティブとは、複数のポリシーによって構成されるまとめルールのようなもので、いくつかのポリシーをセットにしてまとめることで運用を簡単にすることができます。
ビルトインで提供されるイニシアティブ、ポリシーはすぐ使えて便利ですが・・・
既にビルトインでいくつかのイニシアティブ、ポリシーが Azure Policy には用意されています。既にあるものは使った方が便利なので使ってしまいましょう。
ただし、イニシアティブを選ぶ場合は、どんなポリシーから構成されているか、ポリシーを選ぶ場合は、そのポリシー定義がどのようなルールとして記述されているか、しっかりと確認してから採用しましょう。
これはあくまでもビルトインとして提供されているものであり、皆様の企業のポリシーやコンプライアンスルールで適用するにはカスタマイズが必要かもしれません。
全てのポリシーは JSON で記述されていますので、その内容を確認していただくことができます。どういった時にポリシー違反となるのか、ならないのかはちゃんと理解しておかないと、思いもよらないところでルール違反を出してデプロイを停止させてしまう場合もあります。
さっそく Azure Policy を適用してみましょう
Azure Policy をリソースグループに適用する流れは以下の通りです。
・割り当てたいルールの種類(イニシアティブかポリシーか)を選ぶ
・割り当てる対象(スコープ)を決める
Management Group 、サブスクリプション、リソースグループから選べる
除外設定も可能
・割り当てたい定義(どのイニシアティブ、ポリシーか)を選ぶ
・各種パラメータを決める
試しに一つイニシアティブを割り当ててみます。
Azure Policy のメニューから「割り当て」を選び、
出てきたページの上のメニューから「イニシアティブの割り当て」を選びます。
イニシアティブの割り当てページにて、「スコープ」と「基本」を設定します。
今回は、AzureGovernanceTestというリソースグループをスコープとして設定し、Azure Security Center での監視を有効にするというイニシアティブ定義を使ってみましょう。
と、ここまでは良いのですが、これを設定するとこの下に大量のパラメータが出てきました。
これは何でしょうか?
ちょっと戻って、実際にイニシアティブの中身を見てみたいと思います。
イニシアティブの構成要素の確認方法
Azure Policy のメニュー画面で「定義」を開くと、イニシアティブ、ポリシーの一覧が出てきます。「定義の種類」でイニシアティブのみフィルタしてみましょう。
今回割り当てようとしている、「Azure Security Center での監視を有効にする」を開くと、、、沢山のポリシーから構成されていることがわかりますね。
試しに一つ、ポリシー定義を開いてみましょう。
一番上にある、IoT Hub における診断ログが有効であることの監査を開くと、以下のような JSON ファイルで構成されていることがわかります。
ここで、”Parameters” という箇所がありますね。右にある「パラメーター」を開くと、このポリシーで定義されているパラーメーターがわかります。このパラメーターは、ポリシーを割り当てるときに選んで変えられるという設定なのです。
もちろん、ここを固定値に最初から記述することもできます。毎回聞かれるのが大変、もしくは組織として常に一律の値とすべき、ということであれば固定値に書き換えてカスタムポリシーとして定義することもできます。
“効果”(“effect“)とは
このように、ポリシー定義は、論理条件に従いその振る舞いを定義するのですが、このポリシー定義の重要なところは、”効果”の記述です。
既存のリソースに対してポリシーを割り当てる際に、既存のリソースの状況は知りたいが、いきなり日々のデプロイや運用業務を止められないというシーンはありますよね。そうした時に、アラートだけ上げる、といったようなふるまいを設定するのが、”効果”の箇所となります。以下のような種類の”効果”を選ぶことができます。
- deny : 監査ログでイベントを生成し、要求は失敗します。
- audit : 監査ログで警告イベントを生成しますが、要求は失敗しません。
- append : 定義済みのフィールド セットを要求に追加します。
- AuditIfNotExists : リソースが存在しない場合に監査を有効にします。
- DeployIfNotExists : リソースが存在しない場合にリソースをデプロイします。
今回のイニシアティブの割り当てはテストですのでAuditifNotExistsとして割り当ててみましょう。
このように、まずは今のリソースがどのような状態かを確認するためにも、またはポリシー定義の動作確認のためにも、まずは緩めに”効果”を設定すると良いと思います。
参考リンク
ポリシー定義の構造の詳細 - Azure Policy | Microsoft Docs
効果のしくみを理解する - Azure Policy | Microsoft Docs
実際に割り当ててみると、このような感じになりました。
最後に、現在使用できるビルトインのイニシアティブ、ポリシーを載せておきます。
あくまでも本日(2019/1/12)時点のものであり、最新のものは皆さんの環境で確認をしてください。
[ Appendix ] イニシアティブ一覧 ( 2019 / 1 / 12 )
No. | 名前 | ポリシー数 | カテゴリ |
---|---|---|---|
1 | [プレビュー]: Azure Security Center での監視を有効にする | 80 | Security Center |
2 | [プレビュー]: Data Protection Suite を有効にする | 1 | Security Center |
3 | [プレビュー]: Linux VM 内にアプリケーションがインストールされていないことを監査する | 2 | Guest Configuration |
4 | [プレビュー]: Linux VM 内にアプリケーションがインストールされていることを監査する | 2 | Guest Configuration |
5 | [プレビュー]: Linux および Windows 仮想マシン内のパスワードのセキュリティ設定の監査 | 18 | Guest Configuration |
6 | [プレビュー]: VM スケール セット (VMSS) 用の Azure Monitor の有効化 | 6 | Monitoring |
7 | [プレビュー]: VM 用 Azure Monitor を有効にする | 6 | Monitoring |
8 | [プレビュー]: Windows VM 内にアプリケーションがインストールされていないことを監査する | 2 | Guest Configuration |
9 | [プレビュー]: Windows VM 内にアプリケーションがインストールされていることを監査する | 2 | Guest Configuration |
10 | [プレビュー]: Windows VM 内の監査 Web サーバーのセキュリティ設定 | 2 | Guest Configuration |
[ Appendix ] ポリシー一覧 ( 2019 / 1 / 12 )
No. | 名前 | カテゴリ |
---|---|---|
1 | [プレビュー]: API アプリの CORS リソース アクセス制限を監査する | Security Center |
2 | [プレビュー]: API アプリの HTTPS 専用アクセスを監査する | Security Center |
3 | [プレビュー]: API アプリの IP 制限の構成を監査する | Security Center |
4 | [プレビュー]: API アプリの Web ソケットの状態を監査する | Security Center |
5 | [プレビュー]: API アプリのリモート デバッグ状態を監査する | Security Center |
6 | [プレビュー]: Dependency Agent デプロイの監査 - VM イメージ (OS) が一覧にない | Monitoring |
7 | [プレビュー]: Endpoint Protection の不足の Azure Security Center での監視 | Security Center |
8 | [プレビュー]: Linux VM /etc/passwd ファイルのアクセス許可が 0644 に設定されていることの監査 | Guest Configuration |
9 | [プレビュー]: Linux VM passwd ファイルのアクセス許可を監査する VM 拡張機能のデプロイ | Guest Configuration |
10 | [プレビュー]: Linux VM スケール セット (VMSS) 用の Dependency Agent のデプロイ | Monitoring |
11 | [プレビュー]: Linux VM スケール セット (VMSS) 用の Log Analytics エージェントのデプロイ | Monitoring |
12 | [プレビュー]: Linux VM 内にアプリケーションがインストールされていないことを監査する | Guest Configuration |
13 | [プレビュー]: Linux VM 内にアプリケーションがインストールされていないことを監査する VM 拡張機能のデプロイ | Guest Configuration |
14 | [プレビュー]: Linux VM 内にアプリケーションがインストールされていることを監査する | Guest Configuration |
15 | [プレビュー]: Linux VM 内にアプリケーションがインストールされていることを監査する VM 拡張機能のデプロイ | Guest Configuration |
16 | [プレビュー]: Linux VM 用 Dependency Agent のデプロイ | Monitoring |
17 | [プレビュー]: Linux VM 用 Log Analytics エージェントのデプロイ | Monitoring |
18 | [プレビュー]: Log Analytics エージェントのデプロイの監査 - VM イメージ (OS) が一覧にない | Monitoring |
19 | [プレビュー]: OS の脆弱性の Azure Security Center での監視 | Security Center |
20 | [プレビュー]: SQL の脆弱性評価の結果の Azure Security Center での監視 | Security Center |
21 | [プレビュー]: VM の脆弱性の Azure Security Center での監視 | Security Center |
22 | [プレビュー]: VM 用の Log Analytics ワークスペースの監査 - 不一致をレポート | Monitoring |
23 | [プレビュー]: VMSS の Dependency Agent デプロイの監査 - VM イメージ (OS) が一覧にない | Monitoring |
24 | [プレビュー]: VMSS の Log Analytics エージェントのデプロイの監査 - VM イメージ (OS) が一覧にない | Monitoring |
25 | [プレビュー]: Web アプリケーションの CORS リソース アクセス制限を監査する | Security Center |
26 | [プレビュー]: Web アプリケーションの HTTPS 専用アクセスを監査する | Security Center |
27 | [プレビュー]: Web アプリケーションの IP 制限の構成を監査する | Security Center |
28 | [プレビュー]: Web アプリケーションの Web ソケット状態を監査する | Security Center |
29 | [プレビュー]: Web アプリケーションのリモート デバッグ状態を監査する | Security Center |
30 | [プレビュー]: Windows VM がパスワードの複雑さの要件を強制していることの監査 | Guest Configuration |
31 | [プレビュー]: Windows VM がパスワードの複雑さの要件を適用していることを監査する VM 拡張機能のデプロイ | Guest Configuration |
32 | [プレビュー]: Windows VM スケール セット (VMSS) 用の Dependency Agent のデプロイ | Monitoring |
33 | [プレビュー]: Windows VM スケール セット (VMSS) 用の Log Analytics エージェントのデプロイ | Monitoring |
34 | [プレビュー]: Windows VM で可逆的暗号化を使用してパスワードを保存していないことの監査 | Guest Configuration |
35 | [プレビュー]: Windows VM で可逆的暗号化を使用してパスワードを保存していないことを監査する VM 拡張機能のデプロイ | Guest Configuration |
36 | [プレビュー]: Windows VM で直近に使用した 24 個のパスワードを許可していないことの監査 | Guest Configuration |
37 | [プレビュー]: Windows VM で直近に使用した 24 個のパスワードを許可していないことを監査する VM 拡張機能のデプロイ | Guest Configuration |
38 | [プレビュー]: Windows VM のパスワードが 14 文字以上でなければならないことの監査 | Guest Configuration |
39 | [プレビュー]: Windows VM のパスワードが 14 文字以上でなければならないことを監査する VM 拡張機能のデプロイ | Guest Configuration |
40 | [プレビュー]: Windows VM のパスワード最小有効期間が 1 日間であることの監査 | Guest Configuration |
41 | [プレビュー]: Windows VM のパスワード最小有効期間が 1 日間であることを監査する VM 拡張機能のデプロイ | Guest Configuration |
42 | [プレビュー]: Windows VM のパスワード最大有効期限が 70 日間であることの監査 | Guest Configuration |
43 | [プレビュー]: Windows VM のパスワード最大有効期限が 70 日間であることを監査する VM 拡張機能のデプロイ | Guest Configuration |
44 | [プレビュー]: Windows VM 内にアプリケーションがインストールされていないことを監査する VM 拡張機能のデプロイ | Guest Configuration |
45 | [プレビュー]: Windows VM 内にアプリケーションがインストールされていないことを監査する。 | Guest Configuration |
46 | [プレビュー]: Windows VM 内にアプリケーションがインストールされていることを監査する | Guest Configuration |
47 | [プレビュー]: Windows VM 内にアプリケーションがインストールされていることを監査する VM 拡張機能のデプロイ | Guest Configuration |
48 | [プレビュー]: Windows VM 内の監査 Web サーバーでは、TLS 1.1 バージョン以上の暗号化の使用が必要 | Guest Configuration |
49 | [プレビュー]: Windows VM 内の監査 Web サーバーに VM 拡張機能をデプロイするには、TLS 1.1 バージョン以上の暗号化の使用が必要 | Guest Configuration |
50 | [プレビュー]: Windows VM 用 Dependency Agent のデプロイ | Monitoring |
51 | [プレビュー]: Windows VM 用 Log Analytics Agent のデプロイ | Monitoring |
52 | [プレビュー]: カスタム ドメインを使用していない API Apps を監査する | Security Center |
53 | [プレビュー]: カスタム ドメインを使用していない Web アプリケーションを監査する | Security Center |
54 | [プレビュー]: カスタム ドメインを使用していない関数アプリを監査する | Security Center |
55 | [プレビュー]: サブスクリプションの最大所有者数の監査 | Security Center |
56 | [プレビュー]: サブスクリプションの所有者の最小数の監査 | Security Center |
57 | [プレビュー]: サブスクリプション上で MFA が有効ではない読み取りアクセス許可を持つアカウントの監査 | Security Center |
58 | [プレビュー]: サブスクリプション上で所有者アクセス許可を持つ非推奨のアカウントの監査 | Security Center |
59 | [プレビュー]: サブスクリプション上で書き込みアクセス許可を持つ外部アカウントの監査 | Security Center |
60 | [プレビュー]: サブスクリプション上で読み取りアクセス許可を持つ外部アカウントの監査 | Security Center |
61 | [プレビュー]: サブスクリプション上にある所有者アクセス許可を持つアカウントで MFA が有効でないものの監査 | Security Center |
62 | [プレビュー]: サブスクリプション上にある所有者アクセス許可を持つ外部アカウントの監査 | Security Center |
63 | [プレビュー]: サブスクリプション上にある書き込みアクセス許可を持つアカウントで MFA が有効でないものの監査 | Security Center |
64 | [プレビュー]: サブスクリプション上にある非推奨アカウントの監査 | Security Center |
65 | [プレビュー]: サポートされている最新の .NET Framework を使用していない API アプリケーションの監査 | Security Center |
66 | [プレビュー]: サポートされている最新の .NET Framework を使用していない Web アプリケーションを監査する | Security Center |
67 | [プレビュー]: サポートされている最新の Java フレームワークを使用していない API アプリケーションを監査する | Security Center |
68 | [プレビュー]: サポートされている最新の Java フレームワークを使用していない Web アプリケーションを監査する | Security Center |
69 | [プレビュー]: サポートされている最新の Node.js フレームワークを使用していない Web アプリケーションを監査する | Security Center |
70 | [プレビュー]: サポートされている最新の PHP フレームワークを使用していない API アプリケーションを監査する | Security Center |
71 | [プレビュー]: サポートされている最新の PHP フレームワークを使用していない Web アプリケーションを監査する | Security Center |
72 | [プレビュー]: サポートされている最新の Python フレームワークを使用していない API アプリケーションを監査する | Security Center |
73 | [プレビュー]: サポートされている最新の Python フレームワークを使用していない Web アプリケーションを監査する | Security Center |
74 | [プレビュー]: システムの更新プログラムの不足の Azure Security Center での監視 | Security Center |
75 | [プレビュー]: ストレージ アカウントでの BLOB 暗号化の不足の監査 | Security Center |
76 | [プレビュー]: パスワードがない Linux VM アカウントの監査 | Guest Configuration |
77 | [プレビュー]: パスワードがない Linux VM アカウントを監査する VM 拡張機能のデプロイ | Guest Configuration |
78 | [プレビュー]: パスワードがないアカウントからのリモート接続を許可する Linux VM の監査 | Guest Configuration |
79 | [プレビュー]: パスワードがないアカウントからのリモート接続を許可する Linux VM を監査する VM 拡張機能のデプロイ | Guest Configuration |
80 | [プレビュー]: 暗号化されていない SQL データベースの Azure Security Center での監視 | Security Center |
81 | [プレビュー]: 暗号化されていない VM ディスクの Azure Security Center での監視 | Security Center |
82 | [プレビュー]: 仮想ネットワークで Standard レベルの DDoS Protection が有効なことを監査する | Security Center |
83 | [プレビュー]: 可能なアプリのホワイトリスト登録の Azure Security Center での監視 | Security Center |
84 | [プレビュー]: 可能なジャスト イン タイム (JIT) ネットワーク アクセスの Azure Security Center での監視 | Security Center |
85 | [プレビュー]: 関数アプリの CORS リソース アクセス制限を監査する | Security Center |
86 | [プレビュー]: 関数アプリの HTTPS 専用アクセスを監査する | Security Center |
87 | [プレビュー]: 関数アプリの IP 制限の構成を監査する | Security Center |
88 | [プレビュー]: 関数アプリの Web ソケット状態を監査する | Security Center |
89 | [プレビュー]: 関数アプリのリモート デバッグ状態を監査する | Security Center |
90 | [プレビュー]: 制限が少なすぎるネットワーク アクセスの Azure Security Center での監視 | Security Center |
91 | [プレビュー]: 保護されていない Web アプリケーションの Azure Security Center での監視 | Security Center |
92 | [プレビュー]: 保護されていないネットワーク エンドポイントの Azure Security Center での監視 | Security Center |
93 | [プレビュー]: 未監査の SQL データベースの Azure Security Center での監視 | Security Center |
94 | App Services における診断ログが有効であることの監査 | App Service |
95 | Automation アカウント変数の暗号化が有効であることの監査 | Automation |
96 | Azure Data Lake Store における診断ログが有効であることの監査 | Data Lake |
97 | Azure Stream Analytics における診断ログが有効であることの監査 | Stream Analytics |
98 | Batch アカウントにおけるメトリック アラート ルールの構成の監査 | Batch |
99 | Batch アカウントにおける診断ログが有効であることの監査 | Batch |
100 | Data Lake Analytics における診断ログが有効であることの監査 | Data Lake |
101 | Data Lake Store アカウントにおける暗号化の強制 | Data Lake |
102 | IoT Hub における診断ログが有効であることの監査 | Internet of Things |
103 | Key Vault における診断ログが有効であることの監査 | Key Vault |
104 | Logic Apps における診断ログが有効であることの監査 | Logic Apps |
105 | Managed Disks を使用していない VM の監査 | Compute |
106 | Redis Cache に対してセキュリティで保護された接続のみが有効であることの監査 | Cache |
107 | Search サービスの診断ログが有効であることの監査 | Search |
108 | Service Bus における診断ログが有効であることの監査 | Service Bus |
109 | Service Bus 名前空間の承認規則の監査 | Service Bus |
110 | Service Fabric で ClusterProtectionLevel プロパティが EncryptAndSign に設定されていることの監査 | Service Fabric |
111 | Service Fabric でクライアント認証に Azure Active Directory を使用していることの監査 | Service Fabric |
112 | Service Fabric と Virtual Machine Scale Sets の診断ログが有効であることの監査 | Compute |
113 | SQL DB Transparent Data Encryption のデプロイ | SQL |
114 | SQL Server での監査のデプロイ | SQL |
115 | SQL Server での脅威検出のデプロイ | SQL |
116 | SQL Server バージョン 12.0 を必須とする | SQL |
117 | SQL Server レベルの監査設定の監査 | SQL |
118 | SQL サーバーの Azure Active Directory 管理者のプロビジョニングの監査 | SQL |
119 | Transparent Data Encryption 状態の監査 | SQL |
120 | VMSS でのアプリの正常性チェック付きで OS の自動アップグレードを適用 | Compute |
121 | Windows Server 用の既定の Microsoft IaaSAntimalware 拡張機能のデプロイ | Compute |
122 | イベント ハブ エンティティにおける承認規則の存在の監査 | Event Hub |
123 | イベント ハブにおける診断ログが有効であることの監査 | Event Hub |
124 | イベント ハブの名前空間の承認規則の監査 | Event Hub |
125 | カスタム RBAC 規則の使用監査 | General |
126 | ストレージ アカウントに対する制限のないネットワーク アクセスの監査 | Storage |
127 | ストレージ アカウントの BLOB 暗号化を必須とする | Storage |
128 | ストレージ アカウントへの安全な転送の監査 | Storage |
129 | タグとその既定値のリソース グループへの適用 | General |
130 | タグとその既定値の適用 | General |
131 | タグとその値の適用 | General |
132 | タグとその値をリソース グループに強制的に適用 | General |
133 | ディザスター リカバリーを構成されていない仮想マシンの監査 | Compute |
134 | ネットワーク セキュリティ グループの診断設定の適用 | Monitoring |
135 | リソース グループが許可される場所 | General |
136 | リソースの場所がリソース グループの場所と一致することの監査 | General |
137 | 仮想ネットワーク作成時の Network Watcher のデプロイ | Network |
138 | 許可されていないリソースの種類 | General |
139 | 許可されているストレージ アカウントの SKU | Storage |
140 | 許可されている仮想マシン SKU | Compute |
141 | 許可されている場所 | General |
142 | 使用できるリソースの種類 | General |
143 | 従来のストレージ アカウントの使用に関する監査 | Storage |
144 | 従来の仮想マシンの使用の監査 | Compute |
145 | 診断設定の監査 | Monitoring |
続く・・・かも。
Microsoft Azure Cognitive Services と Microsoft Flow を使ってアンケートのフリーコメントの分類を自動化する
イベントを実施した後のアンケートのフィードバックはとても重要です。
ですが、フリーコメントの集計って大変ですよね。特に数が数百件ともなると・・・
統計的に分析したいときに、フリーコメントを目で見て、各自の判断で分類したりすることってあると思うんです。とにかく時間がかかりますし、担当者の主観や疲れによる分類仕分けの正確さが維持できないという問題点があります。
こうした作業は AI を使って自動化してしまいましょう。
今回、Microsoft Flow と LUIS を活用して、ノンコーディングですばやく実現してみたいと思います。
今回実現するイメージ
準備物
・LUIS
・アンケート
・OneDrive
・Microsoft Flow
では、始めてみましょう。
LUISの準備
LUIS は Azure で提供されている自然言語解析の Cognitive Services です。
LUISのアプリ作成の仕方はこちらのリンクを参考にしてください。
LUIS App を作成する – Japan Cognitive Services Support Blog
新しいアプリを作ります。
「My Apps」-「Create new app」を選択し、アプリを作成します。
アプリ作成画面で「Create new intent」を選び、分類したいカテゴリとその例文を登録します。
このような感じで、他のカテゴリを作成し、それぞれ例文を登録します。
出来上がったら、右上にある、Train ボタンを押すと学習がスタートします。
以下のようなバーが出てきたら学習完了です。
右上の Test ボタンを押すと意図解析のテストができます。
どのようなカテゴリに分類されるのか、スコアと共に返してくれますので、ここで妥当性を判断しましょう。もし想定通りでなければ、例文を追加して→学習の繰り返しです。
完成したら、公開します。
「 Publish 」のタブを開き、「 Publish 」ボタンを押すと API として公開されます。
これで LUIS の準備は終わりです。
アンケートの準備
実際に解析するアンケートファイルを作ります。
このアンケートで使用する列は3つだけです。
・__PowerAppsId__ 列:後で使用する Flow で読み込むユニークな行 ID を記載します。"__PowerAppsId__" という記述でないと Flow が行 ID として認識しないので注意が必要です。今回は、A000000001 から連番で振りました。
・Comment 列:実際のアンケートのフリーコメントを記載しましょう。この Comment の文章を LUIS が意図解釈します。
・Category :LUIS が意図解釈したカテゴリーをこの列に書き込みます。
表を作成したら、「挿入」「テーブル」を押し、テーブルを作成します。
テーブルを作成しないと Microsoft Flow で読み込んでくれません。忘れずに作成しましょう。
作成完了するとこんな感じになります。
作成完了したら、OneDrive の任意のフォルダにファイルを保存しましょう。
※OneDrive の作成方法はこちらをご参考ください。
OneDrive はじめてガイド - Microsoft アカウントを取得 - 楽しもう Office
その際に、同じファイルをコピーして、「アンケート出力」というファイルも作成しておきます。
※なぜ2つ作るかというと、Microsoft Flow が読み取って行を更新するという処理を書けるのですが、その際に、読み取っているファイルがロックされているため書き込めないというエラーが出るので、読み取りファイルと出力ファイルを分けています。
これでアンケートファイルの作成は完了です。
Microsoft Flow の準備
Microsoft Flow のサインアップはこちらをご参考ください。
サインアップおよびサインイン | Microsoft Docs
Microsoft Flow のサインアップができると、以下のような画面になります。
「+ 一から作成」を選びます。
もう一度「一から作成」を選びます。
トリガーの作成を選択し、検索で「繰り返し」と入力します。そこで出てきた「スケジュール」を選びます。
時間間隔を入力するところがありますが、基本的にデフォルト値で良いでしょう。
次に、「+新しいステップ」→「アクションの追加」を選択します。
検索フィールドに「 Excel 」と入力すると、Excel ファイルに対する処理を選ぶことができます。ここで、「Excel - 行の取得」の上の方を選びましょう。
※下側は一行単位で取得するアクションとなります。
行の取得のパラメータ設定となります。ファイル名のフィールドの右側をクリックすると OneDrive の接続認証となり、接続できれば OneDrive のファイルが表示されます。
ここは先ほど作成した「アンケート.xlsx」を選びましょう。
正しく選択できれば、テーブル名も選択して選ぶことができます。
さらに、「+新しいステップ」「アクションの追加」を選択します。
検索フィールドで「LUIS」と入力すると、LUIS のコネクタが出てきますので、「LUIS - Get prediction 」を選びます。
「App id」フィールドには、LUIS アプリの App id※(先ほど作成した LUIS アプリのSETTINGS というタブに Application ID が表示されていますので、それをコピーして貼り付けます)、「Utterance Text」には先ほどの行の取得で取得されている「Comment」が選べるようになっているので、それを選びます。
そうしますとなんと、繰り返し処理(Apply to each)が勝手に作成されています。その枠内の「アクションの追加」を選びます。※ループ処理を書かなくても良いのは便利ですね。
同じように検索フィールドで「Excel」と入力するとExcelの操作が出てきますので、今度は「Excel - 行を更新します」を選びます。
先ほどと同じように、出力先の Excel ファイル名とテーブル名を選びますので、「アンケート出力.xlsx」を選び、テーブルを選びます。
更にここで、行 IDというフィールドを選択します。ここは、右側の下の方にある「Row id」をいう値を選びます。
最後に、「Category」というフィールドに LUIS からの戻り値である「Top Scoring Intent Name」を選択します。
これにて完了です!
忘れずに保存して、その右にある「テスト」を押しましょう。
そうすると、フローのテスト画面に映りますので、「トリガーアクションを実行する」をチェックして保存&テストを押します。
もう一度実行を聞かれますので、「フローの実行」を押します。
フローが開始し始めました。
100件のデータで、だいたい3分くらいで終了します。
OneDrive 内の出力ファイルを見てみましょう。ちゃんと更新時刻がたった今になっていますね!
アンケート出力ファイルの Category 列に分類が自動で記載されていれば成功です!
適切に Category が分類されていない場合は、LUIS の例文を追加して学習させましょう。
後始末
Microsoft Flow は実行すると自動的にオンになって、今回の処理ですと15分に一回自動実行されてしまいますので、処理が終わったら忘れずにオフしておきましょう。
そうでないと Microsoft Flow の実行をし続けたり、LUIS の API をコールし続けて思いもよらない課金がされてしまいますのでご注意を。
いかがでしたでしょうか。
このように、Microsoft Flow を使用すれば、ノンコーディングで面倒な処理を自動化できますし、Microsoft Azure Cognitive Services と連携して AI の機能を簡単に付加することもできます。Microsoft Flow では、今回のようなループ処理や条件分岐、前段処理のデータを引き継いだりすることができるため、かなり複雑な処理を作ることも可能です。
今回は繰り返しトリガーでの Flow でしたが、OneDrive にファイルが保存されたら、、など様々なトリガーがあります。また、OneDrive 以外でも、Google スプレッドシートなどでも実施可能です。
ぜひいろいろと試してみてください!
参考リンク
Create smarter flows using Microsoft Cognitive Services LUIS | Flow Blog
Azure Machine Learning Studio でデータセットをマージする
ちょっと調べたらまとめている文書がなかったので備忘録的に。
Azure Machine Learning Studio
Azure Machine Learning Studio はデータサイエンティストでなくともノンコーディングで機械学習のモデル作成、トレーニング、Web API公開まで簡単にできるサービスです。
データセットのインポートもローカルからのインポートからAzure 各種サービスからの連携まで様々取り揃えているのですが、
複数のファイル(csvなど)を取り込みたいケースってありますよね?
方法は大きく2つあります。
1.そもそものCSVファイルを結合して1つのファイルでアップロードする。
Azure Machine Learning Studioにアップロードする前に、前処理をして一つのファイルに結合しておくというやり方があるかと思います。
ただし、データのアップロードサイズには制限がありますので、数GBを超えるようなデータセットはローカルファイルからではなく、Azure StorageやAzure SQL DB、Azure HDInsightを使っていただく必要があります。
参考:https://docs.microsoft.com/ja-jp/azure/machine-learning/studio/faq
2.別々に上げたファイルをAdd Rowモジュールで結合する。
2つのデータセットを結合するモジュールがあります。
ですので、ファイルは別々に+Newでアップロードしていただき、アップロードされたデータセットをStudioにドラッグアンドドロップで持っていき、Add Rowモジュールで結合するというやり方となります。
やってみましょう。
・事前にcsvファイルを2つアップロードしておきます。
・それぞれのcsvファイルをMyDatasetから選択し、ドラッグアンドドロップでExperimentエリアに配置しておきます。
・左側の検索フィールドで「Add Rows」を入力し、「Add Rows」モジュールをドラッグアンドドロップでExperimentエリアに配置します。
・配置したデータセットと「Add Rows」モジュールを繋ぎます。
・Runボタンで実行します。
※列が同一でないとエラーになるので注意!
そうすると、二つのデータセットの行がマージされて一つのデータセットになります。
ご参考 https://msdn.microsoft.com/library/en-us/Dn905871.aspx
このように、Azure Machine Learning Studio だけでも簡単にデータセットを結合することができます。
ただし、この方法は2つのデータセットしか結合できませんので、日付ごとにできた csvファイルなどを結合する場合、Add Rowsを複数並べることもできますが、ちょっと煩雑ですので、、できれば、別のサービスなどで前処理した方がスマートでしょう。
この他、様々なデータセット加工モジュールが用意されていますので、色々試してみてください。
Azure Cognitive Services がノンコーディングでデモできます!(Intelligent Kiosk) ~その2 Realtime Driver Monitoring を試してみよう! ~
前回(Azure Cognitive Services がノンコーディングでデモできます!(Intelligent Kiosk) - 5月の青い空)の続きです。
さて、Intelligent Kioskが立ち上がりましたので、様々なAIのデモができるようになりました。
しかし、API Keyを登録しないと各種デモが動きません。ということで、API Keyを作成してみましょう。
まず、Azureのアカウントを用意します。もし、無いようであればこちらから。
無料の Azure アカウントを今すぐ作成 | Microsoft Azure
Realtime Driver Monitoring を試してみよう!~準備~
色々なデモシナリオがありますが、まずはRealtime Driver Monitoring を試してみましょう。各種デモには、必要なCognitive Services があります。Realtime Driver Monitoring には、Face API とComputer Vison API が必要です。
Azureポータルにログインします。
「新規」→「AI + Cognitive Services」と選びます。今回は、「Face API」を選んでみましょう。選んだら、「作成」ボタンを押します。
Create画面になりますので、そこで各種設定を入れて作成します。内容的には無料枠で十分です。
出来上がると、FaceAPIのビューが開きますので、そこで、「Keys」を開きます。
そのKEY1をコピーします。
Intelligent kiosk の画面に戻り、左上のメニューを開いて「Settings」を開きます。
先ほどコピーしたKey1を貼り付けます。先ほど作成したFaceAPIのリージョンになっていることも忘れず確認しましょう。
あと、カメラ設定をするところがあるので、フロントカメラの設定を入れておきましょう(後で使います)
同じようにAzure Portal から「新規」→「AI + Cognitive Services」→「Computer Vison API 」を選びます。米国西部であることを確認して、無料枠で作成します。
先ほどのFace API と同じようにKeysを開き、KEY1をコピーして、Intelligent kiosk のSettings に貼り付けます。
これで準備は完了です。
Realtime Driver Monitoring を試してみよう!~実践~
いよいよRealtime Driver Monitoring を試してみます。
Intelligent Kioskのメニューから、「Demos」を選んで、「Realtime Driver Monitoring」を選択します。
そうすると、ドライバーのモニタリング画面が表示されますね。
先ほど設定したカメラで撮っているものが映るようになっています。
この、Realtime Driver Monitoring は、ドライバーの顔の状態をリアルタイムに分析し、異常を検知してくれます。例えば、目が閉じている、携帯電話で話している、こうした状態は異常であると検知して、それを表示してくれます。
・Head Pose
頭の位置が適正な状態かどうかを見ます。
・Mouse Aperture
口が開いているかどうかを見ます。
・Eye Aperture
目がきちんと明いているかどうかを見ます。
・Distractions
おかしな動作をしていないか。携帯電話で話している、などを検知
※赤くなっているところは異常を検知
安全運転は大事ですね。眠くなったら少し休憩を入れましょう。
Drivers Idを登録してみよう!
Drivers Idという項目がありますね。こちらは、顔認証をしてくれる項目なんです。
自分の顔を登録してみましょう。
まず、メニューから「Settings」を選び、「Generate Workspace key」を押します。
次に、メニューから「Face Identification Setup」を選びます。
そうすると、新規追加画面に移りますので、Group の右の「+」でGroup 作成。その後、People の右の「+」で個人を作成します。
そうすると、登録した名前で画像を検索してくれます。ここで、有名人であれば一発で登録が済むのですが、僕は有名ではないので、、、鈴木みのるがでてきちゃいますねw
画像の添付か、カメラでの撮影により、僕の顔写真を登録します。
納得いくものができたら、右上の実行ボタンを押します。
これで準備は完了です。
先ほどの「Realtime Driver Monitoring」に戻ると、僕の顔から名前を認識してくれています。
これはUber でも活用されている技術なんですね~
これ以外にも、動画のリアルタイム分析を行ってくれる「Realtime Video Insights」や、画像のラベル判定モデルを作ることができる「Custom Vision Explorer」、カメラで撮影した画像に自動的にキャプションをつけてくれる「CaptionBot」など、Microsoft のCognitive Services の動作を、何もコーディングすることなく体験することができます。
ぜひ、いろいろと試してみて、Microsoft のCognitive Services を体験してみてください!体験してイカしたデモができたら、ぜひ周囲の方に見せてみましょう!