-2

AWS Route53 DNS 是否支持任何类型的专有访问列表 (ACL) 以将某些 DNS 记录(TXT 记录)限制为公众,但仍保持这些 TXT 记录可从 AWS 账户内访问?

我知道 DNS 服务器的目的是向公众公开所有 DNS 记录,但一些 TXT 记录可能对实施过于暴露。

示例:Kubernetes“外部 DNS 控制器”创建 A 记录并添加 TXT 记录。DNS 控制器依赖于 TXT 记录中的“所有者”属性来确定它是否允许对该记录进行更改,因此无法完全删除 TXT 记录。

service-a.example.com. A   192.0.2.4
service-a.example.com. TXT "heritage=external-dns,external-dns/owner=eks/my-eks-cluster,external-dns/resource=service/test/my-svc2"
4

2 回答 2

1

R53 提供私有托管区域,您可以将其与您的 VPC 关联,以便内部流量可以添加/更新/解析记录,同时保持此信息的私密性。也许您可以为需要保留在内部的 DNS 使用私有托管区域。

于 2021-05-25T17:13:52.983 回答
0

我想我自己找到了答案……

是的,我知道 Route53 中的私有区域,但老实说,我试图避免它们,因为除非您还运行 AWS Private CA(这很昂贵),否则无法为私有区域请求 AWS SSL 证书。其次,您需要在您的 VPN 服务器上调整“拆分 DNS”,这通常不是完全自动化的,因此更倾向于使用公共 DNS 区域。

是的,我意识到按类型过滤 DNS 记录是 DNS 作为一个概念的反模式,因此它可能没有在任何地方实现。

基于 AWS route53 的解决方案可能如下:

  • 通过创建公共 DNS 区域aws servicediscovery create-public-dns-namespace
  • 运行 Kubernetes externalDNS 控制器--provider=aws-sd

在这种情况下,externalDNS 控制器将在 AWS Service Discovery 中注册 Kubernetes 服务/入口,其中将存储显示您的内部实施的“描述”记录。同时,公共 DNS 区域将只包含非常无害的 A 记录。

在这种情况下,可以在同一个公共 DNS 区域中注册您的私有和公共入口/ALB,如下所示:

  • pub-svc1.my.domain
  • pub-svc1.private.my.domain

这样,所有 VPN 客户端都能够解析这两种类型的名称——不需要额外的私有 DNS 区域,也不需要额外的“拆分 DNS”VPN 配置;另外,您可以通过 AWS 为您的 *.private.my.domain 请求公共 SSL 证书。

于 2021-05-26T00:02:05.220 回答