更改 AWS ECS 服务的安全组

Posted

技术标签:

【中文标题】更改 AWS ECS 服务的安全组【英文标题】:Change AWS ECS service's security groups 【发布时间】:2020-01-09 15:23:08 【问题描述】:

我希望能够修改 AWS ECS 服务的网络配置。该界面在“配置网络”屏幕顶部有“允许的 VPC”、“允许的子网”、“安全组”和“自动分配公共 IP”。但是它们不能被修改。我们一直在为某些服务使用通用安全组。在创建其中一项服务时,我们错过了分配安全组,因此创建了一个新服务。这似乎是我应该能够回去纠正的事情。

【问题讨论】:

您可以尝试直接在EC2机器上编辑SG。 我们正在使用 Fargate,所以我认为这是不可能的。 【参考方案1】:

如果您使用 AWS CLI,您可以更改它。

aws ecs update-service --cluster ClusterName --service ServiceName --network-configuration file://c:\json\networkConfig.txt

networkConfig.txt 文件包含的位置


  "awsvpcConfiguration": 
    "subnets": ["subnet-***","subnet-***"],
    "securityGroups": ["sg-***"],
    "assignPublicIp": "ENABLED"
  

【讨论】:

这应该被标记为正确的解决方案。我测试并且可以确认。虽然高级用户可能很清楚,但值得添加:您可以使用这种格式将多个安全组添加到服务中。 +1 这对我也有帮助。无论操作系统如何,此命令都可以使用,并且不需要文件:aws ecs update-service --cluster <cluster-name> --service <service-name> --network-configuration '"awsvpcConfiguration": "subnets": ["subnet-abcd","subnet-efgh","subnet-wxyz"], "securityGroups": ["sg-blabla"],"assignPublicIp": "ENABLED"'【参考方案2】:

No,fargate类型ECS任务的安全组不能更改,因为安全组附加manages resources。就像您管理 ECS 实例的 ECS EC2 类型任务一样,您可以更改资源的安全组,转到 EC2 实例 -> 修改资源 -> 修改 SG 但这里的情况不同,您不必这样做作为 AWS 信念容器即服务 (cas) 进行管理。

解决方法:

进入安全组 -> 选择关联的 Fargate SG -> 修改规则

启动另一个新的 Fargate 任务并为 Fargate 服务关联所需的 SG。

【讨论】:

这个答案是正确的,因为它适用于 AWS 管理控制台,但是下面的 TheCodeMonk 解决方案使用 CLI 方法成功解决了这个问题。

以上是关于更改 AWS ECS 服务的安全组的主要内容,如果未能解决你的问题,请参考以下文章

网络负载均衡器的AWS EC2安全组权限

获取 AWS 安全组 Terraform 模块的 ID

无法访问 AWS ECS EC2 实例中的端口

仅允许 ECR 请求的安全组出口规则

阿里云(ecs服务器)使用1-设置安全组

阿里云ecs安全组端口开放设置