Wenn Sie ALB mit Fargate mit CDK erstellen, wird die Sicherheitsgruppe vollständig geöffnet. Wenn es sich um eine Entwicklungsumgebung oder einen internen Dienst handelt, möchte ich die IP aus Sicherheitsgründen eingrenzen, aber mit CDK war es einfach hinzuzufügen, aber schwer zu löschen, daher werde ich diese Methode teilen
Erstellen Sie zunächst die zu ändernde Sicherheitsgruppe
alb_sg=ec2.SecurityGroup(self, "alb-sg",
vpc=ivpc,
description="alb sg"
)
Erstellen Sie als Nächstes eine ALB, die diese Sicherheitsgruppe verwendet.
ecs_alb=elasticloadbalancingv2.ApplicationLoadBalancer(self, "alb",
security_group=alb_sg,
vpc=ivpc,
internet_facing=True,
load_balancer_name="ecs-alb"
)
Erstellen Sie dann mit ecs_patterns einen Fargate-Service
fargate_service = ecs_patterns.ApplicationLoadBalancedFargateService(self, "service",
cluster=cluster,
task_definition=task,
load_balancer=ecs_alb,
cloud_map_options = ecs.CloudMapOptions(
name = 'hoge'
)
)
Wenn Sie es ausführen, können Sie sehen, dass eine Sicherheitsgruppe mit 80 vollständig geöffneten Ports wie unten gezeigt erstellt wird. (Nur der Sicherheitsgruppenteil wird extrahiert.)
$ cdk diff ecs
Stack ecs
Security Group Changes
┌───┬───────────────────────────────────────────────────────┬─────┬──────────┬────────────────────────────────┐
│ │ Group │ Dir │ Protocol │ Peer │
├───┼───────────────────────────────────────────────────────┼─────┼──────────┼────────────────────────────────┤
│ + │ ${prod-alb-sg.GroupId} │ In │ TCP 80 │ Everyone (IPv4) │
└───┴───────────────────────────────────────────────────────┴─────┴──────────┴────────────────────────────────┘
Resources
[~] AWS::EC2::SecurityGroup prod-alb-sg prodmonitoralbsg0D94D960
└─ [+] SecurityGroupIngress
└─ [{"CidrIp":"0.0.0.0/0","Description":"Allow from anyone on port 80","FromPort":80,"IpProtocol":"tcp","ToPort":80}]
Sie können es mit "node.default_child.add_override" überschreiben. Geben Sie also den Schlüssel an und überschreiben Sie ihn. Die folgenden zwei werden angegeben, und da nur eine vollständig geöffnete Regel hinzugefügt wird, wird die 0. angegeben.
alb_sg.node.default_child.add_override(
"Properties.SecurityGroupIngress.0.CidrIp",
"1.1.1.1/32"
)
alb_sg.node.default_child.add_override(
"Properties.SecurityGroupIngress.0.Description",
"Google"
)
Bei der Ausführung verschwindet die Standardeinstellung TCP80 Zulassen, dass jeder verschwindet und die angegebene IP ändert
$ SYSTEM_ENV=prod cdk diff ecs
Stack ecs
Security Group Changes
┌───┬────────────────────────────────┬─────┬──────────┬─────────────────┐
│ │ Group │ Dir │ Protocol │ Peer │
├───┼────────────────────────────────┼─────┼──────────┼─────────────────┤
│ - │ ${prod-alb-sg.GroupId} │ In │ TCP 80 │ Everyone (IPv4) │
├───┼────────────────────────────────┼─────┼──────────┼─────────────────┤
│ + │ ${prod-alb-sg.GroupId} │ In │ TCP 80 │ 1.1.1.1/32 │
└───┴────────────────────────────────┴─────┴──────────┴─────────────────┘
(NOTE: There may be security-related changes not in this list. See https://github.com/aws/aws-cdk/issues/1299)
Resources
[~] AWS::EC2::SecurityGroup prod-alb-sg prodmonitoralbsg0D94D960
└─ [~] SecurityGroupIngress
└─ @@ -1,7 +1,7 @@
[ ] [
[ ] {
[-] "CidrIp": "0.0.0.0/0",
[-] "Description": "Allow from anyone on port 80",
[+] "CidrIp": "1.1.1.1/32",
[+] "Description": "Google",
[ ] "FromPort": 80,
[ ] "IpProtocol": "tcp",
[ ] "ToPort": 80
So spielen Sie mit ALB Standard SG von CDK
Recommended Posts