Aws-external-dns: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 17: Строка 17:
   
 
=Решение=
 
=Решение=
  +
  +
  +
<PRE>
  +
{
  +
"Version": "2012-10-17",
  +
"Statement": [
  +
{
  +
"Sid": "ExternalDNSAccess",
  +
"Effect": "Allow",
  +
"Action": [
  +
"route53:ChangeResourceRecordSets",
  +
"route53:ListResourceRecordSets"
  +
],
  +
"Resource": [
  +
"arn:aws:route53:::hostedzone/Z1038XXXXXXXXXXXXXXX",
  +
"arn:aws:route53:::hostedzone/Z0235XXXXXXXXXXXXXXX"
  +
]
  +
},
  +
{
  +
"Effect": "Allow",
  +
"Action": "route53:ListHostedZones",
  +
"Resource": "*"
  +
}
  +
]
  +
}
  +
</PRE>
  +
<PRE>
  +
{
  +
"Version": "2012-10-17",
  +
"Statement": [
  +
{
  +
"Effect": "Allow",
  +
"Action": "sts:AssumeRoleWithWebIdentity",
  +
"Principal": {
  +
"Federated": "arn:aws:iam::54XXXXXXXXXX:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/5918A6B3305CXXXXXXXXXXXXXXXXXXXX"
  +
},
  +
"Condition": {
  +
"StringEquals": {
  +
"oidc.eks.us-east-1.amazonaws.com/id/5918A6B3305CXXXXXXXXXXXXXXXXXXXX:sub": [
  +
"system:serviceaccount:external-dns:external-dns"
  +
],
  +
"oidc.eks.us-east-1.amazonaws.com/id/5918A6B3305CXXXXXXXXXXXXXXXXXXXX:aud": [
  +
"sts.amazonaws.com"
  +
]
  +
}
  +
}
  +
}
  +
]
  +
}
  +
</PRE>

Версия 13:24, 8 июня 2025

Постановка задачи

Задача: есть некоторый базовый домен mydomain.tld, который лежит на серверах AWS в Route53
Требуется при разворачивании приложения в EKS автоматически создавать записи типа CNAME и
направлять их на балансировщик (Ingress или другой, но пока Ingress), при запуске экземпляра приложения, например для
экземпляра staging создать записи

  • backend.staging.mydomain.tld
  • frontend.staging.mydomain.tld
  • что-то-еще.staging.mydomain.tld

Имя экземпляра приложения staging может быть произвольным

Решение

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ExternalDNSAccess",
      "Effect": "Allow",
      "Action": [
        "route53:ChangeResourceRecordSets",
        "route53:ListResourceRecordSets"
      ],
      "Resource": [
        "arn:aws:route53:::hostedzone/Z1038XXXXXXXXXXXXXXX",
        "arn:aws:route53:::hostedzone/Z0235XXXXXXXXXXXXXXX"
    ]
    },
    {
      "Effect": "Allow",
      "Action": "route53:ListHostedZones",
      "Resource": "*"
    }
  ]
}
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Principal": {
                "Federated": "arn:aws:iam::54XXXXXXXXXX:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/5918A6B3305CXXXXXXXXXXXXXXXXXXXX"
            },
            "Condition": {
                "StringEquals": {
                    "oidc.eks.us-east-1.amazonaws.com/id/5918A6B3305CXXXXXXXXXXXXXXXXXXXX:sub": [
                        "system:serviceaccount:external-dns:external-dns"
                    ],
                    "oidc.eks.us-east-1.amazonaws.com/id/5918A6B3305CXXXXXXXXXXXXXXXXXXXX:aud": [
                        "sts.amazonaws.com"
                    ]
                }
            }
        }
    ]
}