説明
Tencent Cloud CVM インスタンスにパブリック IP を割り当てると、インターネット接続経路を利用できます。公開が不要な管理用・内部サービスもセキュリティグループで許可していると、外部からのスキャンやログイン試行にさらされる可能性があります。
パブリック IP だけですべてのポートが開いたり、ログインが許可されたりするわけではありません。実際のアクセスは、セキュリティグループ、ルーティング、ホストのファイアウォール、サービスの認証によって決まります。
想定される影響
- 不要に公開されたサービスが、外部からの攻撃対象になるおそれがあります。
- 公開の入口が増えると、アクセス経路と許可ルールを一貫して管理しにくくなる可能性があります。
対処方法
直接の公開が不要なら、アプリケーションと管理接続の代替経路を先に用意し、allocate_public_ip を false にしてください。適用計画でインスタンスの置き換えとサービス中断の影響を確認してください。サービス公開には適切なロードバランサー、管理接続には VPN や踏み台を使用し、インターネットへの送信が必要なら別途送信経路を構成してください。セキュリティグループとホストのファイアウォールも必要な通信だけに制限してください。
例
パブリック IP の割り当てを比較します。var.instance_type には対象のアベイラビリティーゾーンでサポートされるインスタンスタイプを指定し、イメージ、VPC、サブネットの ID も実環境に合わせて置き換えてください。POSTPAID_BY_HOUR はインスタンスタイプではなく課金方式です。
変更前
resource "tencentcloud_instance" "app_server" {
instance_name = "cvm-postpaid"
availability_zone = "ap-guangzhou-7"
image_id = "img-9qrfy1xt"
instance_type = var.instance_type
instance_charge_type = "POSTPAID_BY_HOUR"
system_disk_type = "CLOUD_PREMIUM"
system_disk_size = 50
vpc_id = "vpc-axrsmmrv"
subnet_id = "subnet-861wd75e"
internet_max_bandwidth_out = 100
allocate_public_ip = true
}
パブリック IP の割り当てとインターネット帯域幅を要求します。実際の外部アクセス範囲は、セキュリティグループとサービス設定も確認する必要があります。
変更後
resource "tencentcloud_instance" "app_server" {
instance_name = "cvm-postpaid"
availability_zone = "ap-guangzhou-7"
image_id = "img-9qrfy1xt"
instance_type = var.instance_type
instance_charge_type = "POSTPAID_BY_HOUR"
system_disk_type = "CLOUD_PREMIUM"
system_disk_size = 50
vpc_id = "vpc-axrsmmrv"
subnet_id = "subnet-861wd75e"
allocate_public_ip = false
}
インスタンス作成時にパブリック IP を割り当てません。必要なプライベート接続と外部への送信経路は別途用意する必要があります。