Ack-acm-controller: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) (→Policy) |
Sirmax (обсуждение | вклад) |
||
| Строка 26: | Строка 26: | ||
==<code>Policy</code>== |
==<code>Policy</code>== |
||
Создать файл с <code>Policy</code> - имя конечно не принципиально, для простоты пусть будет <code>AWSACMControllerIAMPolicy.json</code> |
Создать файл с <code>Policy</code> - имя конечно не принципиально, для простоты пусть будет <code>AWSACMControllerIAMPolicy.json</code> |
||
| + | <BR> |
||
| + | Это https://github.com/aws-controllers-k8s/acm-controller/blob/main/config/iam/recommended-inline-policy рекомендованная политика [] |
||
<PRE> |
<PRE> |
||
{ |
{ |
||
| − | "Version": "2012-10-17", |
+ | "Version": "2012-10-17", |
| − | "Statement": [ |
+ | "Statement": [ |
| − | { |
+ | { |
| − | "Effect": "Allow", |
+ | "Effect": "Allow", |
| − | "Action": [ |
+ | "Action": [ |
| − | "acm: |
+ | "acm:DescribeCertificate", |
| − | "acm: |
+ | "acm:ImportCertificate", |
| − | "acm: |
+ | "acm:RequestCertificate", |
| − | "acm: |
+ | "acm:UpdateCertificateOptions", |
| − | "acm: |
+ | "acm:DeleteCertificate", |
| − | "acm: |
+ | "acm:AddTagsToCertificate", |
| − | "acm: |
+ | "acm:RemoveTagsFromCertificate", |
| + | "acm:ListTagsForCertificate" |
||
| ⚫ | |||
| − | + | ], |
|
| ⚫ | |||
| − | }, |
||
| − | + | } |
|
| ⚫ | |||
| − | "Effect": "Allow", |
||
| − | "Action": [ |
||
| − | "route53:ChangeResourceRecordSets", |
||
| − | "route53:GetChange", |
||
| − | "route53:ListHostedZonesByName", |
||
| − | "route53:ListHostedZones", |
||
| − | "route53:GetHostedZone" |
||
| − | ], |
||
| ⚫ | |||
| − | } |
||
| − | ] |
||
} |
} |
||
</PRE> |
</PRE> |
||
Версия 12:47, 23 июня 2025
Задача
Если уже пользоваться AWS то хотелось бы получить максимум за свои деньги, и отказаться от использования Let's Encrypt,
а выписывать сертефикаты от AWS
К сожалению, жадный AWS не дает ключ от сертификата, и единственный доступный вариант использования - это ALB
acm-controller
Аналогично другим контроллерам, позволяет создавать сертефикаты (но блять без ключей, ебучий ты AWS) как ресурсы в k8s
Логика работы (коротко)
Устроено все, если смотреть обзорно, довольно просто
acm-controllerследит за появлением ресурса типаCertificate- При появлении ресурса идет в
APIи что-то там делает
TODO
Установка и настройка acm-controller
Policy
Создать файл с Policy - имя конечно не принципиально, для простоты пусть будет AWSACMControllerIAMPolicy.json
Это https://github.com/aws-controllers-k8s/acm-controller/blob/main/config/iam/recommended-inline-policy рекомендованная политика []
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"acm:DescribeCertificate",
"acm:ImportCertificate",
"acm:RequestCertificate",
"acm:UpdateCertificateOptions",
"acm:DeleteCertificate",
"acm:AddTagsToCertificate",
"acm:RemoveTagsFromCertificate",
"acm:ListTagsForCertificate"
],
"Resource": "*"
}
]
}
aws iam create-policy \ --policy-name AWSACMControllerIAMPolicy \ --policy-document file://AWSACMControllerIAMPolicy.json
Helm
helm repo add ack https://aws.github.io/eks-charts helm repo update helm install ack-acm-controller ack/ack-acm-controller \ --namespace ack-system \ --create-namespace \ --set aws.region=us-east-1 \ --set serviceAccount.create=false \ --set serviceAccount.name=ack-acm-controller