インスタンスのセキュリティを向上させるため、キーペア認証、強力なパスワード認証、または パスワード不要のワークベンチ接続を使用し、定期的な認証情報のローテーションポリシーを実装することを推奨します。
セキュリティリスク
多くのユーザーは、覚えやすいという理由で 123456 や admin@123 のような単純なパスワードを設定します。これにより、システムが以下のセキュリティリスクにさらされます。
-
ブルートフォース攻撃:攻撃者は Hydra や John the Ripper などの自動化ツールを使用して、一般的なパスワードの組み合わせを高速で試行し、弱いパスワードを迅速に解読します。
-
データ侵害:パスワードを解読した後、攻撃者は個人情報や財務情報などの機密データを盗んだり、ユーザーになりすまして詐欺を働いたりする可能性があります。
-
ラテラルムーブメント:攻撃者は、弱いパスワードを使用して一般従業員のメールなど、権限の低いアカウントを侵害する可能性があります。その後、内部ネットワーク内で水平に移動し、管理者権限や重要なシステムの制御権を取得することがあります。
-
クレデンシャルスタッフィング:ユーザーが複数のプラットフォームで同じ弱いパスワードを再利用している場合、1 つのプラットフォームでのデータ侵害により、攻撃者は漏洩した認証情報を使用して他のサービスのアカウントを侵害できます。
ベストプラクティス
Linux インスタンス
パスワード認証よりも安全なキーペア認証を推奨します。
コンソール
インスタンス購入ページでインスタンスを作成する際に、ログインクレデンシャル を キーペア に設定し、既存の キーペア を選択します。
キーペアがない場合は、キーペアの作成 をクリックしてから、新しいキーペアを選択します。
[ログイン認証情報] は [パスワード] ではなく [キーペア] (推奨) に設定することを推奨します。[ログイン名] には [ecs-user] を選択します。
API
RunInstances または CreateInstance API オペレーションを呼び出してインスタンスを作成する際、KeyPairName パラメーターを指定します。このパラメーターが指定されている場合、Password パラメーターは無視されます。
キーペアがない場合は、CreateKeyPair API オペレーションを呼び出して作成できます。
Windows インスタンス
強力なパスワード認証の使用を推奨します。キーペア認証は Windows インスタンスではサポートされていません。
インスタンス購入ページでインスタンスを作成する際、ログインクレデンシャル を パスワード に設定します。その後、プロンプトに従って強力な ログインパスワード を設定します。
-
以下の要件を満たす強力なパスワードを作成します。
-
8 文字以上であること。
-
大文字 (A~Z)、小文字 (a~z)、数字 (0~9)、特殊文字 (~、!、@、$, %、^、&、*、-、_、=、+、#、/、?) のうち、3 種類以上を含むこと。
-
ユーザー名またはユーザー名を逆にした文字列でないこと。
-
-
一般的または公知の弱いパスワードを使用しないでください。弱いパスワードの例は次のとおりです。
-
abcd1234、admin、root、admin@123など、一般的に知られている弱いパスワード。 -
123456、abcdef、123abc、qwerty、1qaz2wsxなど、連続した文字やキーボードの配列パターン。 -
5201314やwoaini1314などの一般的なフレーズ。 -
会社名、誕生日、氏名、ID 番号、電話番号、メールアドレス、ユーザー ID、年などの個人情報。
-
-
パスワードは 90 日ごとに変更することを推奨します。
コンプライアンス機能
チェック:Linux インスタンスのキーペア認証不使用
ECS Insight
-
ECS Insight に移動します。
-
[セキュリティ] タブで、[キーペアの使用 (Linux のみ)] をクリックして、キーペア認証を使用していない Linux インスタンスを表示します。
セキュリティセンター
-
セキュリティセンターコンソールに移動します。
-
左側のナビゲーションウィンドウで を選択し、[クラウド資産設定リスク] タブで [SSH キーペアを使用してログイン] 確認項目を見つけ、操作 列の [スキャン] をクリックします。
ステータスが「失敗」の場合は、キーペア認証を使用していない Linux インスタンスが存在することを示します。詳細 をクリックして表示できます。
ブロック:Linux インスタンスのパスワード認証の禁止
組織またはアカウントレベルで Resource Access Management (RAM) ポリシーを使用して、Linux インスタンスのパスワードを設定するアクションを事前にブロックします。
-
エンタープライズユーザーの場合:
-
Alibaba Cloud アカウントでリソースディレクトリコンソールにログインします。左側のナビゲーションウィンドウで [コントロールポリシー] をクリックし、カスタムコントロールポリシーを作成します。次の JSON コンテンツを貼り付けます。
このポリシーは、インスタンスの作成、システムディスクのアタッチまたは交換、インスタンス属性の変更、またはパスワードのリセット時にパスワード認証を使用することを拒否します。
{ "Version": "1", "Statement": [ { "Action": [ "ecs:RunInstances", "ecs:CreateInstance", "ecs:ReplaceSystemDisk" ], "Resource": "*", "Condition": { "Bool": { "ecs:PasswordCustomized": [ "true" ] }, "StringEquals": { "ecs:ImagePlatform": "linux" } }, "Effect": "Deny" }, { "Action": [ "ecs:ModifyInstanceAttribute", "ecs:InvokeCommand", "ecs:AttachDisk" ], "Resource": "*", "Condition": { "Bool": { "ecs:PasswordCustomized": [ "true" ] } }, "Effect": "Deny" } ] } -
リソースディレクトリで、適切なノードにコントロールポリシーをアタッチします。ポリシーは、そのノード配下のアカウントに対してこれらのアクションをブロックします。
-
-
非エンタープライズユーザーの場合:
-
Alibaba Cloud アカウントで RAM コンソールにログインします。左側のナビゲーションウィンドウで、権限付与ポリシー をクリックします。上記と同じ JSON コンテンツでカスタム権限ポリシーを作成します。
-
カスタム権限ポリシーをアタッチして、RAM ユーザー、RAM ユーザーグループ、または RAM ロールに権限を付与します。
-
修正:インスタンスのキーペアログインへの切り替え
パスワード認証を使用している既存の Linux インスタンスを見つけた場合は、キーペア認証に切り替えます。
-
キーペアのバインド:既存のキーペアをバインドするか、新しいキーペアを作成してバインドします。
キーペアをアタッチした後、そのキーペアでインスタンスにログインできることを確認します。
-
パスワードログインの無効化:インスタンスにログインし、次のスクリプトを実行して SSH サービスの設定ファイルを変更します。
#!/bin/bash # 元の設定ファイルをバックアップします。 cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak_$(date +%F) # パスワード認証を無効化します:PasswordAuthentication パラメーターを no に変更します。 sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config # 変更を有効にするために SSH サービスを再起動します。 # コマンドはオペレーティングシステムによって sshd または ssh になります。 systemctl restart sshd || service sshd restart -
結果の確認:インスタンスを再起動します。パスワードベースのログインが失敗し、キーペアでのログインが成功することを確認します。