次の方法で共有


Linux イメージを強化して sudo ユーザーを削除する

適用対象: ✔️ Linux イメージ

この "方法" では、Linux イメージから sudo ユーザーを削除し、Azure に機密仮想マシン (機密 VM) をデプロイする手順を紹介します。

この記事の目的は、機密 VM のデプロイ用に管理者なしで Linux イメージを作成することです。 ゲスト管理者を削除することは、OS 全体の管理者権限を削減することにつながり、セキュリティ上大きな価値があります。

Unix/Linux システムにおけるさまざまな種類のユーザーの理解:

  • 管理ユーザー (sudoer): 特別なアクセス許可を持つ通常ユーザー。 これらのユーザーは、システム構成を変更する特定のタスクを実行できます。

  • 通常ユーザー: 通常ユーザーは管理者以外のユーザーです。 通常ユーザーには、システム構成を変更したり、システム全体のソフトウェアをインストールしたりするアクセス許可はありません。

管理者なしの Linux イメージのコンテキストでは、sudo ユーザーなしでシステムをデプロイすることが目的です。

Note

この構成だけでは、ユーザーが sudo グループに追加されるのを防ぐことはできません。 root または sudo 権限を持つサービスは、特権を昇格させる可能性があります。

前提条件

sudo ユーザーを削除し、一般化された Linux イメージを準備する

提案されたソリューションでは、sudo ユーザーなしの Linux イメージが生成されます。

sudo ユーザーを削除する一般化されたイメージを作成する手順は次のとおりです。

  1. Ubuntu イメージをダウンロードします。 Azure Confidential VM のカスタム イメージを作成する

  2. イメージをマウントします。

    ループ デバイスを使用してイメージをマウントする例である、この [ディスクをアタッチする] を実行するいくつかの方法があります。 これは、アタッチされたディスクまたはルート デバイスの [イメージをマウントする] のいずれかになります。

    $imagedevice は、イメージが含まれるデバイス上のルート ファイルシステムのパーティションです。

    mount /dev/$imagedevice /mnt/dev/$imagedevice
    

    このプロセスは、ディスク イメージにアクセスして作業するためによく使用されます。 ここでは、Ubuntu イメージ上の sudo ユーザーを削除するために使用されます。

  3. vhd ファイルシステムへの chroot では、次のコマンドを実行して sudo グループの下にあるユーザーを一覧表示します。

    sudo chroot /mnt/dev/$imagedevice/ getent group sudo
    
  4. sudoers.d ホーム ディレクトリと /etc/passwd, /etc/shadow ファイルにあるユーザーを一覧表示して、手順 3 を検証します。 sudo 権限を持つユーザーがいれば、ここに一覧表示されます。

    sudo ls /mnt/dev/$imagedevice/etc/sudoers.d
    
    sudo cat /mnt/dev/$imagedevice/etc/passwd
    
    sudo cat /mnt/dev/$imagedevice/etc/shadow
    
  5. sudo 権限を削除する: ユーザーの sudo 権限を削除するには、deluser コマンドを使用します。

    sudo chroot /mnt/dev/$imagedevice/ deluser -r [sudo_username]
    
  6. 手順 4 を繰り返して、そのユーザーが vhd 上で sudo 権限を持っていないことを確認します。

  7. イメージのマウントを解除します。

    umount /mnt/dev/$imagedevice
    

準備されたイメージには、機密 VM の作成に使用できる sudo ユーザーは含まれません。

Azure Confidential VM のカスタム イメージを作成する」の手順に従って、Azure 機密 VM を作成します。 azcopy を実行しながら「Azure Confidential VM のカスタム イメージを作成する」の手順 4 で管理者なしのイメージを使用し、残りの手順も同じようにします。