説明
別のグループを指定しないリソースには、デフォルトセキュリティグループが使われる場合があります。ここに不要な受信・送信許可があると、意図しないリソースにもその通信権限が適用されます。
既定の受信ルールは同じセキュリティグループ内のリソース間通信を許可し、VPC 内の全接続元を許可することとは異なります。プロトコル、接続元、送信先とともに実際の許可範囲を確認してください。
想定される影響
- デフォルトグループを共有するワークロード間で、不要な通信が可能になる場合があります。
- 誤ってグループに関連付けた新規リソースに、過剰な送受信権限が適用される可能性があります。
対処方法
- 実際の関連リソースと必要な通信を確認し、目的別のグループを準備して関連付けてください。
- デフォルトグループの不要なルールを削除してください。aws_default_security_group は管理開始時に既存ルールを削除して宣言したルールを適用するため、影響を事前に確認してください。
- 新規デプロイではグループを明示し、必要な通信が成功して不要な通信が遮断されることを確認してください。
例
デフォルトグループのルールを比較する抜粋です。参照 VPC を別途定義し、先にサービス専用グループへの移行を準備してください。ルールの削除は、このグループを使うリソースに影響します。
変更前
hcl
resource "aws_default_security_group" "default" {
vpc_id = aws_vpc.mainvpc.id
ingress = [
{
protocol = -1
self = true
from_port = 0
to_port = 0
}
]
egress = [
{
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
]
}
同じセキュリティグループの接続元から全プロトコルを許可し、全 IPv4 宛先への送信を許可します。
変更後
hcl
resource "aws_default_security_group" "default" {
vpc_id = aws_vpc.mainvpc.id
}
デフォルトグループをルールなしで管理します。必要なワークロード通信は、別途関連付けたサービス用グループで許可してください。