Kiriman kasebut nggambarake langkah-langkah kanggo ngotomatisasi manajemen sertifikat SSL saka Letβs Encrypt CA nggunakake tantangan DNS-01 ΠΈ AWS.
acme-dns-rute53 minangka alat sing bakal ngidini kita ngleksanakake fitur iki. Bisa nggarap sertifikat SSL saka Ayo Encrypt, simpen ing Amazon Certificate Manager, gunakake Route53 API kanggo ngleksanakake tantangan DNS-01, lan pungkasane, push kabar menyang SNS. ING acme-dns-rute53 Ana uga fungsi sing dibangun kanggo digunakake ing AWS Lambda, lan iki sing dibutuhake.
acme-dns-route53 ditulis ing GoLang lan ndhukung versi ora luwih murah tinimbang 1.9.
Kita kudu nggawe file zip kanthi binar acme-dns-route53 ing njero. Kanggo nindakake iki, sampeyan kudu nginstal acme-dns-route53 saka repositori GitHub nggunakake printah go install:
$ env GOOS=linux GOARCH=amd64 go install github.com/begmaroman/acme-dns-route53
Binar wis diinstal ing $GOPATH/bin direktori. Wigati dimangerteni manawa sajrone instalasi kita nemtokake rong lingkungan sing diganti: GOOS=linux ΠΈ GOARCH=amd64. Dheweke nggawe jelas menyang kompiler Go yen kudu nggawe binar sing cocog kanggo Linux OS lan arsitektur amd64 - iki sing mlaku ing AWS.
AWS ngarepake program kita bakal disebarake ing file zip, mula ayo nggawe acme-dns-route53.zip arsip sing bakal ngemot binar sing mentas diinstal:
$ zip -j ~/acme-dns-route53.zip $GOPATH/bin/acme-dns-route53
Saiki julukan zip kita wis siyap kanggo nyebarake, sing isih ana yaiku nggawe peran kanthi hak sing dibutuhake.
Nggawe peran IAM
Kita kudu nyiyapake peran IAM kanthi hak sing dibutuhake dening lambda sajrone eksekusi.
Ayo diarani kebijakan iki lambda-acme-dns-route53-executor lan langsung menehi dheweke peran dhasar AWSLambdaBasicExecutionRole. Iki bakal ngidini lambda kita mbukak lan nulis log menyang layanan AWS CloudWatch.
Pisanan, kita nggawe file JSON sing nggambarake hak kita. Iki bakal ngidini layanan lambda nggunakake peran kasebut lambda-acme-dns-route53-executor:
Saiki ayo mbukak perintah kasebut aws iam create-role kanggo nggawe peran:
$ aws iam create-role --role-name lambda-acme-dns-route53-executor
--assume-role-policy-document ~/lambda-acme-dns-route53-executor-policy.json
Catetan: elinga kabijakan ARN (Amazon Resource Name) - kita butuh ing langkah sabanjure.
Role lambda-acme-dns-route53-executor digawe, saiki kita kudu nemtokake ijin kasebut. Cara paling gampang kanggo nindakake iki yaiku nggunakake printah aws iam attach-role-policy, maringaken kabijakan ARN AWSLambdaBasicExecutionRole kaya mangkene:
$ aws iam attach-role-policy --role-name lambda-acme-dns-route53-executor
--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
Hore! Saiki sampeyan bisa masang fungsi kita menyang AWS nggunakake printah aws lambda create-function. Lambda kudu dikonfigurasi nggunakake variabel lingkungan ing ngisor iki:
AWS_LAMBDA - ndadekake cetha acme-dns-rute53 eksekusi kasebut dumadi ing AWS Lambda.
DOMAINS β dhaptar domain sing dipisahake karo koma.