ProHoster > Блог > басқарма > DNS-01 шақыруын және AWS көмегімен Let's Encrypt SSL сертификатын басқаруды автоматтандыру
DNS-01 шақыруын және AWS көмегімен Let's Encrypt SSL сертификатын басқаруды автоматтандыру
Пошта SSL сертификаттарын басқаруды автоматтандыру қадамдарын сипаттайды CA шифрлаймыз қолдану DNS-01 шақыруы и AWS.
acme-dns-route53 бұл мүмкіндікті жүзеге асыруға мүмкіндік беретін құрал болып табылады. Ол Let's Encrypt компаниясының SSL сертификаттарымен жұмыс істей алады, оларды Amazon Certificate Manager қолданбасында сақтай алады, DNS-53 тапсырмасын орындау үшін Route01 API пайдалана алады және, сайып келгенде, SNS хабарландыруларын жібере алады. IN acme-dns-route53 Сондай-ақ AWS Lambda ішінде пайдалануға арналған кірістірілген функционалдылық бар және бұл бізге қажет.
Бұл мақала 4 бөлімге бөлінген:
zip файлын құру;
IAM рөлін құру;
жұмыс істейтін лямбда функциясын жасау acme-dns-route53;
функцияны күніне 2 рет іске қосатын CloudWatch таймерін жасау;
acme-dns-route53 GoLang тілінде жазылған және 1.9-дан төмен емес нұсқасын қолдайды.
Бізге екілік файлы бар zip файлын жасау керек acme-dns-route53 ішінде. Мұны істеу үшін сізге орнату қажет acme-dns-route53 пәрменін пайдаланып GitHub репозиторийінен go install:
$ env GOOS=linux GOARCH=amd64 go install github.com/begmaroman/acme-dns-route53
Екілік орнатылған $GOPATH/bin каталог. Орнату кезінде біз екі өзгертілген ортаны көрсеткенімізді ескеріңіз: GOOS=linux и GOARCH=amd64. Олар Go компиляторына Linux ОЖ және amd64 архитектурасы үшін қолайлы екілік құру қажет екенін түсіндіреді - бұл AWS жүйесінде жұмыс істейтін нәрсе.
AWS бағдарламамызды zip файлында орналастыруды күтеді, сондықтан жасайық acme-dns-route53.zip жаңадан орнатылған екілік файлды қамтитын мұрағат:
$ zip -j ~/acme-dns-route53.zip $GOPATH/bin/acme-dns-route53
Ескерту: Екілік файл zip мұрағатының түбірінде болуы керек. Ол үшін біз пайдаланамыз -j жалау.
Енді біздің zip лақап атымыз қолдануға дайын, тек қажетті құқықтары бар рөлді жасау ғана қалады.
IAM рөлін жасау
Біз оны орындау кезінде ламбда талап ететін құқықтары бар IAM рөлін орнатуымыз керек.
Мұны саясат деп атаймыз lambda-acme-dns-route53-executor және бірден оған негізгі рөлді беріңіз AWSLambdaBasicExecutionRole. Бұл біздің лямбдаға AWS CloudWatch қызметіне журналдарды іске қосуға және жазуға мүмкіндік береді.
Біріншіден, біз құқықтарымызды сипаттайтын JSON файлын жасаймыз. Бұл лямбда қызметтеріне рөлді пайдалануға мүмкіндік береді lambda-acme-dns-route53-executor:
Енді пәрменді орындаймыз aws iam create-role рөл құру үшін:
$ aws iam create-role --role-name lambda-acme-dns-route53-executor
--assume-role-policy-document ~/lambda-acme-dns-route53-executor-policy.json
Ескерту: ARN (Amazon ресурс атауы) саясатын есте сақтаңыз - ол келесі қадамдарда қажет болады.
Рөлі lambda-acme-dns-route53-executor жасалды, енді оған рұқсаттарды көрсету керек. Мұны істеудің ең оңай жолы - пәрменді пайдалану aws iam attach-role-policy, өту саясаты ARN AWSLambdaBasicExecutionRole келесідей:
$ aws iam attach-role-policy --role-name lambda-acme-dns-route53-executor
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Ескерту: басқа саясаттары бар тізімді табуға болады осында.
Жұмыс істейтін лямбда функциясын жасау acme-dns-route53
Ура! Енді пәрмен арқылы функциямызды AWS жүйесіне орналастыруға болады aws lambda create-function. Ламбда келесі орта айнымалы мәндерін пайдаланып конфигурациялануы керек:
AWS_LAMBDA - деп түсіндіреді acme-dns-route53 бұл орындау AWS Lambda ішінде орын алады.