Sim, isso pode ser feito.
Você precisa passar o identificador do grupo de segurança (para o Grupo de segurança A) para o modelo do Modelo B como um parâmetro. A partir daí, você pode fazer referência ao Grupo de segurança A em um recurso AWS::EC2::SecurityGroupIngress
.
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Parameters" : {
"SecurityGroupA" : {
"Description" : "Security group to add Ingress rule to",
"Type" : "AWS::EC2::SecurityGroup::Id"
}
},
"Resources" : {
"LocalSecurityGroup": {
"Type": "AWS::EC2::SecurityGroup"
},
"InboundRule": {
"Type": "AWS::EC2::SecurityGroupIngress",
"Properties":{
"IpProtocol": "tcp",
"FromPort": "80",
"ToPort": "80",
"SourceSecurityGroupId": {
"Fn::GetAtt": [ "LocalSecurityGroup", "GroupId" ]
},
"GroupId": {
"Fn::GetAtt": [ "SecurityGroupA", "GroupId" ]
}
}
}
}
}
Observe que este exemplo usa o ID do grupo de segurança, que é o caso quando seus grupos de segurança estão em um VPC. Se eles estiverem no EC2-Classic, você usaria o GroupName
.