Visual Studio Code 用の Azure Policy 拡張機能を使用する
Azure Policy 拡張機能のバージョン 0.1.2 以降に適用する
Visual Studio Code (VS Code) 用の Azure Policy 拡張機能を使用してエイリアスを検索し、リソースとポリシー定義を確認し、オブジェクトをエクスポートし、ポリシー定義を評価する方法について学習します。 最初に、Visual Studio Code で Azure Policy 拡張機能をインストールする方法を説明します。 次に、エイリアスを検索する方法について説明します。
Visual Studio Code 用の Azure Policy 拡張機能は、Linux、macOS、Windows にインストールできます。
前提条件
この記事の手順を完了するには、次の項目が必要です。
- Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
- Visual Studio Code。
Azure Policy 拡張機能のインストールと構成
前提条件を満たしたら、次の手順に従って、Visual Studio Code 用 Azure Policy 拡張機能をインストールできます。
- Visual Studio Code を開きます。
- メニュー バーから、 [表示]>[拡張機能] の順に移動します。
- 検索ボックスに「Azure Policy」と入力します。
- 検索結果から Azure Policy を選択し、 [インストール] を選択します。
- 必要に応じて [再読み込み] を選択します。
国内のクラウド ユーザーの場合は、まず次の手順に従って Azure 環境を設定します。
[ファイル]>[Preferences]\(ユーザー設定\)>[設定] を選択します。
次の文字列を検索します: Azure:Cloud を検索します
一覧から国内のクラウドを選択します。
Azure Policy 拡張機能の使用
注意
Visual Studio Code 用の Azure Policy 拡張機能で表示されたポリシー定義に対してローカルで行われた変更は、Azure に同期されません。
Azure アカウントに接続する
リソースを評価してエイリアスを検索するには、まず Azure アカウントに接続する必要があります。 Visual Studio Code から Azure に接続するには、次の手順に従います。
Azure Policy 拡張機能またはコマンド パレットから Azure にサインインします。
Azure Policy 拡張機能
Azure Policy 拡張機能から、 [Azure にサインイン] を選択します。
コマンド パレット
メニュー バーから、 [表示]>[コマンド パレット] の順に移動し、「Azure: Sign In」と入力します。
サインインの手順に従って Azure にサインインします。 接続すると、Visual Studio Code ウィンドウの下部にあるステータス バーに Azure アカウント名が表示されます。
[サブスクリプション] を選択する
初めてサインインすると、Azure Policy 拡張機能によって既定のサブスクリプション リソースとポリシー定義のみが読み込まれます。 リソースやポリシー定義の表示に対してサブスクリプションを追加または削除するには、次の手順を行います。
コマンド パレットまたはウィンドウのフッターからサブスクリプション コマンドを開始します。
コマンド パレット
メニュー バーから、 [ビュー]>[コマンド パレット] の順に移動し、「Azure: Select Subscriptions」と入力します。
ウィンドウのフッター
画面の下部にあるウィンドウのフッターで、Azure: <ご自分のアカウント> に一致するセグメントを選択します。
フィルター ボックスを使用して、名前でサブスクリプションをすばやく検索します。 次に、各サブスクリプションのチェックをオンまたはオフにして、Azure Policy 拡張機能によって表示されるサブスクリプションを設定します。 表示するサブスクリプションの追加または削除が完了したら、 [OK] を選択します。
リソースを検索して表示する
Azure Policy 拡張機能では、 [リソース] ウィンドウに、選択したサブスクリプションのリソースがリソース プロバイダー別およびリソース グループ別に表示されます。 ツリー ビューには、選択したサブスクリプション内またはサブスクリプション レベルで、次のリソースのグループが含まれています。
- リソース プロバイダー
- リソースおよびポリシー エイリアスを持つ関連子リソースを含む、登録済みの各リソース プロバイダー
- リソース グループ
- 属するリソース グループごとのすべてのリソース
既定では、この拡張機能により "リソース プロバイダー" の部分が、既存のリソースおよびポリシー エイリアスを持つリソースによってフィルター処理されます。 すべてのリソース グループをフィルター処理せずに表示するには、 [設定]>[拡張機能]>[Azure Policy] でこの動作を変更します。
1 つのサブスクリプションに数百または数千のリソースがあるお客様は、リソースを見つけやすい検索方法を好む場合があります。 Azure Policy 拡張機能を使用すると、次の手順で特定のリソースを検索できるようになります。
Azure Policy 拡張機能またはコマンド パレットから検索インターフェイスを開始します。
Azure Policy 拡張機能
Azure Policy 拡張機能から、 [リソース] パネルにカーソルを合わせ、省略記号を選択してから [リソースの検索] を選択します。
コマンド パレット
メニュー バーから、[表示]>[コマンド パレット] の順に移動し、「Azure Policy: Search Resources」と入力します。
表示するサブスクリプションが複数選択されている場合は、フィルターを使用して検索するサブスクリプションを選択します。
フィルターを使用して、検索対象である、前に選択したサブスクリプションの一部であるリソース グループを選択します。
フィルターを使用して、表示するリソースを選択します。 フィルターは、リソース名とリソースの種類の両方に対して機能します。
リソース プロパティのエイリアスを検出する
リソースを選択すると、検索インターフェイスを使用したか、ツリー ビューで選択したかに関係なく、リソースとその Azure Resource Manager のプロパティ値のすべてを表す JavaScript Object Notation (JSON) ファイルが Azure Policy 拡張機能によって開かれます。
リソースが開いたら、リソース マネージャーのプロパティ名または値の上にカーソルを合わせると、Azure Policy エイリアスが表示されます (存在する場合)。 この例では、リソースの種類は Microsoft.Compute/virtualMachines
リソースであり、properties.storageProfile.imageReference.offer プロパティの上にカーソルが合わせられています。 カーソルを合わせると、一致するエイリアスが表示されます。
Note
この VS Code 拡張機能では、Resource Manager モードのプロパティの評価のみがサポートされています。 これらのモードの詳細については、モードの定義を参照してください。
ポリシーの定義と割り当てを検索して表示する
Azure Policy 拡張機能によって、ポリシーの種類とポリシーの割り当ての一覧が、[ポリシー] ウィンドウでの表示対象として選択されたサブスクリプションのツリービューの形で表示されます。 1 つのサブスクリプションに数百または数千のポリシー定義または割り当てがあるお客様は、ポリシー定義または割り当てを見つけやすい検索方法を好む場合があります。 Azure Policy 拡張機能を使用すると、次の手順で特定のポリシーまたは割り当てを検索できるようになります。
Azure Policy 拡張機能またはコマンド パレットから検索インターフェイスを開始します。
Azure Policy 拡張機能
Azure Policy 拡張機能から、 [ポリシー] パネルにカーソルを合わせ、省略記号を選択してから [ポリシーの検索] を選択します。
コマンド パレット
メニュー バーから、[表示]>[コマンド パレット] の順に移動し、「Azure Policy: Search Policies」と入力します。
表示するサブスクリプションが複数選択されている場合は、フィルターを使用して検索するサブスクリプションを選択します。
フィルターを使用して、検索対象である、前に選択したサブスクリプションの一部であるポリシーの種類または割り当てを選択します。
フィルターを使用して、表示するポリシーを選択します。 このフィルターは、ポリシー定義またはポリシー割り当ての displayName に対して機能します。
ポリシーまたは割り当てを選択すると、検索インターフェイスを使用するか、ツリービューで選択することによって、ポリシーまたは割り当てとそのリソース マネージャーのすべてのプロパティ値を表す JSON が Azure Policy 拡張機能によって開かれます。 拡張機能により、開いている Azure Policy JSON スキーマの検証が可能です。
Note
VS Code 拡張機能は、最新バージョンのポリシー定義のみを表示します。 定義の各バージョンについて詳しくは、定義を参照してください。
オブジェクトをエクスポートする
サブスクリプションからのオブジェクトは、ローカルの JSON ファイルにエクスポートできます。 [リソース] または [ポリシー] ペインで、エクスポート可能なオブジェクトにマウス ポインターを合わせるか選択します。 強調表示された行の末尾で、保存アイコンを選択し、そのリソース JSON を保存するフォルダーを選択します。
次のオブジェクトはローカルにエクスポートできます。
- [リソース] ペイン
- リソース グループ
- 個々のリソース (リソース グループ内またはリソース プロバイダーの下)
- [ポリシー] ペイン
- ポリシーの割り当て
- 組み込みのポリシー定義
- カスタム ポリシー定義
- イニシアティブ
オンデマンドの評価スキャン
評価スキャンは、Visual Studio Code 用の Azure Policy 拡張機能を使用して開始できます。 評価を開始するには、リソース、ポリシー定義、ポリシー割り当ての各オブジェクトを選択し、ピン留めします。
- 各オブジェクトをピン留めするには、 [リソース] ペインまたは [ポリシー] ペインでそれを見つけ、編集タブへのピン留めアイコンを選択します。 オブジェクトをピン留めすると、それが拡張機能の [評価] ペインに追加されます。
- [評価] ペインで、各オブジェクトの 1 つを選択し、評価のために選択するアイコンを使用して、評価に含まれるものとしてマークします。
- [評価] ペインの上部で、評価の実行アイコンを選択します。 Visual Studio Code の新しいペインが開き、結果の評価の詳細が JSON 形式で表示されます。
注意
AuditIfNotExists または DeployIfNotExists ポリシー定義については、 [評価] ウィンドウのプラス記号アイコンを使用するか、コマンド パレットで [Azure Policy:存在を確認するためにリソースを選択してください (if-not-exists ポリシーを使用する場合のみ)] チェックボックスをオンにして、既存の確認をするための関連するリソースを選択します。
評価結果には、ポリシー定義とポリシー割り当てに関する情報が、policyEvaluations.evaluationResult プロパティと共に表示されます。 出力は次の例のようになります。
{
"policyEvaluations": [
{
"policyInfo": {
...
},
"evaluationResult": "Compliant",
"effectDetails": {
"policyEffect": "Audit",
"existenceScope": "None"
}
}
]
}
Note
この VS Code 拡張機能では、Resource Manager モードのプロパティの評価のみがサポートされています。 これらのモードの詳細については、モードの定義を参照してください。
評価機能は、拡張機能の macOS および Linux のインストールでは機能しません。
制約テンプレートまたはミューテーション テンプレートからポリシー定義を作成する
VS Code 拡張機能は、既存の Open Policy Agent (OPA) GateKeeper v3 制約テンプレートまたは既存のミューテーション テンプレートからポリシー定義を作成できます。 コマンド パレットをオプションにするには、VS Code で YAML (YAML Ain't Markup Language) ファイルを開いておく必要があります。
有効な OPA GateKeeper v3 制約テンプレート YAML ファイルを開きます。
メニュー バーから、[表示]>[コマンド パレット] に移動して、「Azure Policy for Kubernetes: Create Policy Definition from Constraint Template Or Mutation」と入力します。
適切な sourceType 値を選択します。
ポリシー定義 JSON の
/* EDIT HERE */
の部分を入力します。
この拡張機能では、ポリシー定義の JSON は生成されますが、Azure での定義は作成されません。 適切な "edit here" フィールドを入力し終えたら、完成したポリシー定義 JSON および Azure portal またはサポートされている SDK を使用して、お客様の Azure 環境内にポリシー定義を作成してください。
サインアウトする
メニュー バーから、 [ビュー]>[コマンド パレット] の順に移動し、「Azure: Sign Out」と入力します。
次のステップ
- Azure Policy のサンプルを確認します。
- 「Azure Policy の定義の構造」を確認します。
- ポリシーの効果について確認します。
- プログラムによってポリシー定義を作成する方法を理解します。
- 準拠していないリソースを修復する方法を学習します。
- Azure 管理グループを使用したリソースの整理に関するページで、管理グループとは何かを理解します。