Elastic Compute Service (ECS) インスタンスを作成する際は、SSH キーペアなどの新しく一意のログイン認証情報を使用してください。カスタムイメージに事前設定されたログイン認証情報は使用しないでください。
セキュリティリスク
カスタムイメージから新しい ECS インスタンスを作成すると、そのインスタンスはイメージに事前設定されたログインパスワードや SSH キーを継承します。パブリックイメージにはデフォルトのパスワードは含まれていません。これらの認証情報は、多くの場合、イメージ作成者が開発やテストの利便性のために設定したものであり、重大なセキュリティリスクをもたらします:
制御されていない認証情報の漏洩:カスタムイメージはさまざまなソースから提供されており、組み込まれたデフォルトのパスワードやキーが複数のユーザーに配布されたり、パブリックなコードリポジトリや技術フォーラムで誤って公開されたりしている可能性があります。攻撃者は、これらの既知の公開された認証情報を求めて、クラウドプラットフォームを継続的にスキャンしています。ログインに成功すると、サーバーを完全に制御されてしまいます。
セキュリティ対策のバイパス:攻撃者が事前設定された認証情報を入手すると、他のすべてのセキュリティ保護をバイパスしてシステムに直接ログインできてしまいます。
ベストプラクティス
カスタムイメージを作成する際は、事前設定されたパスワードや SSH キーを含めないでください。
すべてのユーザーのパスワードを削除します (
passwd -d <username>)。/root/.ssh/authorized_keysファイルおよび他のユーザーの対応するファイルが空であることを確認します。bash 履歴をクリアします (
history -c && history -w)。
カスタムイメージからインスタンスを作成する際は、イメージに事前設定されたパスワードの使用を避けてください。
この操作では、root または ecs-user のログイン認証情報 (パスワードまたはキーペア) のみが再設定されます。他のユーザーのログイン認証情報はクリアされません。それらをクリアするには、「修正」の手順に従ってください。
Linux インスタンス
カスタムイメージからインスタンスを作成する際は、イメージに事前設定されたパスワードの代わりにキーペアを使用してください。
コンソール
「カスタムイメージまたは共有イメージからインスタンスを作成」する際は、事前設定されたパスワードを使用 の選択を避けてください。代わりに キーペア を使用します。
[管理設定] セクションの [ログイン認証情報] で、[キーペア] を選択します。[ログイン名] はデフォルトで root です。[キーペア] ドロップダウンリストから既存のキーペアを選択するか、[キーペアの作成] をクリックして新しいキーペアを作成します。
API
RunInstances または CreateInstance 操作を呼び出す際は、
PasswordInheritパラメーターをfalseに設定します。Windows インスタンス
「カスタムイメージまたは共有イメージからインスタンスを作成」する際は、事前設定されたパスワードを使用 の選択を避けてください。強力なカスタムパスワードを設定します。キーペアはサポートされていません。
[ログイン認証情報] セクションで、[カスタムパスワード] タブを選択します。ログイン名は
administratorです。パスワードは 8~30 文字で、大文字、小文字、数字を含む必要があります。また、次の特殊文字を含めることもできます:()~!@#$%^&*-_+=|{}[];'<>,.?/。P@ssw0rdのような一般的で公知のパスワードは使用しないでください。
コンプライアンス
非準拠インスタンスの確認
「Workbench を使用して Linux インスタンスにログイン」し、次の確認を実行します。
不審なユーザーアカウントの確認:
/etc/passwdファイルを表示して、ご自身で作成したものではない、またはデフォルトのシステムユーザーではない不明なユーザーを特定します。cat /etc/passwdSSH 認証済み公開鍵の確認:システムの重要な場所にある
authorized_keysファイルを確認し、どの公開鍵がパスワードなしのログイン用に設定されているかを確認します。# root ユーザーの認証済み公開鍵を確認します。 cat /root/.ssh/authorized_keys # 'admin' など、別のユーザーの認証済み公開鍵を確認します。 cat /home/admin/.ssh/authorized_keysファイル内の公開鍵を注意深く確認し、ご自身が使用する秘密鍵に対応していることを確認してください。不審な、または認識できない公開鍵は直ちに削除してください。
ブロック:事前設定パスワードの使用を防止
組織またはアカウントレベルで RAM ポリシーを使用し、イメージの事前設定パスワードを使用するインスタンスの作成を事前にブロックします。
エンタープライズユーザーの場合:
Alibaba Cloud アカウントを使用してリソースディレクトリコンソールにログインします。左側のナビゲーションウィンドウで、[コントロールポリシー] をクリックします。次に、「カスタム権限ポリシーを作成」し、次の JSON コンテンツを設定します。
このポリシーは、インスタンスの作成時またはシステムディスクの交換時に、イメージからデフォルトのパスワードを継承する権限を拒否します。
{ "Version": "1", "Statement": [ { "Action": [ "ecs:RunInstances", "ecs:CreateInstance", "ecs:ReplaceSystemDisk" ], "Resource": "*", "Condition": { "Bool": { "ecs:PasswordInherit": [ "true" ] } }, "Effect": "Deny" } ] }リソースディレクトリで、適切なノードにポリシーをアタッチします。ポリシーはそのノード配下のすべてのアカウントに適用されます。
非エンタープライズユーザーの場合:
Alibaba Cloud アカウントを使用してRAM コンソールにログインします。左側のナビゲーションウィンドウで 権限付与ポリシー をクリックし、前のセクションと同じ内容のカスタムポリシーを作成します。
「ポリシーをアタッチして権限を付与」し、RAM ユーザー、RAM ユーザーグループ、または RAM ロールに権限を付与します。
修正:事前設定パスワードを持つインスタンスの修正
新しいログイン認証情報の設定
Linux インスタンス:新しいキーペアのバインド
ECS コンソール - インスタンスページに移動し、リージョンとリソースグループを選択してから、ターゲットインスタンス ID をクリックして詳細ページを開きます。
をクリックし、既存のキーペアを選択してから OK をクリックします。新しいキーペアは、インスタンスを再起動した後に有効になります。
Windows インスタンス:パスワードのリセット
ECS コンソール - インスタンスページに移動し、リージョンとリソースグループを選択してから、ターゲットインスタンス ID をクリックして詳細ページに移動します。
をクリックし、プロンプトに従って強力なパスワードを設定してから 変更する をクリックします。
元の事前設定された認証情報の削除 (Linux)
新しい認証情報を使用して ECS インスタンスにログインします。先ほど設定した新しいキーペアまたはパスワードを使用します。
古い公開鍵の削除:すべての
authorized_keysファイルを注意深く検査し、不要な古い公開鍵をすべてクリアします。# root ユーザーの authorized_keys ファイルを編集し、不要な公開鍵をすべて削除します。 vi /root/.ssh/authorized_keys # 他のすべてのユーザーに対しても同じ操作を実行します。 vi /home/<username>/.ssh/authorized_keysパスワード認証の無効化:キーペアを使用して正常にログインできることを確認した後、SSH 設定を変更してパスワード認証を無効にします。これにより、キーペア認証のみが許可されるようになります。
# 1. SSH 設定ファイルを編集します。 sudo vi /etc/ssh/sshd_config # 2. 次の行を見つけて変更します。 PasswordAuthentication no PubkeyAuthentication yes # 3. 変更を有効にするために SSH サービスを再起動します。 sudo systemctl restart sshd
不要なシステムユーザーとファイルのクリーンアップ
/etc/passwdおよび/etc/shadowファイルを確認し、イメージ作成プロセスから残された不要なユーザーアカウントを削除します。また、古いパスワードやキーなどの機密情報を含む可能性のある一時ファイルやスクリプトも削除してください。