acme-dns-leið53 er tæki sem gerir okkur kleift að innleiða þennan eiginleika. Það getur unnið með SSL vottorð frá Let's Encrypt, vistað þau í Amazon Certificate Manager, notað Route53 API til að innleiða DNS-01 áskorunina og að lokum ýtt tilkynningum til SNS. IN acme-dns-leið53 Það er líka innbyggð virkni til notkunar inni í AWS Lambda, og þetta er það sem við þurfum.
Þessi grein skiptist í 4 hluta:
búa til zip skrá;
búa til IAM hlutverk;
búa til lambda aðgerð sem keyrir acme-dns-leið53;
búa til CloudWatch tímamæli sem kallar á aðgerð 2 sinnum á dag;
acme-dns-route53 er skrifað í GoLang og styður ekki lægri útgáfu en 1.9.
Við þurfum að búa til zip skrá með tvöfaldri acme-dns-route53 inni. Til að gera þetta þarftu að setja upp acme-dns-route53 frá GitHub geymslunni með því að nota skipunina go install:
$ env GOOS=linux GOARCH=amd64 go install github.com/begmaroman/acme-dns-route53
Tvöfaldurinn er settur upp í $GOPATH/bin Skrá. Vinsamlegast athugaðu að við uppsetninguna tilgreindum við tvö breytt umhverfi: GOOS=linux и GOARCH=amd64. Þeir gera Go þýðandanum ljóst að það þarf að búa til tvöfalda sem hentar fyrir Linux OS og amd64 arkitektúr - þetta er það sem keyrir á AWS.
AWS býst við að forritið okkar verði dreift í zip skrá, svo við skulum búa til acme-dns-route53.zip skjalasafn sem mun innihalda nýlega uppsetta tvöfaldann:
$ zip -j ~/acme-dns-route53.zip $GOPATH/bin/acme-dns-route53
Athugaðu: Tvöfaldurinn ætti að vera í rót zip-skjalasafnsins. Fyrir þetta notum við -j fána.
Nú er zip gælunafnið okkar tilbúið til dreifingar, allt sem er eftir er að búa til hlutverk með nauðsynlegum réttindum.
Að búa til IAM hlutverk
Við þurfum að setja upp IAM hlutverk með þeim réttindum sem lambda okkar krefst meðan á framkvæmd hennar stendur.
Við skulum kalla þetta stefnu lambda-acme-dns-route53-executor og gefa henni strax grunnhlutverk AWSLambdaBasicExecutionRole. Þetta mun leyfa lambda okkar að keyra og skrifa annála í AWS CloudWatch þjónustuna.
Fyrst búum við til JSON skrá sem lýsir réttindum okkar. Þetta mun í raun gera lambdaþjónustum kleift að nota hlutverkið lambda-acme-dns-route53-executor:
Nú skulum við keyra skipunina aws iam create-role til að búa til hlutverk:
$ aws iam create-role --role-name lambda-acme-dns-route53-executor
--assume-role-policy-document ~/lambda-acme-dns-route53-executor-policy.json
Athugaðu: mundu eftir stefnunni ARN (Amazon Resource Name) - við munum þurfa hana í næstu skrefum.
Hlutverk lambda-acme-dns-route53-executor búin til, nú þurfum við að tilgreina heimildir fyrir það. Auðveldasta leiðin til að gera þetta er að nota skipunina aws iam attach-role-policy, brottför stefnu ARN AWSLambdaBasicExecutionRole sem hér segir:
$ aws iam attach-role-policy --role-name lambda-acme-dns-route53-executor
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Að búa til lambda aðgerð sem keyrir acme-dns-leið53
Húrra! Nú geturðu sent aðgerðina okkar til AWS með því að nota skipunina aws lambda create-function. Lambda verður að stilla með því að nota eftirfarandi umhverfisbreytur:
AWS_LAMBDA - gerir það ljóst acme-dns-leið53 að framkvæmd á sér stað inni í AWS Lambda.