海外リージョンにデータが保存されるのでAzure Cloud Shellを禁止したい
はじめに
Azure Cloud Shellは、Azureポータル上から起動できる、Bash、またはPowershellで使用できるシェル環境です。
Azure CLIやPowershellのAzモジュールも最新化され、最近ではbicepなども標準で使えるようになっており非常に便利に使えます。
Cloud Shellの困ったところ
Cloud Shellを起動すると、コンピュートリソースとしては都度確保されるのですが、ファイルを永続化するためにストレージアカウントが必要になります。
ストレージアカウントは自動で作成してくれるのですが、最寄りの「サポートされるリージョン」で作成されるため、日本からアクセスしている場合は「東南アジアリージョン(シンガポール)」にストレージアカウントが作成されます。
個人の利用では問題になることはありませんが、エンタープライズでの利用の場合は、「国外にデータを保管すべからず」というコンプライスルールがあることが、依然として多いと思います。
上に書いた通り、CloudShellを使うとシンガポールリージョンにファイルが保存されてしまうため、困ったことになるわけです。
というわけで、今回はこの「東南アジアリージョンのリソース利用を禁止」して「Cloud Shellを使えなくしちゃおう」という取り組みについてです。
Cloud Shellの防ぎ方
今回のように、リソースを作るリージョンを防ぐような要件には「Azure Policy」を使用します。
Azure Policyとは・・・?という方は、以前書いた記事をご覧いただければと思います。
さて、ここでは「リソースをデプロイして良いリージョン」を指定するPolicyを利用します。
このような基本的なPolicyは標準で用意されています。
Azure Policyの設定
Azureポータルにて、「ポリシー」>「割り当て」>「ポリシーの割り当て」とメニューを進めます。
「ポリシーの定義」の選択メニューを開きます。
「許可されている場所」を選択して、出てきたポリシーを選択(クリック)して保存(選択ボタンを押下)します。
パラメータタブで、許可するリージョンを選択して、保存します。今回の要件では、東日本/西日本リージョンですね。
以上です。簡単です。なお、ポリシーを割り当ててから効果が出るまで30分程度かかりますので、その点は注意です。
動作確認
では、CloudShellを起動させてみます。今回適用したポリシーは、「リソースの作成」を禁止するポリシーですので、「初めてCloud Shellを起動するときのStorage Account作成」に対して効果があります。
- Azureポータル上、でCloud Shellボタンを押下します。
- BashかPowershellか、シェルを選択します。慣れてて使いやすい方を選びます。
- サブスクリプションを選択し「ストレージの作成」を押下します。
- 結果
以下のようなエラーが出力され、ストレージアカウントの作成に失敗=Cloud Shellの立ち上げができません。
エラーの中身を見ると、先ほど割り当てしたポリシーや、何が原因で拒否されたのか垣間見えますね。
おわりに
今回はCloud Shellがデータを東南アジアリージョンに保存してしまう問題を防ぐ方法を紹介しました。
でも、Cloud Shellはとても便利なツールです。このまま「Cloud Shell使えません」では勿体無いですよね。
そこで次回は、データの保存先を東日本リージョンに変更する方法を紹介します。お楽しみに!
Discussion