インスタンスを作成する際、任意の IP アドレスからの O&M ポートへのアクセスを許可するセキュリティグループ設定は行わないでください。セキュリティグループでは、必要なポートのみを開放し、指定した IP アドレスにアクセスを制限する必要があります。
セキュリティリスク
Linux の SSH (ポート 22) や Windows の RDP (ポート 3389) など、ECS インスタンスの O&M ポートは、リモート管理のための主要なゲートウェイです。これらのポートへのアクセスを任意の IP アドレス (0.0.0.0/0) から許可するようにセキュリティグループを設定すると、サーバーが重大なリスクにさらされます。
-
ブルートフォース攻撃:攻撃者は自動化されたツールを使用して、一般的なユーザー名とパスワードの組み合わせを継続的に試行し、インスタンスへのログインを試みます。攻撃が成功すると、インスタンスが完全に制御されてしまいます。
-
データ侵害と改ざん:侵入者はインスタンス上の重要なビジネスデータを盗んだり改ざんしたりする可能性があり、直接的な経済的および運用上の損失につながります。
-
マルウェア感染:侵害されたインスタンスは、DDoS 攻撃の実行、暗号通貨のマイニング、または他のネットワークへのさらなる攻撃の踏み台として、ボットネットの一部として使用される可能性があります。
ベストプラクティス
セキュリティグループを使用して、必要なポートのみを開放し、インバウンドトラフィックを特定のソース IP アドレスに制限します。
コンソール
-
セキュリティグループを作成し、O&M ポートへの任意の IP アドレス (0.0.0.0/0) からのアクセスを許可しないインバウンドルールを設定します。
たとえば、ポート HTTP (80)、HTTPS (443)、SSH (22)、および RDP (3389) へのアクセスを、172.xxx/24 などの特定のソース IP アドレス範囲からのみ許可するカスタム TCP インバウンドルールを設定します。
-
インスタンス購入ページでインスタンスを作成する際に、作成したセキュリティグループを選択します。
[既存のセキュリティグループ] タブをクリックし、[セキュリティグループの再選択] をクリックして対象のセキュリティグループを選択します。ECS インスタンスへのリモートログインを有効にするには、選択したセキュリティグループでポート 22 (Linux の場合) または 3389 (Windows の場合) でのアクセスが許可されていることを確認してください。
API
-
CreateSecurityGroup API を呼び出してセキュリティグループを作成します。次に、AuthorizeSecurityGroup API を呼び出して必要なインバウンドルールを追加します。
SourceCidrIpパラメーターを指定して、特定のソース IP アドレスへのアクセスを制限できます。 -
RunInstances API または CreateInstance API を呼び出してインスタンスを作成する際に、
SecurityGroupIdパラメーターを指定してインスタンスをセキュリティグループに関連付けます。
コンプライアンスチェックと強制
無制限のポートアクセスのチェック
ECS Insight
-
ECS Insight に移動します。
-
[セキュリティ] タブを選択し、チェック項目 [特定のセキュリティグループポートへの無制限アクセス] をクリックして、特定のポートへの任意の IP アドレス (0.0.0.0/0) からのアクセスを許可しているインスタンスを表示します。
Security Center
-
Security Center コンソールに移動します。
-
左側メニューで、 を選択します。[クラウド製品設定リスク] タブで、[任意のIPアドレスからポート22およびポート3389へのアクセスを禁止] というチェック項目を見つけ、操作 列の [スキャン] をクリックします。
[失敗] ステータスは、一部のインスタンスがポート 22 または 3389 への無制限のアクセスを許可していることを意味します。詳細 をクリックして表示できます。
O&M ポートが無制限に公開されているインスタンスのブロック
組織またはアカウントレベルで、RAM ポリシーを使用して、任意の IP アドレスからの無制限のアクセスを許可するセキュリティグループルールを事前にブロックします。
-
企業ユーザー向け:
-
Alibaba Cloud アカウントを使用してResource Directory コンソールにログインします。左側メニューで [コントロールポリシー] をクリックし、カスタム権限ポリシーを作成して、次の JSON コンテンツを貼り付けます。
このポリシーは、インスタンスの作成、および無制限のポートアクセスを許可するセキュリティグループルールの作成または変更を拒否します。
{ "Version": "1", "Statement": [ { "Effect": "Deny", "Action": [ "ecs:AuthorizeSecurityGroup", "ecs:ConfigureSecurityGroupPermissions", "ecs:ModifySecurityGroupRule" ], "Resource": "*", "Condition": { "StringLike": { "ecs:SecurityGroupIpProtocols": [ "TCP" ] }, "CIDRInRange": { "ecs:SecurityGroupSourceCidrIps": [ "0.0.0.0/0" ] } } }, { "Effect": "Deny", "Action": [ "ecs:CreateInstance", "ecs:RunInstances" ], "Resource": "*", "Condition": { "Bool": { "ecs:NotSpecifySecureGroupId": [ "true" ] } } } ] } -
Resource Directory で、コントロールポリシーを適切なノードにアタッチします。ポリシーは、そのノード配下のすべてのアカウントに対して有効になります。
-
-
非企業ユーザー向け:
-
Alibaba Cloud アカウントを使用してRAM コンソールにログインします。左側メニューで 権限付与ポリシー をクリックし、上記のポリシーと同じ内容のカスタム権限ポリシーを作成します。
-
RAM ユーザー、RAM ユーザーグループ、または RAM ロールに権限ポリシーを付与します。
-
修正:セキュリティグループルールの変更
既存のセキュリティグループルールを変更して、ソースを 0.0.0.0/0 から特定の信頼できる IP アドレス範囲に変更します。
-
安全でないルールの特定:「チェック」セクションで説明されている方法を使用して、リスクのあるセキュリティグループとルールを見つけてください。
-
ルールの変更:
-
ECS コンソール - セキュリティグループページに移動します。対象のセキュリティグループを見つけ、操作 列の ルールの管理 をクリックします。
-
対応するルール (たとえば、ソースが 0.0.0.0/0 のポート 22 のルール) を見つけます。変更 をクリックし、ソースを信頼できるソース IP アドレスに更新してから、OK をクリックします。
-
Workbench を使用してインスタンスにリモートで接続する場合、次の表に従って、セキュリティグループの 受信 ルールを設定します。
|
許可ポリシー |
優先度 |
プロトコルタイプ |
ポート範囲 |
ソース |
|
[許可] |
1 |
[カスタム TCP] |
|
|
最適なセキュリティと安定性を確保するため、企業のオフィスネットワークを含むいかなるパブリック IP アドレスにも O&M ポートを公開しないでください。代わりに、VPC 内のプライベート IP アドレスからのみアクセスを許可してください。詳細については、「セキュリティグループの適用ガイドと例」をご参照ください。