in app/collectors/securityGroup.scala [41:75]
def fromAWS(
secGroup: AwsSecurityGroup,
lookup: Map[String, SecurityGroup]
): SecurityGroup = {
def groupRefs(rule: IpPermission): Seq[SecurityGroupRef] = {
rule.userIdGroupPairs.asScala.map { pair =>
SecurityGroupRef(
pair.groupId,
pair.userId,
lookup.get(pair.groupId).map(_.arn)
)
}
}.toSeq
val rules = secGroup.ipPermissions.asScala.map { rule =>
Rule(
rule.ipProtocol.replace("-1", "all"),
Option(rule.fromPort).map(_.toInt),
Option(rule.toPort).map(_.toInt),
rule.ipRanges.asScala.toSeq.map(_.cidrIp).sorted.wrap,
rule.ipv6Ranges.asScala.toSeq.map(_.cidrIpv6).sorted.wrap,
groupRefs(rule).wrap
)
}
SecurityGroup(
s"arn:aws:ec2:${origin.region}:${origin.accountNumber.get}:security-group/${secGroup.groupId}",
secGroup.groupId,
secGroup.groupName,
origin.region,
rules.toSeq,
Option(secGroup.vpcId),
secGroup.tags.asScala.map(t => t.key -> t.value).toMap
)
}