の画面スニペット
このガイドでは、Azure Policy を使用して、Linux の Azure セキュリティ ベースラインに対してテスト仮想マシン (VM) を監査します。
具体的には、次の手順を実行します。
- 空の リソース グループ を作成する
- 空のリソース グループに監査 ポリシー を割り当てます
- リソース グループに VM を作成し、監査結果を確認する
先端
- 監査のみのエクスペリエンスではなく、現在プレビュー段階の 監査と構成 (修復) エクスペリエンスを試す場合は、「 クイック スタート: テスト マシンを使用して Linux 用の Azure セキュリティ ベースラインを構成する」を参照してください。
- Linux の Azure セキュリティ ベースラインの背景については、「 Linux の Azure セキュリティ ベースラインとは」を参照してください。
前提 条件
この記事の手順を試す前に:
リソース グループ、ポリシーの割り当て、仮想マシンを作成するには、Azure アカウントが必要です。 Azure アカウントをお持ちでない場合は、無料試用版を作成
。 Azure 環境へのアクセス方法を選択します。
- EASY: Azure Cloud Shell (英語) https://shell.azure.com
- OR: Azure CLI をインストールしてサインインした独自のワークステーションとシェル環境を使用する
- または: Azure portal を使用します。 https://portal.azure.com
目的の Azure テスト環境にサインインしていることを確認します
-
Azure CLI の
-
Azure portal を
する
az account showを使用して、現在のコンテキストを確認できます。 サインインまたはコンテキストを変更するには、az account loginを使用します。-
Azure CLI の
手順 1: リソース グループを作成する
先端
この記事全体の場所の例として "米国東部" (eastus) を使用するのは任意です。 使用可能な任意の Azure の場所を選択できます。
-
Azure CLI の
-
Azure portal を
する
az group create --name my-demo-rg --location eastus
手順 2: 空のテスト リソース グループにポリシーを割り当てる
-
Azure CLI の
-
Azure portal を
する
# Note this example is from a bash shell. Other shells may require different handling of special characters and variables
RG_ID=$(az group show --resource-group my-demo-rg --query id --output tsv)
az policy assignment create --policy "fc9b3da7-8347-4380-8e70-0a0361d8dedd" --display-name "Linux machines should meet requirements for the Azure compute security baseline" --scope "$RG_ID"
手順 3: テスト VM を作成し、マシン構成の準備をする
-
Azure CLI の
-
Azure portal を
する
システム割り当て ID を使用して Linux VM を作成する
az vm create --name my-demo-vm-01 --resource-group my-demo-rg --image Ubuntu2204 --assign-identity [system] --size Standard_B2s先端
通常、"No access was given yet... (アクセス権がまだ与えられていない....
のようなアラートを受け取ります。 Azure Machine Configuration では、マシン がマネージド ID を するだけで、特定のリソース アクセスは必要ありません。 Azure VM 拡張機能として Machine Configuration エージェントをインストールする
az vm extension set --resource-group my-demo-rg --vm-name my-demo-vm-01 --name ConfigurationForLinux --publisher Microsoft.GuestConfiguration --enable-auto-upgrade
先端
このガイドでは、マネージド ID とマシン構成拡張機能の手順を手動で実行して、待機を減らし、コンテキストの変更を減らしました。 大規模に、仮想マシン でゲスト構成ポリシーを有効にするためのデプロイの前提条件 の組み込みポリシー イニシアチブを使用して、これらを満たすことができます。
ステップ 4: 先に進む前に休憩を取る
複数の手順が自動的に実行されるようになりました。 これらの各手順には数分かかる場合があります。 したがって、先に進む前に 少なくとも15分 待ってください。
ステップ 5: 結果を観察する
次の例は、取得方法を示しています。
- コンプライアンス状態別のマシンの数 (数千台のマシンがある可能性がある運用環境のスケールで役立ちます)
- コンプライアンス状態が各マシンの一覧
- コンプライアンスの状態と証拠 (理由とも呼ばれます) を含むベースライン 規則の詳細な一覧
先端
赤 準拠していない が表示され、次のようになります。 監査のみのユース ケースは、既存のシステムと Azure セキュリティ ベースラインの違いを検出することです。
-
Azure CLI の
-
Azure portal を
する
次の Azure CLI の例は、bash 環境の例です。 別のシェル環境を使用するには、行の終了動作、引用符の規則、文字エスケープなどの例を調整する必要がある場合があります。
コンプライアンス状態別のマシンの数:
QUERY=' // Returns one record per observed compliance status bucket, with machine counts for each guestconfigurationresources | where name contains "AzureLinuxBaseline" | extend ["> ComplianceStatus"] = tostring(properties.complianceStatus) | summarize MachineCount = count() by ["> ComplianceStatus"]' az graph query --graph-query "$QUERY" --query data --output yamlcコンプライアンス状態が各マシンの一覧:
QUERY=' // returns one record per machine, with status guestconfigurationresources | where name contains "AzureLinuxBaseline" | project ["> Machine"] = split(properties.targetResourceId,"/")[-1], ComplianceStatus = properties.complianceStatus, LastComplianceCheck = properties.lastComplianceStatusChecked' az graph query --graph-query "$QUERY" --query data --output yamlcコンプライアンスの状態と証拠 (理由とも呼ばれます) を含むベースライン 規則の詳細な一覧。
QUERY=' // Returns one record per baseline rule (around 200 per machine) with status for each GuestConfigurationResources | where name contains "AzureLinuxBaseline" | project Report = properties.latestAssignmentReport, Machine = split(properties.targetResourceId,"/")[-1], LastComplianceCheck=properties.lastComplianceStatusChecked | mv-expand Report.resources | project ["> Machine"] = Machine, ["> Rule"] = Report_resources.resourceId, RuleComplianceStatus = Report_resources.complianceStatus, RuleComplianceReason = Report_resources.reasons[0].phrase, LastComplianceCheck' az graph query --graph-query "$QUERY" --query data --output yamlc
ワークフローの全体的な感覚を与えるためにビデオが含まれています。 クエリの詳細については、この記事のテキストを参照してください。
省略可能: スケーリングを体験するためにテスト マシンを追加する
この記事では、ポリシーは最初は空だったリソース グループに割り当てられ、その後 1 つの VM を取得しました。 これは、システムがエンドツーエンドで動作していることを示していますが、マシンのリストなどを使用した大規模な操作の感覚は提供されません。
手動でも自動化でも、リソース グループにテスト マシンを追加することを検討してください。 これらのマシンは、Azure VM または Arc 対応マシンです。 これらのマシンがコンプライアンスに準拠している (または障害が発生する) のを見ると、Azure セキュリティ ベースラインを大規模に運用化する感覚を深めることができます。
リソースのクリーンアップ
継続的な料金を回避するには、この記事で使用されているリソース グループを削除することを検討してください。 たとえば、Azure CLI コマンドは az group delete --name "my-demo-rg"。
関連コンテンツ
- フィードバックを提供するには、機能要求などについて話し合います。連絡先: linux_sec_config_mgmt@service.microsoft.com
- Ignite 2024 で発表
発表のブログを読む