Créez un groupe de sécurité appelé Web. Pour les besoins d'un exemple, disons que l'id de ce groupe est: sg-7aa91911
Créer un groupe de sécurité appelé db. Ajouter une nouvelle règle au groupe de sécurité db pour le port 1433 avec la source de sg-7aa91911
Créez une configuration de lancement Autoscaling et définissez SecurityGroups sur sg-7aa91911 et toute autre configuration dont vous avez besoin.
Créer un groupe Autoscaling avec cette configuration de lancement.
J'ai rédigé un modèle rapide CloudFormation pour effectuer cette tâche. Vous devriez pouvoir l'exécuter et créer un groupe Autoscaling avec les groupes de sécurité connectés. Il va également créer une instance vide où vous pouvez stocker votre db.
Si vous préférez ne pas utiliser un modèle CloudFormation, regardez simplement où les groupes de sécurité sont définis. Il montre comment les deux groupes de sécurité doivent être connectés
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Description" : "test tempalte",
"Parameters" : {
"KeyName" : {
"Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instance",
"Type" : "String"
}
},
"Mappings" : {
"RegionMap" : {
"us-east-1" : { "AMI" : "ami-7f418316" },
"us-west-1" : { "AMI" : "ami-951945d0" },
"us-west-2" : { "AMI" : "ami-16fd7026" },
"eu-west-1" : { "AMI" : "ami-24506250" },
"sa-east-1" : { "AMI" : "ami-3e3be423" },
"ap-southeast-1" : { "AMI" : "ami-74dda626" },
"ap-northeast-1" : { "AMI" : "ami-dcfa4edd" }
}
},
"Resources" : {
"WebServerGroup" : {
"Type" : "AWS::AutoScaling::AutoScalingGroup",
"Properties" : {
"AvailabilityZones" : { "Fn::GetAZs" : "" },
"LaunchConfigurationName" : { "Ref" : "LaunchConfig" },
"MinSize" : "1",
"MaxSize" : "10",
"DesiredCapacity" : "1"
}
},
"LaunchConfig" : {
"Type" : "AWS::AutoScaling::LaunchConfiguration",
"Properties" : {
"InstanceType" : "m1.small",
"KeyName" : { "Ref" : "KeyName" },
"SecurityGroups" : [ {"Ref" : "websg"} ],
"ImageId" : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "AMI" ]}
}
},
"Ec2Instance" : {
"Type" : "AWS::EC2::Instance",
"Properties" : {
"KeyName" : { "Ref" : "KeyName" },
"ImageId" : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "AMI" ]},
"UserData" : { "Fn::Base64" : "80" }
}
},
"websg" : {
"Type" : "AWS::EC2::SecurityGroup",
"Properties" : {
"GroupDescription" : "Enable SSH and access, 8080, and 80",
"SecurityGroupIngress" : [
{"IpProtocol" : "tcp", "FromPort" : "8080", "ToPort" : "8080", "CidrIp" : "0.0.0.0/0"},
{"IpProtocol" : "tcp", "FromPort" : "80", "ToPort" : "80", "CidrIp" : "0.0.0.0/0"},
{"IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : "0.0.0.0/0"}
]
}
},
"dbsg" : {
"Type" : "AWS::EC2::SecurityGroup",
"Properties" : {
"GroupDescription" : "Port opened only to security group",
"SecurityGroupIngress" : [
{"IpProtocol" : "tcp", "FromPort" : "1433", "ToPort" : "1433", "SourceSecurityGroupName" : {"Ref" : "websg"}
}
]
}
}
}
}
Y a-t-il une raison pour laquelle vous ne pouvez pas ajouter de règle pour autoriser toutes les instances dans un groupe de sécurité donné? Êtes-vous en train d'essayer d'établir un accès à travers les régions? – datasage
Je suis ouvert à cette option. Je reste avec la même région. Je ne sais pas comment le faire (je suis assez nouveau pour AWS EC2). Je pensais que je peux seulement ajouter des adresses IP à un groupe de sécurité. – wisbucky
Cela fonctionne de manière similaire à l'ajout d'une adresse IP, mais vous devez spécifier votre ID de groupe de sécurité (commence par sg-XXXXXX). – datasage