Linux イメージを強化して sudo ユーザーを削除する
適用対象: ✔️ Linux イメージ
この "方法" では、Linux イメージから sudo ユーザーを削除し、Azure に機密仮想マシン (機密 VM) をデプロイする手順を紹介します。
この記事の目的は、機密 VM のデプロイ用に管理者なしで Linux イメージを作成することです。 ゲスト管理者を削除することは、OS 全体の管理者権限を削減することにつながり、セキュリティ上大きな価値があります。
Unix/Linux システムにおけるさまざまな種類のユーザーの理解:
管理ユーザー (sudoer): 特別なアクセス許可を持つ通常ユーザー。 これらのユーザーは、システム構成を変更する特定のタスクを実行できます。
通常ユーザー: 通常ユーザーは管理者以外のユーザーです。 通常ユーザーには、システム構成を変更したり、システム全体のソフトウェアをインストールしたりするアクセス許可はありません。
管理者なしの Linux イメージのコンテキストでは、sudo ユーザーなしでシステムをデプロイすることが目的です。
Note
この構成だけでは、ユーザーが sudo グループに追加されるのを防ぐことはできません。 root または sudo 権限を持つサービスは、特権を昇格させる可能性があります。
前提条件
- Azure サブスクリプションをお持ちでない場合は、開始する前に無料の Azure アカウントを作成してください。
- Ubuntu イメージ - Azure Marketplace から選択できます。
sudo ユーザーを削除し、一般化された Linux イメージを準備する
提案されたソリューションでは、sudo ユーザーなしの Linux イメージが生成されます。
sudo ユーザーを削除する一般化されたイメージを作成する手順は次のとおりです。
Ubuntu イメージをダウンロードします。 Azure Confidential VM のカスタム イメージを作成する
イメージをマウントします。
ループ デバイスを使用してイメージをマウントする例である、この [ディスクをアタッチする] を実行するいくつかの方法があります。 これは、アタッチされたディスクまたはルート デバイスの [イメージをマウントする] のいずれかになります。
$imagedevice は、イメージが含まれるデバイス上のルート ファイルシステムのパーティションです。
mount /dev/$imagedevice /mnt/dev/$imagedevice
このプロセスは、ディスク イメージにアクセスして作業するためによく使用されます。 ここでは、Ubuntu イメージ上の sudo ユーザーを削除するために使用されます。
vhd ファイルシステムへの chroot では、次のコマンドを実行して sudo グループの下にあるユーザーを一覧表示します。
sudo chroot /mnt/dev/$imagedevice/ getent group sudo
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
sudo 権限を削除する: ユーザーの sudo 権限を削除するには、deluser コマンドを使用します。
sudo chroot /mnt/dev/$imagedevice/ deluser -r [sudo_username]
手順 4 を繰り返して、そのユーザーが vhd 上で sudo 権限を持っていないことを確認します。
イメージのマウントを解除します。
umount /mnt/dev/$imagedevice
準備されたイメージには、機密 VM の作成に使用できる sudo ユーザーは含まれません。
「Azure Confidential VM のカスタム イメージを作成する」の手順に従って、Azure 機密 VM を作成します。 azcopy を実行しながら「Azure Confidential VM のカスタム イメージを作成する」の手順 4 で管理者なしのイメージを使用し、残りの手順も同じようにします。