我有一个带有ASG的EKS群集。我想限制特定名称空间中的Pod连接到特定RDS服务。AWS中是否提供此功能,有何建议?寻找已经在生产中运行的最佳实践。
des4xlb01#
我不认为有一种方法可以将一个命名空间列入白名单来访问RDS示例,这主要是因为集群是共享的,AWS服务并不真正理解kubernetes命名空间是什么。为了实现连接,你可以有一个私有的vpc对等或一个公共的RDS,你要在上面列出连接到VPC NAT网关的弹性IP。我强烈建议你使用私有的vpc对等,然后你至少知道连接是私有的。最后,RDS访问将允许整个群集,因为您无法真正将其限制到单个资源集。但是,由于您的RDS需要用户凭据才能访问其中的任何数据,因此我认为将您的群集列入RDS白名单并不是一个大问题。
2hh7jdfx2#
您可以使用Pod安全组来实现此目的。
如果您希望名称空间的所有Pod都成为EC2安全组的一部分,您应该能够在SecurityGroupPolicy中使用空podSelector。
SecurityGroupPolicy
podSelector
apiVersion: vpcresources.k8s.aws/v1beta1 kind: SecurityGroupPolicy metadata: name: my-security-group-policy namespace: my-namespace spec: securityGroups: groupIds: - my_pod_security_group_id podSelector:
2条答案
按热度按时间des4xlb01#
我不认为有一种方法可以将一个命名空间列入白名单来访问RDS示例,这主要是因为集群是共享的,AWS服务并不真正理解kubernetes命名空间是什么。
为了实现连接,你可以有一个私有的vpc对等或一个公共的RDS,你要在上面列出连接到VPC NAT网关的弹性IP。我强烈建议你使用私有的vpc对等,然后你至少知道连接是私有的。
最后,RDS访问将允许整个群集,因为您无法真正将其限制到单个资源集。但是,由于您的RDS需要用户凭据才能访问其中的任何数据,因此我认为将您的群集列入RDS白名单并不是一个大问题。
2hh7jdfx2#
您可以使用Pod安全组来实现此目的。
如果您希望名称空间的所有Pod都成为EC2安全组的一部分,您应该能够在
SecurityGroupPolicy
中使用空podSelector
。