amazon-web-services - Kubernetes Route53 external-dns问题

标签 amazon-web-services kubernetes amazon-iam amazon-route53 amazon-eks

我在带有EKS和外部DNS的AWS中使用Ingress-Nginx-ingress-controller运行K8S集群。应用程序运行正常,可以在负载均衡器上访问。现在,我试图将我的DNS指向该群集,即e1.exapmle.com,为此,我在关注以下文档。
https://github.com/kubernetes-sigs/external-dns
我面临的问题是,我有两个AWS帐户(QA,Staging),并且在登台帐户中创建了托管区域,并且群集在QA帐户上运行。我已经尝试使用跨帐户IAM角色来使其正常工作,但是我只能通过Web控制台看到托管区域,cli或外部DNS pods 无法与Route53通信。
到目前为止,这是我所做的:
创建IAM策略

   {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "route53:ChangeResourceRecordSets"
          ],
          "Resource": [
            "arn:aws:route53:::hostedzone/*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "route53:ListHostedZones",
            "route53:ListResourceRecordSets"
          ],
          "Resource": [
            "*"
          ]
        }
      ]
    }
创建一个跨帐户IAM角色,以信任帐户登台和受信任的帐户质量检查。
通过为上述策略指定IAM角色ARN,在受信任帐户中创建策略。
通过上述操作,我仅在切换角色时设法通过Web控制台查看托管区域。

最佳答案

我假设您向extern-dns pod提供了EKS帐户中角色的角色信息,该角色允许您在HostedZone帐户中扮演角色!
这是行不通的,因为这样(就像在控制台内一样),您需要显式地承担具有现有权限的角色。
您需要将带有附加的route53策略的跨帐户角色直接传递到外部DNS pods 。
Pod->在其他帐户中扮演角色->接收临时工。证书
pod->在eks帐户中担任角色(->允许担任交叉帐户角色)
我猜最后一步不会发生

关于amazon-web-services - Kubernetes Route53 external-dns问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64502063/

相关文章:

javascript - 无法在 Ajax 调用中将图像上传到 Amazon S3

kubernetes - kubernetes集成测试

node.js - 在 AWS Elastic Beanstalk 上全局安装 npm 包

linux - EC2 : "Connection refused" to all instances after changing ownership of/var

kubernetes - 如何忽略多容器 pod 中容器的故障?

nginx - 在Kubernetes中使用Nginx作为转发代理

amazon-web-services - 如何允许 EC2 实例从操作系统访问其自己的标签

amazon-web-services - 尽管有政策,胶水作业跨账户 secret 访问失败

amazon-web-services - 创建 key 对 : You are not authorized to perform this operation 时出错

amazon-web-services - EKS 1.11 + Istio 1.0.6 + Cilium 1.4.1,发布 https ://istio-sidecar-injector. istio-system.svc :443/inject? timeout=30s:地址不允许