kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Azure SQL Databaseで一定以上の件数の抽出に対するクエリがあった場合アラートを上げたい

Azure SQL Databaseに対して監査を設定することで、SQL全権抽出した場合などにアラートをあげられるようになりました。プレビューですが、ちょっとやってみましょう。

docs.microsoft.com

f:id:kkamegawa:20210407113645p:plain

Azure SQLの監査を有効にして、Log Analyticsへ送信します。

f:id:kkamegawa:20210407111921p:plain

ログでクエリーを書いてみます。ここではテストデータがしょぼいので、過去12時間に1件以上の抽出があったものだけを対象にしています。

response_rows_dを好きな件数にしてください。

f:id:kkamegawa:20210407111926p:plain

対象のデータベース、対象となったクエリーselect* from Master_Accountなどが確認できます。消してますが、ホストやクライアントIPも出てきます。

クエリーができたので、これでアラートを作ります。

f:id:kkamegawa:20210407121336p:plain

クエリーエディターの脇にある新しいアラートルールをクリックします。

f:id:kkamegawa:20210407111930p:plain

アラートルールの作成画面が出てきます。Log Analyticsでは抽出対象時間を縛っていましたが、ここでは指定せずに単純に1件より多い件数で縛っています。

他にもIPアドレスで縛っているのであれば、そのIP以外とか指定したクライアント以外からのアクセスとか条件を追加すればいいでしょう。

f:id:kkamegawa:20210407111857p:plain

こんな風に直近24時間以内に条件に一致するアラートが検出できています。

f:id:kkamegawa:20210407111936p:plain

ディメンジョン、トリガーする違反数、評価期間を指定します。この辺はAzure Monitorそのものなので、問題ないですね。

f:id:kkamegawa:20210407111911p:plain

アクションを指定します。ない場合はアクショングループの作成から作成できます。

f:id:kkamegawa:20210407111916p:plain

全件抽出とかは重大なインシデントなので、重大度0でアラートルールを指定します。

これでOK…のはずです。

アクショングループの作成

ついでにアクショングループを作成するときです。別のブレードが開きます。

f:id:kkamegawa:20210407111903p:plain

アクショングループ名、表示名を指定します。

f:id:kkamegawa:20210407111907p:plain

通知先を指定します。ここではロールで指定できるので、管理者向けに通報が可能です。

MacBook Pro 13inch (2019 Thunderbolt-2port)の問題でAppleサポートとやり取りした記録

はじまり

昨年BigSurが公開されて、しばらくは様子見していたのですが一か月くらいたって「まぁいっか」ということで更新したらトラブル発生。トラックパッドの触覚フィードバックがほぼ動かなくなりました。フィードバックがないだけで、トラックパッドとしては機能します。少しの間我慢というか、一時的なものかなと思って放置していたのですが、どうにも直る気配がない(ごくまれに復活する)ので、サポートに電話します。

2020/12の話

Appleのサポートに電話。この辺の待ち時間がほとんどないのはほかのメーカーと違って素晴らしいです。ただ、そこまででその時に言われた回答が「OS更新してからなじむまで時間がかかるので、しばらく使っていてください」という話でした。なじむって、正直そんなの初めて聞きました。

まぁいいやと思ってそのまま放置。

2021/2の話

COVID-19があるので、正直Appleストアに行きたくなかったのですが、しょうがないのでジニアスバーを予約して心斎橋へ。開店直後の回(11:00AM)でしたが、少し早く着いたので、「予約がある人はこちら」とあったのでそこで並んでいたら、実は購入者の列で、あやうく予約時間に間に合わなくなるところでした。

あきれながらぎりぎりになんとか通されて、エキスパートっぽい人と相談開始。

  • フィードバックがないことを確認
  • システム環境設定を確認
  • Apple内部の診断ツールでハードウェア診断(異常なし)
  • Appleの診断用OS(ネットワーク起動)で起動すると使える
  • たまたま前日に11.2.2が公開されていて、インストールすると(Apple内部ネットワークのくせにダウンロード遅い)一瞬使えるようになった
  • ちなみに液晶が汚かったので、どうやってきれいにしたらいいのか聞いたら、これコーティングがはがれているのでApple Careで直せるということだった。ちなみに2/3くらいはがれている。

エキスパートっぽい人ではあるんだけど、やってることは結局診断ツールを動かしてその内容を見るだけで正直これ少しのトレーニングで誰でもできるのでは?という感じだった。昔のジニアスバーは筋金入りのユーザーでも及ばないトラブル対応ができる人がそろっていたと聞いた記憶があるけど、ツールで平均化されるのはいいことではあるが、「ここくれば」的なものはなくなったようにも思う。

その日は持ち帰り。その日くらいは動く。

2021/3の話

どうしても動かなくなったので、もらった電話番号にかけて、液晶の件と一緒にもう一度相談。

  • サポート番号はもちろん継続
  • 前の人から情報引き継げていますよね?「他社なので見えないこともありまして」「他社?😲」(アウトソースされてるのはもちろんわかってますが)
  • リモートセッションで画面共有していろいろチェックしても問題なし。Apple IDいうだけで共有されるのは便利。
  • 別のユーザー作って試してみてください→ダメ
  • ⌘+R / ⌘+Option+R で再インストールを進められる→ダメ。
  • もう新規でインストールし直してください
    • ⌘+ (Option +)Rの再インストールとの違いは?
    • 内部で使用しているライブラリーの再構築が行われますので…。マジで🙄?
    • 結局新規インストールもダメ

まっさらになったMacBook Proは修理に引き取られました。

修理の追加課金

修理終わるかなーと思っていると、Appleから通知が。曰く「ほかの故障があるからこれ直さないとできない。xx円よこせ」という話。WindowsのEdgeとChromeでURLにアクセスすると「リクエストが処理できません」といわれる余裕のAppleブロック。 iPhoneのSafariなら見えました。

最初iPhoneほかのことで使っていたので、Appleのサポートに電話(電話は和風携帯なのです)。パートナーの人と本物(?)のAppleの人と裏でやり取りしています。送られてきたのが小さい写真で、三角形の黄色で一部が塗られている。え、これ液晶が壊れているから直せないって言われてる?そもそも液晶のコーティング直すんだから関係なくない?いくら何でもこの三角の部分が壊れているなら気づくよ?輸送トラブルじゃないの?と思っても窓口の人ではらち開かず。もしかして「この故障を直した後でさらに追い金で修理代取られるの?」とか心配マックス。

10分で終わると思っていたのに「2-3分待ってください」といわれるたびに5分くらい待つ。仕事の合間にかけているつもりで迫りくる次の予定。Appleの人と話すとこうなるそうです。

  • コーティング剥がれは有償修理(ジニアスバーで無償って言われたんだけど…)
  • これは「コーティングを直す」ために必要な修理でそれ以上の追加金はない
  • 黄色の三角形のところは彼らでも何を意味するのかわからない
    • それでお金取るの?こんな不鮮明な写真で言われても言いなりじゃない?
  • 「Appleケアのインシデントをお持ちです」はこの件には関係なく、平たく言えば「お金払え、いやならこのまま返す」以上の話ではない。
  • トラックパッドはちゃんと無償修理する(でもこれ修理しないとトラックパッド修理されないんじゃ…?液晶とどこに相関関係があるの?ぼくにはわからない)

正直騙された感がすごいし、コーティング保証期間内にはがれれても有償かぁと思ってしまいますが払いました。

総括

  • 電話対応は非常にいい。特に待ち時間がほとんどない(待っても5分以内)のはすばらしい
  • 再インストールするたびに電話切っているので、この件だけで6回くらい電話していますが、いずれも待ち時間は土曜日の朝とか込み合いそうな時間帯だけでした。
  • 「ここで絶対何とかしてくれる」という安心感は少ないなぁ
  • 通りいっぺんのツール実行するだけだから、これダウンロードして実行できるようにしてくれればいいのにと思ってしまう(オフラインでは使えないとかでもいいから)。
  • 集団訴訟やリコールで決まった対応に関してはドライに実施してくれるけど、そうでないものの引き取りチェックなどは可能な限り避けてる印象。
  • ジニアスバーに1時間以内に行けるところに住んでいる人以外は使うときはハード故障に気を付ける。宝箱にでも入れてないとダメ。

電話していたのが和風携帯だったので、毎回サポート対応のアンケート拒否していたのですが、最後の修理のところだけはボロカスに書きたかったので、アンケート要求すればよかったと思いました。

点数つけるならサポート体験はほぼ満点だけど、技術的な体験としては20点くらい。

その後(2021/3/31追記)

お金を払うと、その日のうちに修理が終わったので、日曜日の朝出して、中2日で戻ってきたことになります。すばやい。周りが多少汚れていたのもきれいになっています。懲りたので液晶保護フィルム注文しました。探してみたらそういう話はよくあるらしい。

アンケート来ないのかな。ボロカス書くけど。

その後2(2021/4/6追記)

アンケートきたので、「ロジスティクスは問題ない」「修理エクスペリエンス最低」的なことを書きました。10人近くとやり取りしましたけど、誰も「この修理は課金対象です」って言ってくれなかったんですよね。あと、不鮮明な写真しかなく、説明文もなく、サポートにも状況が共有されないのは最低という感じ。

調べると拭くとコーティングが剥がれるのはよく知られた現象のようで、遅まきながら液晶保護フィルム買いました。今時のフィルムはすごいですね。13インチでも気泡なしでピッタリ貼れました。

[rakuten:elecom:10052365:detail]

Azure DevOps 2021/3/23の更新

Azure DevOps Sprint 184のリリースノートの翻訳を行いました。オリジナルはこちらからご覧ください。

docs.microsoft.com

最大の問題というか変更としては、無条件にAzure Pipelinesの無償枠が与えられなくなったということです。今まではorganizationを作ると自動的に1800分の無償枠とパブリックプロジェクトには10並列の無制限実行時間が与えられていたのですが、ビットコインの高騰を受けて、マイニングのターゲットとして狙われることになってしまいました。

GitHubも事情は同じなのですが、あちらはアカウント単位で設定できるのでBANすればいいだけですが、Azure Pipelinesの場合、MSアカウント作ってしまえば自在にorganization作れて、organization単位で無償の実行時間が与えられるのでより狙われやすいということだったのでしょう。Twitterでもしばしばビルドキューに入るまで長い時間かかっているという話を見かけましたが、ほぼこの不正マイニングが原因だそうです。

パイプラインの保持ポリシーがちょっと変わります。クラッシックビルド(YAMLではない方)を使っている人は注意してください。一度動き出すとなかなか変えないので、この警告見る事も少ないかと思います。

パイプラインの環境変数上書きは便利でもあるのですが、悪意がある人とか意図せず上書きしてしまって挙動がおかしくなることがあったので、タスクがわで上書きできないようにしたそうです。sshなどの機密情報が入るような組み込みタスクも既に更新されているそうなので、可能な限り新しいバージョンへの変更をお勧めします。

Gitではforkすることが多いですが、forkされたレポジトリで機密情報を扱わせるのは、開発プロジェクトではともかく、組織内ではなかなか難しいところです。しかし、インナーソース(組織内でオープンにソース公開して改良を続ける)が進まないという事もあるので、明示的に認めた場合は使えるようにするという設定ができるようになりました。

Azure使う人しか関係ないですが、Azure関係のモジュールが最新版だけ組み込みになります。これは個人的にはありがたいです。あれ、割とディスク食う割には必要なケースがなかったので。セルフホスト版にはもちろん影響しませんが、自分で作るセルフホストイメージでは最新版だけにしています。

最後はAzure Reposでレポジトリ削除権限を持っている人に限られますが、レポジトリの一時無効化ができるようになりました。書かれているように、リリースしてはならない非互換のライセンスを持つオープンソースライブラリが混入していたり、知財で公開不可能なものを組み込んでいたりした場合ですね。非常に有用だと思います。

Pipelinesの変更は残念ですが、うまく検出できるモデルができたら元に戻すそうなので、期待して待ちましょう。ではまた三週間後。

Translate to Japanese to Azure DevOps release not…

Active Directoryドメインコントローラーにsysvolとnetlogon共有がない時の対処

手元にはWindows Server 2012 R2と2016のActive Directoryドメインコントローラーがあるのですが、2012 R2はそろそろEOLを見越して引退させないといけないかなということと、2016はWindows Updateの遅さに耐えかねて2019に統一しようという計画を立てました。アップグレードでもよかったのですが、Server Coreもいい加減辛いかなということと、2012 R2のアップグレードが何故かできなかったので諦めたというところです。

発端

2019を追加して、ドメインコントローラーにして、各種マスターを新DCに移行させます。これでいいかなと、2012 R2の離脱準備開始。まず2012 R2を降格させようとしたら、「最後の一台のドメインコントローラーです」という警告が出ます。え?

診断

docs.microsoft.com

まずはdcdiagコマンドで診断します。

  • sysvolのレプリケーションができていない
  • netlogon共有がない

あたりがまずいようです。このほかにも新しく追加した2019のDCではネットワークプロファイルがドメインではなく、プライベートになっているという状態でこれもなんとかしないといけない。一応ドメインには入っているし、DCとしても認識はされているのですが。

docs.microsoft.com

一応こういうドキュメントはあります。

sysvol共有をなんとかする

docs.microsoft.com

まずはsysvolを復活させます。

docs.microsoft.com

この対処をすることで2019にsysvolが復活しました。2016にはできません。基本ですがちゃんとイベントビューアは見ないといけないですね。Server. Coreということで見ないのは失敗でした。どうやら何度もサーバーが落ちた時にディスクの状態がおかしくなったようで、System Information VolumeフォルダーにあるDFSRフォルダーが壊れてしまったようです。

このフォルダーはadministratorにも読み書き権限がないので、icalcsコマンドで書き込みできるようにして、DFSRフォルダーをさっくり消します。

  1. DFRSClientサービスを止める
  2. icalcsでadministratorにc:\System Volume Information配下に書き込み権限をつける
  3. c:\System Volume Information\DFRSをさっくり消す
  4. DFRSClientサービスを再開する

これで勝手に作られ、sysvol共有も復活しました。

netlogon共有を復活する

こちらは簡単で、

  1. netlogonサービスを停止
  2. c:\Windows\SYSVOL\domain\scriptsフォルダーを作る
  3. netlogonサービスを開始

これでnetlogon共有が復活しました。

ドメインプロファイルに復帰させる

Hyper-VのVMとしてDCを作っているせいか、再起動後にネットワークプロファイルがプライベートになってしまうことがあります。こういう時はたいていNICを再起動します。

docs.microsoft.com

このコマンドレットを呼び出すスクリプト用意しています。NICの名前変更するの忘れると動かないですがw。

その他参考

https://www.checkyourlogs.net/how-to-fix-missing-sysvol-and-netlogon-share-and-replication-issues-on-new-domain-controller-at-azure/

主にここを参考にしました。