【发布时间】:2021-05-13 07:20:58
【问题描述】:
我正在尝试通过 CloudFormation 创建 EKS 集群。我已经阅读了 Amazon 的所有 EKS Security Group guidelines 并且已经建立了我的安全组,因为我想要更清晰、更整洁的命名,并且能够事先定义这些和其他一些(BastionHost SG 和 RDS SG)之间的复杂性。
看在上帝的份上,我无法理解为什么它会不断创建集群安全组,而忽略我在模板中作为参考传递的那个,并且在 NodeGroup 的远程访问安全组中也会发生同样的事情指定我的堡垒主机的安全组。它没有接受它,而是继续创建自己的新安全组,该安全组将我的 BastionHost 的安全组作为源。
真的很困惑。我能克服这个吗?
更新: 因此,我拥有 Amazon 为我的 EKS 建议的 3 个安全组。我们称它们为 cluster-sg、control-plane-sg 和 nodegroup-sg。还假设它们已按照上面的指南进行配置,采用“推荐的”入站/出站流量指南,而不是最低要求(尽管我认为这在这一部分中没有发挥重要作用)。此外,还有一个单独的 EC2 实例的安全组,它是我的堡垒主机,我们称之为 bastion-sg。
我的 CloudFormation 模板如下所示:
EKSCluster:
Type: 'AWS::EKS::Cluster'
Properties:
Name: 'my-cluster'
Version: '1.17'
ResourcesVpcConfig:
SecurityGroupIds:
- !Ref clusterSG #do I need this cluster-sg here? do I need also nodegroup-sg? do I need both?
SubnetIds:
- !Ref PrivateSubnet1
- !Ref PrivateSubnet2
- !Ref PrivateSubnet3
RoleArn: !GetAtt ClusterInstanceRole.Arn
NodeGroupCluster:
Type: AWS::EKS::Nodegroup
Properties:
ClusterName: !Ref EKSCluster
DiskSize: !Ref ClusterDiskSize
InstanceTypes: !Ref NodeInstanceTypes
ForceUpdateEnabled: false
NodegroupName: 'cluster-nodegroup'
NodeRole: !GetAtt NodeInstanceRole.Arn #this is a resource that I haven't provided
RemoteAccess:
Ec2SshKey: !Ref EC2KeyPair
SourceSecurityGroups:
- !Ref bastionSG
ScalingConfig:
DesiredSize: !Ref DesiredNodeSize
MaxSize: !Ref MaximumNodeSize
MinSize: !Ref MinimumNodeSize
Subnets:
- !Ref PrivateSubnet1
- !Ref PrivateSubnet2
- !Ref PrivateSubnet3
总而言之,问题有两个方面: a)我似乎错过了在配置和安全组方面放置什么的地方。即我有亚马逊为整个集群推荐的 3 个安全组,但只有两个接受安全组的地方。 b)我尝试过的任何组合(根据我的原始帖子)都没有考虑到 cluster-sg 而是自动创建一个自己的组合,这不方便我的 IaaC 和自动部署哲学。
【问题讨论】:
-
您的 cloudformation 模板的相关部分是什么样的?
-
@jordanm 我已经用其他信息和代码更新了我的原始帖子。谢谢!
标签: amazon-web-services amazon-cloudformation amazon-eks aws-security-group