📝

海外リージョンにデータを置かずにAzure CloudShellを使いたい

2022/07/12に公開

はじめに

前回の記事で「Cloud Shellは海外にデータを保存しちゃうから使えないんだよなぁ」「じゃあ禁止しようか…」という悲しい企業ユーザー目線での対策を書きました。
https://zenn.dev/tomot/articles/2152777777bb42

しかし、いつの間にか(※)Cloud Shellのデータの保存先を別リージョン指定できるようになっていました。今回は保存先を「東日本リージョン」に指定することで、このコンプライアンス問題を回避する方法を記載します。
※このアップデートですね。2年も前・・・!
https://azure.microsoft.com/ja-jp/updates/azure-cloud-shell-now-supports-additional-storage-regions/

海外リージョンにデータを置くのを防ぐ

前回の記事では、Azure Policyにて「東日本リージョン」または「西日本リージョン」へのリソース作成のみ許可するPolicyを適用しました。(当初の文章で文意が真逆になってました。失礼しました…)
これにより、Cloud Shell起動時に、「東南アジアリージョン」に自動的にストレージアカウントが作成されてしまうことを防げます。しかしその代わりに、Cloud Shellを立ち上げられなくなってしまいました。

東日本リージョンにデータを置く

そこで今回は、Cloud Shellのデータ保存先ストレージアカウントを東日本リージョンに指定します。

手順

  • Cloud Shellを起動します。

ここまでは前回記事と同じです。

  • 「詳細設定の表示」と進めます。

  • するとストレージアカウントの作成先リージョンを指定できるようになります。

リソースグループ名、ストレージアカウント名等を指定する必要がありますが、よしなにやりましょう。なお、ストレージアカウント名は世界で一意になる必要がありますので注意が必要です。("testsa"はありふれすぎてて作れないですね〜)

  • 「ストレージの作成」ボタンを押下します。

しばらく待つと下の通り、Cloud Shellが立ち上がります。

注意点

今回の方法でデータの保存先リージョンを「東日本」にすることができました。前回の記事で設定した、リージョンを制限するAzure Policyに邪魔されることなく、Cloud Shellを起動することができています。
しかし実は「コンピュートリソース」は引き続き東南アジアリージョンで動いています。

<参考>
https://docs.microsoft.com/ja-jp/azure/cloud-shell/persisting-shell-storage

コンピュートリソースとデータ保存先が距離的に、物理的に離れることで、性能面にも多少の悪影響があるようです。

現時点では、コンピュートリソースを東日本リージョンにすることはできないようです。そのため、データの保存リージョンだけでなく、処理リージョンも海外はNG・・・という場合は、Cloud Shellをより厳しい方法で制限する必要があります。
同ドキュメントには、Cloud Shellによって作成されるStorage Accountには
ms-resource-usage:azure-cloud-shell
というタグが付けられることから、当該タグのついたリソースの作成を禁止すべし、と紹介されています。

※とはいえ、事前に作成したストレージアカウントを指定してCloud Shellを立ち上げることもできちゃいますから、その場合は…

おわりに

今回は、「海外リージョンにデータを保存すべからず」というコンプライアンスルールのもとでも、Azure Cloud Shellを利用できるにする設定方法を紹介しました。
Cloud Shellはとても便利なツールですので、一律に禁止するのではなく、ぜひ使うための方法をご検討いただければと思います。

Discussion