次の方法で共有


クイック スタート: テスト マシンを使用して Linux 用の Azure セキュリティ ベースラインを監査する

コンプライアンス レポートの の画面スニペット

このガイドでは、Azure Policy を使用して、Linux の Azure セキュリティ ベースラインに対してテスト仮想マシン (VM) を監査します。

具体的には、次の手順を実行します。

  1. 空の リソース グループ を作成する
  2. 空のリソース グループに監査 ポリシー を割り当てます
  3. リソース グループに VM を作成し、監査結果を確認する

先端

前提 条件

この記事の手順を試す前に:

  1. リソース グループ、ポリシーの割り当て、仮想マシンを作成するには、Azure アカウントが必要です。 Azure アカウントをお持ちでない場合は、無料試用版を作成

  2. Azure 環境へのアクセス方法を選択します。

    1. EASY: Azure Cloud Shell (英語) https://shell.azure.com
    2. OR: Azure CLI をインストールしてサインインした独自のワークステーションとシェル環境を使用する
    3. または: Azure portal を使用します。 https://portal.azure.com
  3. 目的の Azure テスト環境にサインインしていることを確認します

    • Azure CLI の
    • Azure portal を する

    az account show を使用して、現在のコンテキストを確認できます。 サインインまたはコンテキストを変更するには、az account loginを使用します。


手順 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 を する
  1. システム割り当て 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 を するだけで、特定のリソース アクセスは必要ありません。

  2. 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: 結果を観察する

次の例は、取得方法を示しています。

  1. コンプライアンス状態別のマシンの数 (数千台のマシンがある可能性がある運用環境のスケールで役立ちます)
  2. コンプライアンス状態が各マシンの一覧
  3. コンプライアンスの状態と証拠 (理由とも呼ばれます) を含むベースライン 規則の詳細な一覧

先端

準拠していない が表示され、次のようになります。 監査のみのユース ケースは、既存のシステムと Azure セキュリティ ベースラインの違いを検出することです。

  • Azure CLI の
  • Azure portal を する

次の Azure CLI の例は、bash 環境の例です。 別のシェル環境を使用するには、行の終了動作、引用符の規則、文字エスケープなどの例を調整する必要がある場合があります。

  1. コンプライアンス状態別のマシンの数:

    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
    
  2. コンプライアンス状態が各マシンの一覧:

    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
    
  3. コンプライアンスの状態と証拠 (理由とも呼ばれます) を含むベースライン 規則の詳細な一覧。

    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"