我有多个AWS安全组,我想从另一个安全组在一个安全组中创建入站流量规则。我可以从AWS控制台做到这一点,但我想使用java api实现自动化。我怎么能做到呢?
对于使用Cidr块的简单规则,我使用了AuthorizeSecurityGroupingResequest,但在这里我找不到实现这一点的方法。
示例代码:
AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest =new AuthorizeSecurityGroupIngressRequest();
authorizeSecurityGroupIngressRequest.withFromPort(securityGroupIngressRequestParam.getFromPort());
authorizeSecurityGroupIngressRequest.withIpProtocol(securityGroupIngressRequestParam.getIpProtocols().getName());
authorizeSecurityGroupIngressRequest.withToPort(securityGroupIngressRequestParam.getToPort());
authorizeSecurityGroupIngressRequest.withCidrIp(securityGroupIngressRequestParam.getCidrBlock());
authorizeSecurityGroupIngressRequest.setGroupId(securityGroupIngressRequestParam.getSecurityGroupId());
amazonEc2Client.authorizeSecurityGroupIngress(authorizeSecurityGroupIngressRequest);
经过Aws Apis的一些尝试和错误,我找到了适合我的解决方案。
我们可以使用IpPermission模型,而不是使用api设置规则详细信息来添加sourceSecurityGroupId。
AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest = new AuthorizeSecurityGroupIngressRequest();
IpPermission ipPermission = new IpPermission();
ipPermission.withFromPort(securityGroupIngressRequestParam.getFromPort()).withToPort(securityGroupIngressRequestParam.getToPort())
.withIpProtocol(securityGroupIngressRequestParam.getIpProtocols().getName());
if (!StringUtil.isEmpty(securityGroupIngressRequestParam.getCidrBlock())) {
ipPermission.withIpRanges(securityGroupIngressRequestParam.getCidrBlock());
} else if (!StringUtil.isEmpty(securityGroupIngressRequestParam.getSourceSecurityGroupId())) {
UserIdGroupPair userIdGroupPairs = new UserIdGroupPair();
userIdGroupPairs.setGroupId(securityGroupIngressRequestParam.getSourceSecurityGroupId());
ipPermission.withUserIdGroupPairs(userIdGroupPairs);
} else {
// TODO throw exception
}
authorizeSecurityGroupIngressRequest.withIpPermissions(ipPermission);
authorizeSecurityGroupIngressRequest.setGroupId(securityGroupIngressRequestParam.getSecurityGroupId());
amazonEc2Client.authorizeSecurityGroupIngress(authorizeSecurityGroupIngressRequest);
我有一个ec2实例,它正在运行一个网站并关联ALB。 通常作为ec2实例安全组内部的一种做法,alb安全组是被引用的,但在这里,客户端具有这样的配置,即在ec2实例内部,源是安全组本身的名称。 但是,对于允许所有流量和所有端口的入站规则来说,这意味着什么,但是对于source=。 我对使用与源相同的安全组名称感到困惑,这一规则将意味着什么?
我为RDS实例分配了一个安全组,该组允许来自EC2实例的5432端口流量。 但是,此安全组已为所有IP的所有流量启用所有出站流量。 这是安全风险吗?理想的出站安全规则应该是什么?在我看来,RDS安全组的出站流量应该限制在端口5432到我们的EC2实例,对吗?
我正在编写一个IAM策略来部署EC2实例,同时使用Terraform创建安全组,我不想给EC2完全的访问权限。遵循最小权限原则,创建还添加入站和出站规则的安全组所需的权限是什么?
我有一个用于RDS实例的AWS安全组。 我还有一个用于 EC2 实例的 AWS 安全组。 我设置了它,因此EC2实例的安全组用作我用于RDS实例的安全组的入口。 在我的EC2实例中,我可以使用mysql命令毫无问题地访问RDS实例。 但是,如果我尝试使用带有MySQLi的PHP脚本来访问RDS实例,它将无法连接。 如果我将EC2实例的实际AWS IP地址作为入口添加到RDS安全组,那么使用MySQ
我正在尝试为所有流量添加AWS EC2安全组的入站规则。我正在使用python boto模块来实现这一点。 我已经为tcp | udp | icmp协议添加了规则。但不能为所有流量添加规则。我该怎么做?
我想问一下关于在AWS中连接EC2到RDP的问题。 我已经将我的EC2安全组(包含EC2实例)添加到默认的RDP组中,数据正在流动——连接正常。 EC2安全组启用了端口80到0.0.0.0/0以及SSH到我的IP。 我有点担心,通过将这个EC2组添加到RDS数据库,它将允许来自任何地方的端口80流量访问数据库。这是对的还是错的? 如果像这样连接RDS实例,EC2中的规则是否适用于它们? 我确实在A